Questions tagged «php-fpm»

PHP-FPM(FastCGI流程管理器)是另一种PHP FastCGI实现,具有一些其他功能,可用于各种规模的站点,尤其是繁忙的站点。


14
在stderr中发送的Nginx 1 FastCGI:“主要脚本未知”
我第一次使用Nginx,但是我对Apache和Linux的了解不止于此。我正在使用一个现有项目,并且每当尝试查看index.php时,都找不到404文件。 这是access.log条目: 2013/06/19 16:23:23 [error] 2216#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.ordercloud.lh" 这是网站可用的文件: server { set $host_path "/home/willem/git/console/www"; access_log /www/logs/console-access.log main; server_name console.ordercloud; root $host_path/htdocs; set $yii_bootstrap "index.php"; charset utf-8; …
81 nginx  php-fpm 


3
Nginx + PHP-FPM的PHP选项'cgi.fix_pathinfo'真的很危险吗?
已经有一个 很大 的 谈论关于相对于一个安全问题cgi.fix_pathinfo与Nginx的(通常是PHP-FPM,快速CGI)使用PHP选项。 结果,默认的nginx配置文件用来表示: # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini 但是,现在,“官方” Nginx Wiki 指出可以在不禁用上述PHP选项的情况下正确处理PATH_INFO。所以呢? 问题 您能清楚地解释cgi.fix_pathinfo做什么吗?(官方文档只是说:“有关PATH_INFO的更多信息,请参见CGI规范”) PHP将如何真正处理这些变量PATH_INFO和SCRIPT_FILENAME变量? 为什么使用Nginx以及如何会有危险?(详细示例) 在这些程序的最新版本中是否仍然存在该问题? Apache容易受到攻击吗? 我试图在每个步骤中了解问题。例如,我不明白为什么使用php-fpm Unix套接字可以避免此问题。

7
PECL命令产生一长串错误
当前在CentOS 6.5上运行PHP 5.4。 我安装了webtatic php55w软件包,然后通过PECL毫无问题地安装了PEAR + PECL以及redis和mongo。 不久之后,我意识到5.5与我使用的框架不兼容,所以我删除了php55w并在其位置安装了php54w。 现在pecl命令根本不起作用。每当我发出任何pecl命令(缩写...最多重复数十次)时,它只会产生非常长的错误字符串: Warning: Invalid argument supplied for foreach() in Command.php on line 259 Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 259 ...etc etc etc... Notice: Undefined index: honorsbaseinstall in Role.php on line 180 Notice: Undefined index: honorsbaseinstall in Role.php on …
47 php  centos6  php-fpm  pecl  pear 

3
php5-fpm:服务器已到达pm.max_children
我有Nginx + php5-fpm。每小时几次,我的网站停滞不前,在日志文件中,我看到以下内容: 警告:[pool www]服务器已达到pm.max_children设置(5),请考虑提高它。 /etc/php5/fpm/pool.d/www.conf文件包含以下配置: pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 服务器: AMD Opteron™3280,八核,8个2.4 GHz,16 GB DIMM(DDR3)。 我不知道我应该在此服务器的www.conf文件中输入什么数字。我可以帮忙吗?谢谢
41 php-fpm 

3
如何更改NGINX用户?
我有一个PHP脚本,它创建一个目录并将图像输出到该目录。在Apache下,这工作得很好,但是我们最近决定改用NGINX,以更多地利用我们有限的RAM。我正在使用PHP mkdir()命令创建目录: mkdir(dirname($path['image']['server']), 0755, true); 切换到NGINX后,我收到以下警告: Warning: mkdir(): Permission denied in ... 我已经检查了父目录的所有权限,因此我确定我可能需要更改NGINX或PHP-FPM'用户',但是我不确定该怎么做(我从来不必指定用户APACHE的权限)。我似乎找不到太多的信息。任何帮助将是巨大的! (注意:除了这种挂断,向NGINX的切换非常无缝;我是第一次使用它,从字面上看,它仅用了10分钟就可以开始和运行NGINX。现在,我正在熨烫纠结)。

