Articles of php fpm

如何在Fedora中为php-fpm设置umask

在Fedora 19中,我找不到在哪里设置umask(为php脚本创build的文件设置适当的权限)(具体来说,我希望新文件具有权限664)

Nginx + PHP-FPM超时,几乎为零负载消耗?

我有一台服务器在Linode上运行,包括Ubuntu 10.04 LTS,Nginx 0.7.65,MySQL 5.1.41和PHP 5.3.2以及PHP-FPM。 有一个WordPress博客,最近更新到WordPress 3.2.1。 我没有改变服务器(除了更新WordPress),而且运行良好,几天前我开始停机。 我试图解决这个问题,并检查error_log我看到许多超时和消息,似乎与超时。 服务器当前正在logging这种错误: 2011/07/14 10:37:35 [warn] 2539#0: *104 an upstream response is buffered to a temporary file /var/lib/nginx/fastcgi/2/00/0000000002 while reading upstream, client: 217.12.16.51, server: www.example.com, request: "GET /page/2/ HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "www.example.com", referrer: "http://www.example.com/" 2011/07/14 10:40:24 [error] 2539#0: *231 upstream timed out (110: Connection timed out) […]

在容错Memcached池中的PHP会话存储

我最近有机会将Web应用程序从使用Nginx代理“loadbalancer”转移到F5负载均衡器。 不幸的是,在迁移过程中,很明显memcached会话存储需要从Nginx代理服务器转移到“某处”。 我的想法是,我应该把memcached放在所有3台Web服务器(位于池中的F5后面的服务器)上,并使用php-memcache或php-memcached来保存会话。 这是麻烦: 我已经尝试了php-memcache和php-memcached ,如果其中一台服务器出现故障,则无法正常运行。 我最近的尝试是使用这种configuration: memcached版本2.2.0与configuration设置: session.save_handler = memcached session.save_path =“172.29.104.13:11211,172.29.104.14:11211” 除了extension=memcached.so以外,我在memcached.ini没有任何特别之处。 通过在服务器1和2上的这个configuration(我暂时移除了3个testing),我将JMeter指向F5 VIP并启动stream量。 我可以在两个系统上看到memcached.log (守护进程),尽pipe没有花时间解密,开始运行。 然后,如果我停止一个memcached守护进程,stream量开始失败,我的回报是 session_start(): Write of lock failed 剩下的memcached 。 在一天结束的时候,我的目标很简单 – 我需要能够:a)不在单个服务器上运行memcached (单点故障),并且集群需要对池成员的故障具有恢复能力。 我也试过php-memcache但是也失败了。 对于php-memcache ,configuration如下所示: memcache版本3.0.8(testing版)与configuration设置: session.save_handler = memcache session.save_path =“tcp://172.29.104.13:11211,tcp://172.29.104.14:11211” 和memcache.ini : 延长= memcache.so [内存caching] memcache.dbpath = “的/ var / lib中/内存caching” memcache.maxreclevel = 0 memcache.maxfiles = […]

为什么响应在16k用php + fastcgi截断?

我有PHP 5.3.3和nginx 0.8.47从运行Wordpress博客的源代码编译。 WordPress生成的RSS feed在16k左右被截断(包括头部为16k + 90b)。 通过添加以下内容到我的nginxconfiguration: fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; 问题就消失了。但是,从我在Nginx wiki页面上读到的内容来看,缓冲区只会决定缓冲区何时会溢出到磁盘上。 没有任何信息表明响应可能被截断,因为缓冲区太小。 所以我的问题是,为什么在更改此设置之前,响应被截断? 看来请求不应该被截断,只是由于磁盘缓冲而慢一点。 附加信息: Ubuntu 10.04.2 32位 PAGESIZE 4k

PHP5-FPM不会在/ var / run中创buildunix套接字目录

我已经设置了我的php5-fpm绑定到/var/run/php5-fpm一个unix域套接字。 /etc/php5/fpm/pool.d/www.conf listen = /var/run/php5-fpm/$pool.sock 问题是它不会自动创buildphp5-fpm目录。 当我重启机器时,目录不见了。 我怎么能在启动时自动创build它? 还是有这个问题的其他解决scheme?

Apache 2.4与PHP-FPM .htaccessredirect

