Articles of php fpm

nginx + php-fpm:上游超时

build立: 我有一个运行nginx + php-fpm的虚拟盒子(vagrant)。 我已经加载了xdebug模块。 版本: OS: uname -a Linux vagrant-ubuntu-vivid-64 3.19.0-26-generic #28-Ubuntu SMP Tue Aug 11 14:16:32 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux PHP5-FPM: php5-fpm -v PHP 5.6.4-4ubuntu6.2 (fpm-fcgi) (built: Jul 2 2015 15:59:03) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.4-dev, Copyright (c) […]

后端抓取失败 – varnish不会获取drupal后端

我运行一个drupal 7应用程序(3backends),我有3个清漆服务器不断拒绝提取后端。 我在这里读了很多类似的错误,但仍然无法解决我的问题,扔503清漆取得失败的上师冥想。 我已经阅读所有的post,所有似乎都build议高超时,我已经设置为600s,许多不build议.probe,我有round.robin(切换后端),这里是我的后端configuration: backend project1 { .host = "myhost.ip"; .port = "80"; .connect_timeout = 600s; .first_byte_timeout = 600s; .probe = { .timeout = 600s; .interval = 10s; .window = 5; .threshold = 2; .request = "GET HTTP/1.1" "Host: example.com" "Connection: close"; } } 我已经监视了我的错误日志和访问日志,顺便说一下,我注意到我有太多这样的错误,但我不希望你有偏见。 [info] Client prematurely closed connection (broken pipe) 有时 reqv failed […]

允许SELinux,Nginx读取本地文件并进行出站连接

我是一个使用CentOS 7,nginix和php-fpm的服务器的新pipe理员。 有一个Web表单需要读取本地文件(prod.pem),然后build立一个出站连接: gateway.push.apple.com:2195 gateway.sandbox.push.apple.com:2195 在audit.log中,我看到以下两个条目: type=AVC msg=audit(1465918007.693:406): avc: denied { read } for pid=1796 comm="php-fpm" name="prod.pem" dev="dm-0" ino=19554 type=SYSCALL msg=audit(1465918007.693:406): arch=c000003e syscall=2 success=no exit=-13 a0=7fff2ee13570 a1=0 a2=1b6 a3=24 items=0 ppid=1213 pid=1796 auid=4294967295 uid=997 gid=996 euid=997 suid=997 fsuid=997 egid=996 sgid=996 fsgid=996 tty=(none) ses=4294967295 comm="php-fpm" exe="/usr/sbin/php-fpm" subj=system_u:system_r:httpd_t:s0 key=(null) 我的/etc/selinux/config : SELINUX=enforcing SELINUXTYPE=targeted 我如何configurationSELinux以允许读取文件并进行出站连接? 我也想确保这些在重新启动时保留。

如何用Apache mod_proxy_fcgi指定FastCGI参数?

PHP-FPM文档说可以从Web服务器传递自定义的php指令, 这里有一个Nginx的例子 。 是否有可能,以及如何使用Apache-2.4和mod_proxy_fcgi来做同样的事情? 作为一个例子,我想为不同的虚拟主机设置一个不同的open_basedir ,它们都运行在同一个PHP-FPM池中。

configurationphp-fpm来访问docker中的环境variables

我在Docker容器中运行php7-fpm。 但是我的PHP脚本不能访问我的docker-compose文件中设置的环境variables。 getenv('MY_ENV_VAR')返回FALSE 。 我已经改变了/etc/php/7.0/fpm/pool.d/www.conf以包括clear_env = no并重新启动与service php7.0-fpm restart但我的环境variables开始不存在。 我也尝试编辑/etc/php/7.0/fpm/php.ini包含行variables_order = "EGPCS" 。 当我进入我的容器上的bash shell时,我可以看到我的variables存在。 这只是他们不能在我的PHP脚本访问。 我错过了什么?

如何判断哪个Web节点正在提供内容?

我有一个负载均衡器,将stream量分配给5个Web节点中的1个。 是否有一种简单的方法可以告诉我正在谈论什么Web节点,当它服务于我的内容。 例如,我是否在Apache中实现了一个Header? 在每个页面上添加一个隐藏的HTML元素? 奖励要点:人们做什么来强制自己到一个特定的networking节点?

NGINX – 将所有内容转发到php脚本

我试图转发每个请求到相同的PHP脚本。 我想出了这个configuration: server { listen 80; server_name example.com; root /var/www/html; index api.php; location / { try_files $uri /api.php$is_args$args; } location ~ \.php { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_index api.php; fastcgi_pass 127.0.0.1:9000; } } 虽然它起作用,但如果提供了正确的$ uri,它仍然允许直接访问资源。 如果我尝试将第一个位置块更改为: location / { try_files /api.php$is_args$args =404; } 它不起作用,总是返回404。

Nginx和PHP FPM很慢

我的服务器有512 MB内存。 nginx.conf的设置是 user www-data; worker_processes 2; pid /var/run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; #tcp_nopush on; #tcp_nodelay on; keepalive_timeout 3; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log […]

如何在使用Nginx重写的Zend Framework路由中避免index.php

我正试图从默认的Zend框架路线摆脱index.php。 我认为应该在服务器级而不是在应用程序上进行纠正。 (纠正我,如果我错了,但我认为这样做在服务器端更有效)。 我运行Nginx 0.7.1和php-fpm 5.3.3 这是我的nginxconfiguration server { listen *:80; server_name domain; root /path/to/http; index index.php; client_max_body_size 30m; location / { try_files $uri $uri/ /index.php?$args; } location /min { try_files $uri $uri/ /min/index.php?q=; } location /blog { try_files $uri $uri/ /blog/index.php; } location /apc { try_files $uri $uri/ /apc.php$args; } location ~ \.php { […]

Magento,NGINX,PHP-FPM,APC,MEMCACHED,16gb Ram CentOS,PHP-FPM Spiking到100%CPU

我一直在试图解决由于php-fpm进程引起的CPU问题。 我已经减less了php-fpm的configuration设置: pm = ondemand pm.max_children = 12 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 10 pm.max_requests = 500 php_admin_value[memory_limit] = 128M 问题依然存在。 我运行一个Joomla主站点(这是没有问题)和一个Magento商店在一个子目录。 我的服务器是Linux CentOS,运行NGINX,APC,Memcached,Full Page Cache和php-fpm。 我的服务器有8个核心和16GB专用ram。 我的主机过去几周closures了我的服务器,因为我的php-fpm进程正在占用整个networking。 很多单独的php-fpm进程正在获得超过50%的cpu。 我聘请了几个“专业人士”,他们没有一个能够帮助我,所以现在破产了,我转向你们寻求帮助。 所以,任何build议将不胜感激。 我打开慢的PHP日志,这里是一些最新的结果: [01-Apr-2012 14:26:12] [pool magento] pid 21537 script_filename = /home/flyfish/www/flyshop/index.php [0x0000000011a394f8] _renderStraightjoin() /home/flyfish/www/flyshop/lib/Varien/Db/Select.php:397 [0x0000000011a39158] _renderStraightjoin() /home/flyfish/www/flyshop/lib/Zend/Db/Select.php:705 [0x0000000011a38f30] assemble() /home/flyfish/www/flyshop/lib/Zend/Db/Select.php:1343 [0x00007fffbb6d6e50] __toString() […]