Articles of PHP5

使用select()调用的Apache2 100%超载

一天一到两次,我在Debian 5.0.3上的一个Apache(升级到最新的软件包)运行高达100%的CPU(几个进程),并保持这种状态,直到重新启动。 斯特雷西显示了很多这些; select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0}) select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0}) select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0}) select(1043, [1042], [], NULL, {1, 0}) = 1 (in [1042], left {1, 0}) […]

apache2 + mod_fastcgi + suexec + php5.2 =高负载时不稳定

我使用apache2 + fastcgi + suexec + php5在一台服务器上托pipe几个(〜30个)不同的站点。 站点有不同的负载和不同的脚本执行时间(其中一些处理请求5-7秒,一些<1sek)。 有时当单个站点收到很高的负载(本站点的所有php实例都被创build和使用)时,整个apache服务器都会挂起。 Apache(worker mpm)创build了新的进程,达到了上限。 它看起来像开始排队所有新的请求,每个站点,不仅是一个具有高负载,并迅速实现进程限制…重新启动Apache解决问题… config:FastCgiConfig -singleThreshold 1 -multiThreshold 10 -listen-queue-depth 30 -maxProcesses 80 -maxClassProcesses 12 -idle-timeout 30 -pass-header HTTP_AUTHORIZATION -pass-header If-Modified-Since -pass-header If-None-Match (之前有默认-listen-queue-depth = 100,但是没有改变任何东西…) 有什么build议么? 另一个问题 – 如何实施这个监听队列? 是整个Apache的一个队列,或每个定义的PHP应用(suexec站点)的唯一队列? 我想实现这样的事情:当一个网站收到高负荷,队列满 – 服务器反弹下一个请求,但只为这一个网站..其他网站应该正常工作…

重复的PHP安装

从5.2.6开始安装,然后安装5.3.1,而不是覆盖,SSH php现在运行5.3.1,而Web服务器仍然服务于5.2.6安装的内容。 有关如何纠正这个问题的任何想法? 我基本上需要find两个单独的安装是正确的,但我只能find5.3.1在/ usr / bin / 这里需要大帮助的人:) CentOS 2.6.9,Lighttpd [root@server ~]# rpm -qa |grep php php-gd-5.2.6-1.el5.art php-imap-5.2.6-1.el5.art php-snmp-5.2.6-1.el5.art php-mbstring-5.2.6-1.el5.art php-ldap-5.2.6-1.el5.art php-cli-5.2.6-1.el5.art php-xmlrpc-5.2.6-1.el5.art php-mysql-5.2.6-1.el5.art php-common-5.2.6-1.el5.art php-ncurses-5.2.6-1.el5.art php-pdo-5.2.6-1.el5.art php-xml-5.2.6-1.el5.art php-odbc-5.2.6-1.el5.art php-mhash-5.2.6-1.el5.art php-mcrypt-5.2.6-1.el5.art [root@server ~]# php -v PHP 5.3.1 (cli) (built: Nov 26 2009 03:27:03) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) […]

PHP FastCGI / XML / DOMconfiguration

伙计们,为什么当我configurationPHP 5.3.1,这些选项失败的想法? Notice: Following unknown configure options were used: –with-xml –with-dom –enable-fastcgi –enable-discard-path –enable-force-cgi-redirect

有没有办法在Plesk的客户端或域模板中禁用safe_mode?

有没有办法在Plesk 8.6中禁用客户端或域模板中的PHP设置safe_mode? 或者,为了在其他Plesk设置/configuration中创build新的域,禁用它? 我谷歌search,人们似乎认为不 我问过我们的托pipe服务提供商,他们不这么认为 我查看了Plesk中的域和客户端模板,但没有看到它 有没有人能够为新域名做Plesk 8.6?

卸载从源代码安装的php5

我试图从源代码安装php5,它工作… 然后出于某种原因需要安装正式的数据包,所以我试图卸载,我的惊喜有这样的卸载…所以我试图删除手工安装的所有文件。 然后安装官方debian包,它工作正常…直到我需要安装sqlite模块,这给我以下错误: php –version PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/pdo_sqlite.so' – /usr/lib/php5/20090626/pdo_sqlite.so: undefined symbol: php_pdo_register_driver in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/sqlite.so' – /usr/lib/php5/20090626/sqlite.so: undefined symbol: php_pdo_register_driver in Unknown on line 0 PHP 5.3.1-5 with Suhosin-Patch (cli) (built: Feb 22 2010 22:46:05) […]

如何在共享主机上设置自定义FastCGI和PHP5(使用APC)?

林不知道如果我有这个设置是否正确= /

Apache + PHP问题:无法列出除Apache之外的进程

我有一个相当新鲜的安装Apache(2.2.3 / Centos)+ PHP(5.1.6)和以下问题:我需要监视一个进程的生命,为了做到这一点我运行: $last_line = exec('ps -C snmpd'); 并检查其输出。 不幸的是我总是一无所获。 我已经用其他进程名来检查它,它似乎只能看到Apache的进程。 任何想法如何解决这个问题? 更新:执行其他命令system('snmpget -v2c -c public localhost '.$oid, $retval); 伟大的工作,只有ps问题。 什么奇怪的(对我来说),当我login为apache用户,手动运行ps ,它工作正常(显示一切)。

我怎样才能启用PHP5的网站? 每一个方法都有问题

我正在一个客户端网站上工作,这个客户端托pipe在某个人的DIY Debian Linux服务器上[Apache / 1.3.33(Debian GNU / Linux)],我正在尝试安装一个需要PHP5的脚本。 默认情况下,服务器根据phpinfo() ,使用PHP 4.3.10-22(在/etc/php4/apache/php.iniconfiguration)parsing.php文件。 在服务器上,我可以看到PHP5的一个configuration目录,它与PHP4目录相邻: /etc/php5.0/apache2/php.ini 。 我已经尝试了多种方法来启用站点文件所在文档根目录下的PHP5,包括这里提到的所有可用的方法 。 到目前为止,我发现的最常见的build议是将以下一行或两行添加到网站的.htaccess文件中: AddHandler application/x-httpd-php5 .php AddType application/x-httpd-php5 .php 麻烦的是,当这些行中的任何一行或两行都存在时,网站强制我的浏览器下载任何请求的.php文件,根本不parsingPHP。 上述文章中提到的所有其他方法会导致500内部服务器错误。 没有托pipe控制面板,我可以在浏览器中访问该站点的PHP5,但我有shell访问。 当我向服务器pipe理员询问这个问题时,他鼓励我在Google上search答案。 我在哪里可以开始解决这个问题? 有没有方法来testing或validation服务器的特定PHP5安装和configuration,使用命令行或其他方法? 你有其他的build议来启用PHP5吗?

sqlite:致命错误:调用未定义的函数sqlite_escape_string()

我使用一个需要SQLITE的脚本, 在我以前的主机,它的工作。 在本地主机上工作。 在我的新的专用服务器,它不。 我当然使用PHP5,你可以访问服务器的phpinfo() 。 你能告诉我什么/如何(apt-get?)安装正确的sqlite,以避免这个致命的错误?