Articles of php fpm

nginx php5-fpm不显示PHP消息

我看着我的nginx error.log,看到它被这些错误填满: FastCGI sent in stderr: "PHP message:" while reading response header from upstream, client: …, server: …, request: "GET /forum HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "…", referrer: "…" 正如你所看到的,没有错误引发的信息。 那里没有消息的原因是什么? 先谢谢你。

nginx,php-fpm错误,而Apache没有错误

我有一个与nginx,fastcgi部署的opencart应用程序。 我使用RDS作为Mysql服务器。 最近,我一直在我的日志中有这个错误,我运行负载testing围攻400并发用户。我得到这个错误 FastCGI sent in stderr: "PHP message: PHP Warning: mysqli::mysqli 同时使用apache作为服务器运行相同的负载testing。testing产生积极的结果 这些是用nginx围攻的结果 Transactions: 3246 hits Availability: 77.80 % Elapsed time: 146.43 secs Data transferred: 35.27 MB Response time: 6.86 secs Transaction rate: 22.17 trans/sec Throughput: 0.24 MB/sec Concurrency: 152.01 Successful transactions: 1049 Failed transactions: 926 Longest transaction: 36.83 Shortest transaction: 0.65 并与Apache Transactions: […]

php5-fpm连接超时/连接被拒绝

我们有一个约20000个网页浏览/每天的网页。 这个网页通常使用〜15-20 php5-fpm的孩子,但有时达到最多的孩子,该网站约15分钟将无法使用。 (150)高峰时间并不一定发生。 和php5-fpm / nginx重新启动没有帮助,当我重新启动php5-fpm时,它立即达到最大的孩子数量。 这是我的configuration文件: https : //drive.google.com/folderview?id=0BxIEpo_vWLGZeFVZUXBMRTA3QXc&usp=sharing 我不知道如何find导致它的原因。 我该怎么办才能解决这个问题?

如果一个线程超时,PHP-FPM将停止运行

我已经注意到了这一段时间,PHP-FPM完美工作,直到一个线程停顿。 例如,如果连接到另一台服务器或处理数据库请求所用的时间太长,则所有线程都将停止响应请求。 PHP-FPM将继续运行,大约1分钟后将再次响应请求。 它似乎locking。 任何想法可能导致这个? 这发生在通过套接字或更多定制configuration运行的标准configuration中。 服务器负载在发生时是无关紧要的。 如果我使用nginx或apache,无所谓。

Nginx的URL重写停止通过位置代码

