我一直在编程一个网站使用: Zend Framework 1.11.5(完整的MVC) PHP 5.3.6 Apache 2.2.19 CentOS 5.6 i686 virtuozzo on vps cPanel WHM 11.30.1(build 4) Mysql 5.1.56-log Mysqli API 5.1.56 这个问题从这里开始https://stackoverflow.com/questions/6769515/php-programming-seg-fault 。 简而言之,PHP给了我随机的分割错误。 [Wed Jul 20 17:45:34 2011] [error] mod_fcgid: process /usr/local/cpanel/cgi-sys/php5(11562) exit(communication error), get unexpected signal 11 [Wed Jul 20 17:45:34 2011] [warn] [client 190.78.208.30] (104)Connection reset by peer: mod_fcgid: error […]
具有SuExec下的VirtualHosts的Apache HTTP Server 2.2.21 PHP 5.3.8通过fcgid Arch Linux 2011.08.19 我正在从共享主机迁移到VPS。 我之前的代码运行良好,但现在在这条线上失败: require_once($_SERVER['DOCUMENT_ROOT'] . 'includes/content/header.php'); 错误日志说: PHP致命错误:require_once():在/ srv / www / hostname中打开所需的'/srv/www/hostname/public/includes/content/header.php'(include_path ='。:/ usr / share / pear')失败第3行的/public/index.php 我尝试了没有文档根部分,有和没有./ ,文件在同一目录等相同的行,没有运气。 与require , include_once或include require没有区别。 但是,我可以通过从错误日志中复制并粘贴到该文件来validation该文件是否存在于该确切位置。 我问这个问题,有人告诉我这可能是一个服务器问题,所以我在这里重述。 (我能find的最类似的问题从来没有回答 )尝试总结: 没有任何权限组合(在目录或文件上); 从644到777尝试。 所有这些文件都由SuExec用户/组更新。 PHP将自身报告为在正确的用户/组下运行。 Apache&SuExec错误日志不报告。 安全模式在php.ini设置为“关”。 dirname(__FILE__)和exec('pwd')返回值与$_SERVER['DOCUMENT_ROOT']相同,但没有结尾的斜杠; 前缀与其中一个或另一个没有区别。 include , include_once , fread , file_exists , file_get_contents和realpath(dirname(__FILE__))都返回false。 set_include_path()没有效果。 […]
我有一个WordPress多用户网站,以90%以上的使用率embedded我的所有CPU: top – 12:02:58 up 55 days, 5:25, 10 users, load average: 20.51, 15.66, 14.90 Tasks: 294 total, 24 running, 270 sleeping, 0 stopped, 0 zombie Cpu0 : 87.5%us, 8.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 4.5%si, 0.0%st Cpu1 : 97.9%us, 1.9%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st Cpu2 : 96.0%us, 3.5%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.5%si, […]
我已经把我的服务器从Debian挤到Debian喘息了。 在这个服务器上有几个apache2虚拟主机,它通过mod_fcgid运行php(我也使用mod_suexec,但这不应该是问题)。 更新后,所有我的PHP网站不工作了,如果我请求运行PHP的网站apache2提供了PHP源代码。 我所有的日志文件 的Apache2 / error.log中 的Apache2 / access.log的 的Apache2 / suexec.log 和虚拟主机错误/访问日志 没有提出任何错误,甚至没有警告。 所有neccesarry模块安装和加载。 我现在search了几个小时的解决scheme,而没有任何的努力。 这里是一个示例vhost文件(“敏感”数据被replace,用户/组和域): <VirtualHost *:80> ServerName example.com SuexecUserGroup john-doe john-doe AddHandler fcgid-script .php DocumentRoot "/var/www/example.com/data" DirectoryIndex index.php index.html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/example.com/data"> Options Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php Order allow,deny allow from all […]
注意:这和这个SOpost是一样的 ,但在这里可能更合适,因为我怀疑问题是服务器configuration相关而不是代码相关。 我正在使用通过mod_fcgid运行PHP的LAMP设置。 对于大多数请求来说,这样做效果不错,但是我注意到,当我下载一个文件,但在下载完成之前中断下载,服务于文件块的php-cgi进程试图写入更多的数据,直到达到IPCCommTimeout 。 一旦达到超时,进程就会中断,进程再次开始为其他请求提供服务。 如果我使用mod_php而不是mod_fcgid则不会发生此问题。 有没有一些可用的设置fcgid,我可以设置让它中止,如果没有捕获输出? 有什么我可以用PHP来处理吗? 如果下载不中断,则不会发生该问题; 实际上,我只注意到它,因为我试图使用gddflvplayer来stream式传输FLV文件,它似乎发送一个简短的请求来获取前几帧(它显示为预览),然后是另一个播放它,这是因为一样的问题。 仅供参考,这是挂cgi过程的strace; 它一直这样坐直到它最终被中断,大概是当IPCCommTimeout到达时进程pipe理器。 我的猜测是它试图输出readfile()调用的结果,但是Apache不再监听(因为请求已被用户取消)。 root@some-machine:~# strace -p 24837 Process 24837 attached – interrupt to quit write(3, "\5|A\313%\35\337\376\275\237\230\266\242\371\37YjzD<\322\215\357\336:M\362P\335\242\214\341"…, 17432 日志表明由于超时而最终收到请求 mod_fcgid: read data timeout in 240 seconds 下载代码或多或less只是使用readfile来提供文件,还包含一些头文件(注意:在这个代码中, Header或多或less只是header()以避免testing中的问题header()的包装)。 $filepath = '/some/path/foo.flv'; $filename = 'foo.flv'; $disposition = 'inline'; $h = Header::get(); $h->send('Pragma: public'); $h->send('Content-Transfer-Encoding: binary'); $h->send('Content-type: […]
我使用mod_fcgid在Apache内部工作FastCGI PHP。 但是我注意到PHP脚本甚至没有指定后缀.php。 例如:如果文件是mail.php那么http://example.com/mail.php和http://example.com/mail返回相同的PHP文件mail.php 这是常见的行为? 而且应该是这个(执行没有后缀)禁用? 我的Apacheconfiguration是: AddHandler fcgid-script .php <Directory "{WwwRoot}"> Options -Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper {ConfigsRoot}/fcgi-php5 .php Order allow,deny allow from all </Directory> 用简单的包装 #!/bin/sh PHP_FCGI_CHILDREN=3 export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=2000 export PHP_FCGI_MAX_REQUESTS /usr/bin/php5-cgi 谢谢。
服务器: Plesk面板10.3.1, PHP 5, 的Apache2 当我更新plesk面板时,上传文件时发现了一个奇怪的错误。 即使将/etc/php5/apache2/php.ini中的设置设置为较高的大小,我的服务器也不允许将任何file upload到128kb以上。 我的设置: upload_max_filesize = 10M, post_max_size = 8M, memory_limit = 128M 错误真的不清楚。 在Drupal中,这是返回:HTTP错误0(当上传我收到500内部服务器错误)
我不知道是否有一个很好的指导如何设置Apache + SuExec + PHP的FMP? 我有一个服务器,我将要使用几个单独的网站。 所以,我需要PHP作为网站所有者用户运行。 正如我所看到的,php-fpm与php-fcgi有点不同。 在这种情况下,Apache中是否需要mod_fcgid? 如何设置这一切? 现在我的网站正在运行Apache + mod_suphp + php-cgi,所以…这很好,但有点慢。 我想保护安全并获得使用APC的能力。
我一直在看网页,试图找出关于fcgid的操作码caching。 据我了解到目前为止,APC不是fcgid的一个很好的解决scheme,因为每个进程只有fcgidcaching的APC效率不高。 (参考: https : //stackoverflow.com/questions/598444/how-to-share-apc-cache-between-several-php-processes-when-running-under-fastcgi ) 所以我想那个叶子eaccelerator和xcache。 Xcache似乎明确地谈到了fcgid,所以我倾向于这个。 有人可以证实这一点?
我们有一个web服务器与Apache 2.2.14,PHP 5.3.2。 PHP是使用mod_fcgid执行的(请参见下方)。 一切工作正常,但有时,我们仍然要弄清楚是什么触发了这一点,当PHP进程是“旋转”,他们仍然活跃和孤儿:Apache衍生新的PHP进程和旧的仍然在系统上。 杀他们并不总是把他们踢走。 更可能的是“apache2ctl优雅”从这个陈旧的过程中释放系统。 我们发现这在错误日志中:[Tue Jun 18 20:49:54 2013] [警告] mod_fcgid:进程2009优雅杀死失败,发送SIGKILL从我发现search这是非常正常的,但这是我在apache日志在这个过程之一泄漏。 幸运的是,这个事件很less发生,通常apache和php运行正常,在fcgid儿童更新期间没有问题。 我们怎样才能了解这些情况出了什么问题? 站点中的mod_fcgidconfiguration: <IfModule mod_fcgid.c> SuexecUserGroup domain domain <Directory /var/www/fomain.it/htdocs/> AddHandler fcgid-script .php FCGIWrapper /var/www/fcgi/domain.it/fcgi-starter-php .php Options +ExecCGI -Indexes AllowOverride FileInfo Options Order allow,deny Allow from all </Directory> <Directory /var/www/fcgi/domain.it/> AllowOverride None Options +ExecCGI MultiViews -Indexes Order allow,deny Allow from all […]