Tag: PHP

初始化脚本和绿色

我试图在EC2实例上安装nginx的fast-cgi。 我遵循这里解释的步骤,但是这是为了Debian,并没有开箱即用的基于红帽子的系统。 我修改了一下脚本,看起来像 – #!/bin/bash ### BEGIN INIT INFO # Provides: php-fcgi # Required-Start: $nginx # Required-Stop: $nginx # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts php over fcgi # Description: starts php over fcgi ### END INIT INFO . /etc/rc.d/init.d/functions (( EUID )) && echo .You need to […]

如何删除文件比rm -rf快?

可能重复: 数百万的文件在php的tmp错误 – 如何删除? 有没有办法如何删除文件夹/文件比使用命令rm -rf? 看来我的光盘里充斥着cron中没有删除的文件(php5的会话)的两百个文件,所以我需要手动删除它们,但它需要几个小时,它仍然没有帮助减less金额。 谢谢。 我的命令: rm -rf /var/lib/php5/* 也试过这些命令: find /var/lib/php5 -name "sess_*" -exec rm {} \; 和 perl -e 'chdir "/var/lib/php5/" or die; opendir D, "."; while ($n = readdir D) { unlink $n }'

找出什么导致与Apache&PHP&Mysql的CLOSE_WAIT连接

首先,这是一点点的背景。 我们有一个定制的PHP应用程序,运行在Apache下,支持我们的网站。 我们目前在我们的网站上遇到高stream量。 这里是我们目前的设置: – 在负载平衡器后面的10个linux web服务器(每个服务器有8个CPU,30Go RAM) – 1个linux mysql数据库服务器(30个CPU,120个RAM) 大多数情况下,stream量都保持良好状态,但是有时候由于不确定的原因,我们看到活跃的mysql连接总数飙升。 它不断泄漏,直到达到最大限度,并最终导致我们的networking用户无法使用该应用程序。 发生这种情况时,从负载平均值,内存,CPU使用率,磁盘交换的angular度来看,所有的服务器都不错。 他们有足够的资源可用。 我们确实注意到有许多Apache进程都有一个CLOSE_WAIT连接状态。 我们在其中一个Web服务器上看到大约600个进程处于该状态。 这似乎是我们遇到的问题的症状。 但是,我们有困难深入挖掘。 这是我的问题: 为什么Apache挂在这些进程? 有什么工具或debugging技术可以用来找出是什么原因造成的? 我们应该看什么指标来了解正在发生的事情? 感谢您的帮助,

Nginx和不同版本的PHP FPM + PHP

由于马克和他之前的回答更好地理解了我想实现的目标,所以我发布了一个(希望的)更清晰和略微不同的前一个问题的变体,因为这个线程已经达到饱和; 我试图在一个nginx服务器上运行多个WordPress站点,每个站点都需要不同版本的PHP。 我希望通过使用PHP-FPM的多个版本来实现这一点,每个版本都运行不同版本的PHP,与nginx分开。 然后,我想使用.conf文件来控制每个站点使用哪个PHP-FPM服务器,从而允许该站点在所需的PHP版本上运行。 (根据评论部分) 目前我的testsite1的服务器块是这样的,运行默认的PHP版本。 server { listen 80; listen [::]:80; root /usr/share/nginx/html/testsite1; index index.php index.html index.htm; server_name local.testsite1.com; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; […]

使用PHP 5.6的IIS 8:WinCache VS Zend Op Cache

Zend Op Cache在PHP5.5 +中默认编译,但IIS鼓励使用WinCache进行操作码caching。 什么是扩展,将给我在IIS上最好的性能和稳定性? 有基准,案例研究?

学习缩放PHP应用程序有什么好的资源?

我相当熟悉PHP。 但我相当绿色的PHP的一个方面是caching,负载平衡等。 许多公司雇用PHP开发人员正在寻找这些高利用率的背景,我从来没有真正用PHP开发企业基础架构。 这看起来更像是系统pipe理types的东西,所以当公司总是要求这样的经验的时候,我会感到一丝慌乱。 无论如何,我想我更好地学习。 哪里是开始学习这些东西的好地方?

PHP邮件()不能在Ubuntu上使用Postfix

我最近购买了VPS计划。 我安装了Ubuntu 9.10,PHP5和Postfix。 我不能让PHP的邮件()函数工作。 在我的PHP脚本中,mail()函数返回true,这表明它正在工作。 但没有人收到我的网站的电子邮件。 当我打电话给sudo apt-get install postfix的时候,postfix的安装似乎很顺利。 调用/etc/init.d/postfix start给了我“启动Postfix邮件传输代理后缀”。 调用/etc/init.d/postfix重新加载给了我错误“致命的:邮件系统没有运行”。 在安装postfix之前,我使用的是使用PHP mail()函数的sendmail。 如何debugging和解决这个问题? 额外的注意事项我在/var/log/mail.log查找,发现每次我调用PHP的邮件() Feb 3 11:27:41 mywebsitedomain postfix/postdrop[23793]: warning: unable to look up public/pickup: No such file or directory

PHP:当在Apache中运行时,gethostbyname()突然不再将名称parsing为IP

当我们在Apache中执行PHP时,其中一个没有进一步更新或重新configuration的旧式服务器突然停止将主机名parsing为IP。 但是,从CLI执行时仍然可以正常工作。 从RSScaching上次修改时间,我推断它在3月28日左右停止工作。 为了重现这个问题,我使用fsockopen()创build了一个脚本,它说“连接失败(errno 2)”。 我进一步减less了与失败的名称parsing有关的问题: <?php $addr = gethostbyname("twitter.com"); echo "ADDR($addr)"; ?> 当我通过Apache运行这个,输出是ADDR(twitter.com) ,这是错误的。 当我从CLI运行这个时,输出是ADDR(aaa.bbb.ccc.ddd)与不同的IP地址,如预期。 服务器设置上没有任何更改。 CLI和Apache模块共享相同的php.ini 。 PHP是Zend Optimizer v2.5.10的v4.4.9版本。 Apache是​​v1.3.31。 我知道版本是旧的。 但由于没有任何改变,像“先尝试升级版本”的解决scheme是没有解决scheme,因为服务器的function设置/版本被冻结,并将很快被replace。 我们仍然需要解决scheme。 如果我通过脚本运行dig ,它可以在两个环境(mod_php和CLI)中工作,但这不仅仅是一个丑陋的黑客攻击,因为它涉及许多编辑和testing,整个脚本库也是不受欢迎的,因为服务器上的PHP应用程序也被冻结,只收到安全更新。 它将被完全重写(在新服务器上)所取代。 但是由于重写需要一些时间,并且需要连续地replace遗留应用程序的一部分,所以我们需要修复parsing器问题。 我已经search了一下,虽然这个问题是已知的,但是很多人没有find解决办法。 提高内存限制的修复程序不起作用。 重新启动没有工作。 mod_php中的parsing器只是停止工作,没有明显的原因。 🙁 更新:我通过完全停止Apache来解决它,等待片刻,然后再次启动它。 但是这并不能解释这种行为的根源(因此没有令人满意的解决scheme)。 所以我把这个打开。

Ubuntu 10.04上的PHP 5.2x Lucid Lynx

看来,Lucid Lynx自带PHP 5.3。 有没有一种方便的方法降级到最新的5.2x版本?

什么是AddType应用程序/ x-httpd-php-source

我有Apache 2.0,PHP 5.2.4和httpd.conf中的这个指令: AddType application/x-httpd-php-source .php .php3 .php4 .php5 .php6 AddType指令用于将给定的文件扩展名映射到指定的内容types。 这是这个指令的唯一含义。 但是为什么这个方法closures了PHP处理程序,它分配了.php扩展名,我可以在浏览器中查看脚本的源代码? 另一个: AddType application/x-httpd-php5 .php 为什么这个方法开启PHP处理程序? 这只需要将头文件Content-Type: application/x-httpd-发送到我的浏览器,这只能是来自mod_mime的指令AddType含义。 我很困惑。

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.