我在服务器上用PHP-FPM设置了Apache 2.4。 从Apache传递到PHP-FPM我使用以下内容: ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9001/hosting_files/site.com/admin_secure/$1 “admin_secure”是虚拟主机中的DocumentRoot。 在该目录中,我有一个包含以下内容的.htaccess文件: <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule> 该网站的工作,直到我试图访问应该在webroot目录中的东西。 例如,如果我访问位于webroot目录内的vendors/kcfinder/browse.php ,则会出现“文件未find”错误。 如果我去webroot/vendors/kcfinder/browse.php ,它的工作原理。 我已经打开了重写和代理日志logging,看起来重写从来没有发生。 它只是发送任何我input的URL(如果它是一个PHP文件)。 有没有办法写我的ProxyPassMatch语句,以重写这样的?

用于php-fpm套接字的SElinux标签

我试图设置php-fpm的多个实例,通过运行在centos 6.5上的apache 2.2来运行多个版本的php。 在未来的某个时候,这将会在一个共享的宿主环境中结束,所以我需要最紧密的安全。 因此,我试图避免完全禁用selinux,并试图尽可能缩小策略。 我对selinux比较新(我们现有的服务器只是禁用了它)。 我在这个话题上做了大量的阅读,但逻辑仍然逃避了我(正如我确信这个问题所表明的那样)。 当调用一个php脚本apache产生这个错误: [Sun May 18 10:46:17 2014] [error] [client 192.168.163.1] (13)Permission denied: FastCGI: failed to connect to server "/fcgi-bin-php5-fpm-i10000_test-1.testtest.org": connect() failed [Sun May 18 10:46:17 2014] [error] [client 192.168.163.1] FastCGI: incomplete headers (0 bytes) received from server "/fcgi-bin-php5-fpm-i10000_test-1.testtest.org" 包含php-fpm套接字的目录如下所示: drwxr-xr-x. root root system_u:object_r:var_run_t:s0 . drwxr-xr-x. root root system_u:object_r:var_run_t:s0 .. […]

信号11退出PHP-FPM和连续“

我有一个至强E5504 2ghz和8GB内存的Hpnetworking服务器,使用freebsd 8.2-p9 amd64, nginx 1.2.1 , PHP 5.3.14 ,mysql 5.5.25,apc,memcached和其他软件包安装使用freebsd端口。 (在该消息结束时的conf文件) 我的麻烦很简单,我在/ var / log / messages中有很多“退出信号11”,当php-fpm子女死亡时,我的网站上有“502网关错误”,这真的很无聊,因为我已经在一天的很多错误,在这个php-fpm conf我已经强制它在一个沉重的configuration与150的PHP-FPM的孩子在静态模式下,pm.max_requests = 10000000,但在我的PHP-FPM日志我发现每个孩子: [19-Jul-2012 18:58:14.666913] NOTICE: pid 84563, fpm_children_make(), line 421: [pool www] child 84717 started [19-Jul-2012 18:58:14.666984] DEBUG: pid 84563, fpm_event_loop(), line 409: event module triggered 1 events [19-Jul-2012 18:58:17.403217] DEBUG: pid 84563, fpm_event_loop(), line 409: […]

在Nginx中拒绝导致PHP-FPM不优先的文件夹

标题说了这一切,但我有一个非常有趣的问题,我很困惑。 基本上,我有一个简单的WordPress安装,我想拒绝一个文件夹(连同文件夹中的所有文件),让我们说/ wp-content / themes / default / scripts,但允许某些IP。 我可以拒绝这个文件夹的位置^~/wp-content/themes/default/scripts {deny all;}就像任何Nginx的大师会告诉你的一样。 但从我的理解,“^”具有更高的优先级,一旦find正则expression式匹配,将停止search其他位置块。 因为我不想拒绝每个人的文件夹(当然,使用allow (IP Address); ;,我的^~/wp-content/…位置块完全wh出我的PHP-FPM位置块来通过文件到FastCGI服务器。当然,当我试图查看文件夹中的任何文件时,PHP文件是直接下载,因为PHP不parsing它。 有没有人有一个想法? 我想阻止该文件夹,但为了让PHP同时为我决定允许的用户工作。 这是一个相当棘手的问题。 我找不到任何问题的答案。 多谢你们! 真的很感谢你的帮助! 对于任何人想知道,我现在的Nginx的vhostconfiguration如下所示: server { #..all of the common stuff you would expect include /folder/nginx.conf; #including some WordPress rewrites for W3 Total Cache # pass the PHP scripts to FastCGI server listening on UNIX […]

nginx还有另外一个重写或内部redirect循环

还有另一个redirect周期,是的。 看了其他问题,但似乎无法得到它的工作。 server { listen 80; server_name localhost; charset utf-8; access_log /srv/http/localhost/log/access.log; error_log /srv/http/localhost/log/error.log; location / { root /srv/http/localhost/www; index index.html index.php; } # prevent access to hidden files location ~ /\. { access_log off; log_not_found off; deny all; } # do not log assets location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; […]