我正在尝试在Nginx上configuration我的Phalcon(php框架)项目。 不幸的是,我无法完成重写工作。 为了更好地理解我的问题,请查看configuration文件: server { listen 80; ## listen for ipv4; this line is default and implied listen [::]:80 default_server ipv6only=on; ## listen for ipv6 index index.html index.htm index.php; server_name 149.21.165.142; root '/usr/share/nginx/www'; #custom settings for phalcon project: location ^~ /phalcon{ alias '/usr/share/nginx/phalcon/public'; # if file exists return it right away if (-f $request_filename) { […]

虽然我可以在chroot中使用sendmail,但PHP无法在chroot中进行邮件发送()

我正在构build一个php-fpm chroot,并且是我最后一个步骤之一,然后才称之为成功。 php-fpm chroot就像一个魅力。 此外,我已经将mini_sendmail安装到chroot(代替sendmail),并且可以确认它可以发送电子邮件: [root@hostname site1.com]# ls bin/ bash cat sendmail test.txt [root@hostname site1.com]# chroot . bash-4.2# cat /bin/test.txt | ./bin/sendmail -t -i [email protected] [email protected] 上述命令运行时,我会收到电子邮件。 但是,当我从Web浏览器访问下面的PHP脚本时,不发送电子邮件: <?php $message = "This is a test"; $headers = 'From: [email protected]'; mail("[email protected]", "Test", $message, $headers); echo "mail sent"; ?> 下面是我的php-fpm chroot池configuration文件: [site1.com] user = user1 group = […]

Php-fpm在启动时会破坏我的套接字权限

我已经在FastCgi模块上安装了Apache2.2,在Centos服务器上安装了PHP-fpm。 我使用套接字选项configurationFastCgi与外部服务器: FastCgiExternalServer /var/www/cgi-bin/test/php.fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600 当我开始我的服务(httpd和php-fpm)时,当我请求我的helloWorld-test-page时,出现错误500。 但是,如果我添加到我的php5-fpm.sock文件的每个用户的写访问我的你好世界的页面正常工作! 所以我认为这是很好的configuration 但是,只要php-fpm服务重新启动,我看到我的套接字的权限自动更新,然后我的testing页不再工作: srw-rw—- 1 root root 0 Nov 9 23:30 php5-fpm.sock 什么是套接字文件的良好configuration,你知道我应该configuration什么,使其明确吗?

权限问题:为什么用户在我的第二个php-fpm池中不需要?

我使用php-fpm自定义编译的Apache 2.4.17运行FreeBSD 10.2。 默认池( [www] ,几乎是一个股票php-fpm设置)在用户/组nobody / nobody 。 Apache在用户/组daemon / daemon 。 它可以很好地连接到一个插槽,有几个不同的站点都运行在库存池中。 他们是低优先级的网站使用PHP的东西,如显示时间。 从长远来看,我想制定一些更好的特权分离。 我在用户rcuser ,group rcuser (基本上是一个普通的FreeBSD shell帐户)拥有的单独的虚拟主机上创build了一个roundcube安装池。 根据习惯,我将networking虚拟主机放在/usr/vhosts/ ,所以这个网站会通过/usr/vhosts/webmail/htdocs/存储到/usr/vhosts/webmail/htdocs/ 。 整个webmail树属于用户和组rcuser。 这个树中的目录都有750个,文件有640个权限。 游泳池看起来像这样: [rcuser] user = rcuser group = rcuser listen = /var/run/php5-fpm-rcuser.sock listen.owner = rcuser listen.group = rcuser listen.mode = 0666 pm = dynamic pm.max_children = 5 pm.min_spare_servers = 1 […]

用zlib编译PHP,但不会出现在phpinfo()

我有一个程序,需要PHPconfiguration–with-zlib ,所以我重新运行./configure和sudo make install在我的Ubuntu 14.04服务器上sudo make install PHP 5.6.15。 但是,该程序仍然说,PHP不是用zlib编译的。 phpinfo()显示 Configure Command: './configure' '–with-mysqli' '–with-pdo-mysql' '–enable-fpm' '–with-mysql' 即使我使用了–with-zlib标志。 运行php -m将zlib列为模块。 我的php.ini具有zlib.output_compression = On和zlib.output_handler = On 。 我试过重新启动PHP-FPM,nginx和服务器本身。 一个尝试的解决scheme:我第一次尝试这个,似乎./configurecaching我的第一个configuration没有 zlib。 我重新提取了PHP,以确保不是这样,并再次做了一切。 我认为这次是正确的。 我认为也许我的命令行PHP和在networking服务器上运行的PHP使用不同的configuration,但似乎并不是这样。 我的PHP信息页面显示我在/usr/local/lib和php -i | grep 'php.ini'使用了php.ini php -i | grep 'php.ini'显示相同。 任何想法可能会出错? 这里有一个我的config.log的要点。 解决scheme :问题在于php-fpm没有运行,但是不是通知我,而是假设nginx提供了一个显示旧phpinfo()的caching页面。

WordPress上的两个独立的服务器,第一个与nginx,第二个与php-fpm。 在哪里保持静态文件?

例如,我有两台服务器(或VM)。 第一个是我安装了Nginx,第二个是PHP-FPM。 我需要部署一些应用程序,比如WordPress,它没有两个单独的文件夹用于脚本和静态文件,有时脚本可以写入静态文件。 这个怎么做? 据我所知,我应该在后端服务器上保留脚本,但是我应该如何处理静态文件? 我应该保留在这两个服务器上的所有文件(脚本+静态),并同步它们? 那我怎么能同步他们? 或者我应该只在后端保留脚本,而只在前端保持静态? 但是,如果某些脚本想要访问某个静态文件或写入,会发生什么? 还是应该在后端服务器上设置第二个Nginx实例,并将后端nginx的静态文件提供给前端nginx,然后将其caching到前端的磁盘上? 我知道,应该有不止一种方法来设置这个,我只是想听听人们通常如何做这个,为什么。 谢谢!