3
nginx + php-fpm-我的$ _GET参数在哪里?
我这里有一个奇怪的问题。我只是从apache + mod_php移到了nginx + php-fpm。除了这个问题,一切都进行得很好。 我有一个网站,例如example.com。当我访问它时,就像example.com?test=get_param $_SERVER['REQUEST_URI']是/?test=get_param,还有一个$_GET['test']。 但是,当我访问example.com/ajax/search/?search=get_param $_SERVER['REQUEST_URI']时/ajax/search/?search=get_param仍然没有$_GET['search'](有没有$_GET在所有的阵列)。 我正在使用Kohana框架。哪个路由/ajax/search到控制器,但是我已经投入了phpinfo(),index.php所以我要$_GET在框架执行任何操作之前检查变量(这意味着消失的get参数不是框架的错)。 我的nginx.conf是这样的 worker_processes 4; pid logs/nginx.pid; events { worker_connections 1024; } http { index index.html index.php; autoindex on; autoindex_exact_size off; include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log …
34 nginx  php-fpm  kohana 

12
Apache 2.4 + PHP-FPM + ProxyPassMatch
我最近在本地计算机上安装了Apache 2.4,以及使用PHP-FPM的PHP 5.4.8。 一切都进行得很顺利(过了一会儿...),但是仍然有一个奇怪的错误: 我像这样为PHP-FPM配置了Apache: <VirtualHost *:80> ServerName localhost DocumentRoot "/Users/apfelbox/WebServer" ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/Users/apfelbox/WebServer/$1 </VirtualHost> 它有效,例如,如果我打电话给http://localhost/info.php我,我得到了正确的phpinfo()(它只是一个测试文件)。 但是,如果我调用目录,则会File not found.在错误日志中显示带有正文的404 : [Tue Nov 20 21:27:25.191625 2012] [proxy_fcgi:error] [pid 28997] [client ::1:57204] AH01071: Got error 'Primary script unknown\n' 更新资料 我现在尝试使用mod_rewrite进行代理: <VirtualHost *:80> ServerName localhost DocumentRoot "/Users/apfelbox/WebServer" RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteRule …

8
Nginx + php-fpm“ 504网关超时”错误,负载几乎为零(在测试服务器上)
经过6小时的调试-我放弃了:| 我们在局域网中有一个nginx + php-fpm + mysql,具有将近100个wordpress(由从事测试wordpres设置的不同设计师/开发人员创建和使用) 我们正在使用nginx,长期以来没有任何问题。 今天,突然之间-nginx开始突然返回“ 504网关超时” ... 我检查了Nginx错误日志中的虚拟主机... 2010/09/06 21:24:24 [error] 12909#0: *349 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info" 2010/09/06 21:25:11 [error] 12909#0: *349 recv() failed (104: Connection …

1
不断不得不重新加载PHP-FPM
我们有一台运行Nginx和PHP-FPM的服务器。该服务器上有6个网站,运行PHP-FPM和nginx。该软件是所有vBulletin 3.8和WordPress。数据库位于单独的服务器上。 现在,由于这些网站非常受欢迎,因此通常一次我们有7-8,000名访问者在线,每个页面大部分都访问数据库。我相信这是造成我们问题的原因。 因为我们在MySQL服务器上有许多大型数据库,并且坦白地说,由于查询可以在软件中更好,所以我认为MySQL偶尔会无法及时将结果返回给PHP,从而产生级联效应,最终导致一切停止,直到我们重新加载PHP-FPM。完成之后,一切又开始正常运转。 我在排除故障时遇到问题的原因是因为我无法真正从日志中识别出任何东西。在MySQL慢查询日志中,当停机发生时,我什么都没看到。在nginx日志中,我看到成千上万的条目说读请求超时或连接超时(到PHP-FPM)。并且在PHP-FPM日志中,我看到很多行显示“执行超时(31秒),终止 所以在这一点上,我完全不知道在哪里寻找问题。显然,无论发生什么事情,都是因为这些脚本有时执行得不够快(通常它们在不到一秒钟的时间内加载,但是某些事情导致加载时间猛增)。一天发生多次这种情况,对我们来说已经成为一个大问题。 现在,我只是有一个crontab来每隔10分钟重新加载php5-fpm,这可以解决崩溃问题。当然,当PHP重新加载时,nginx会抛出502网关错误,因此这并不是解决方案。 如果这很重要,PHP将运行APC缓存。我读过一些地方,在某些情况下APC可能导致挂起。 任何指针都会有所帮助。我真的不想一直担心这台机器。 当然,可以提供更多信息。请让我知道您的需求。 更新:我只是通过apc.php复制到Web根目录并访问它以查看我们的统计信息。事情看起来不错。然后,我单击链接转到“用户统计”,然后BOOM服务器立即挂起。我重新加载了php-fpm,然后重新加载了用户统计信息页面,一切顺利。等待一分钟,重新加载,服务器再次挂起。 因此,这似乎与APC有关。问题是-我们该如何解决? APC配置: [apc] apc.enabled="1" apc.stat = "1" apc.max_file_size = "2M" apc.localcache = "1" apc.localcache.size = "256" apc.shm_segments = "1" apc.ttl = "3600" apc.user_ttl = "7200" apc.gc_ttl = "3600" apc.cache_by_default = "1" apc.filters = "" apc.write_lock = "1" apc.num_files_hint= "10000" …
27 mysql  nginx  php-fpm 

8
Apache2代理超时
我有根据以下配置配置的具有PHP + PHP-FPM的Apache2: http://wiki.apache.org/httpd/PHP-FPM 我正在编写一个脚本,该脚本将需要很长时间才能在内部Vhost上执行,但是随着时间的推移,如果脚本在30秒内执行完毕,一切都将完美运行。 我的apache日志告诉我: [Wed Apr 17 21:57:23.075175 2013] [proxy_fcgi:error] [pid 9263:tid 140530454267648] (70007)The timeout specified has expired: [client 58.169.202.172:49017] AH01075: Error dispatching request to :, referer: 尝试运行脚本时503 Service Unavailable,恰好在30秒的执行时间后给出了a 。从逻辑上讲,这意味着我将超时指令或设置设置为30秒,但是我将这些存储在Vhost的配置中: Timeout 600 <IfModule proxy_module> ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9001/home/pyrokinetiq/scripts/$1 timeout=600 ProxyTimeout 600 </IfModule> (php-fpm对我来说在9001端口上运行) 我也曾尝试放置Timeout,并ProxyTimeout在httpd.conf与无差异。 似乎还有一个特定于的超时设置mod_proxy_fcgi,但我找不到。我从官方tarball安装了Apache2 httpd,似乎所有mod均未附带任何配置文件。 如果有人能指出我正确的方向,将不胜感激。

6
增加PHP-FPM的最大上传/发布大小
我在Ubuntu 14.04上的Nginx下运行php5-fpm。我想增加最大上传大小。 我已经编辑/etc/php5/fpm/php.ini了以下几行: upload_max_filesize = 20M post_max_size = 25M 我重新启动了php5-fpm和nginx,但phpinfo()仍然显示分别限制为8M和2M,分别用于发布和上传。 我有什么想念的吗?
22 nginx  php-fpm  php.ini 

4
nginx + PHP-FPM = nginx日志中的“权限被拒绝”错误13;配置错误?
我已经在一台RHEL5服务器上在PHP 5.2.10下运行nginx 0.7x + PHP-FPM,但是试图在第二台服务器上在PHP 5.3.3的捆绑式PHP-FPM下复制该设置,每次有GET时都会出现权限错误。 FPM已启动,并确认fastcgi在9000上进行侦听,但是每次执行GET时,我都会在nginx日志中看到此错误: 2010/08/12 23:38:53 [crit] 5019#0: *5 stat() "/home/noisepages/www/" failed (13: Permission denied), client: 24.215.173.141, server: dev.noisepages.com, request: "GET / HTTP/1.1", host: "dev.noisepages.com" 准系统nginx.conf.default至少可以运行。这是我的nginx.conf server { listen 80; server_name dev.noisepages.com; root /home/noisepages/www; index index.html index.htm index.php; access_log logs/dev.access.log; error_log logs/dev.error.log; location / { if (-f …

2
将上游和位置用于php-fpm有什么区别?
我一直在搜索,但找不到直接的答案,如果有人可以澄清一下,将不胜感激,谢谢! location ~ \.php$ { try_files $uri = 404; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; include fastcgi.conf; } OR / AND? upstream php { server unix:/run/php-fpm/php-fpm.sock; } 谢谢!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.