标签: php-fpm

Nginx + Php5-fpm 不渲染 php 文件

我花了几个小时弄清楚如何安装 Nginx + Ruby 企业版 + PHP5-fpm 和 MYSQL,最后都安装好了,一切似乎都开始正常了。

但由于某种原因,php 文件没有被处理。

.html 文件工作正常,但是当我尝试查看 .php 文件时,它看起来好像不存在,即使它确实存在。有趣的是,当我尝试查看一个不存在的 .html 文件时,我收到了一个很好的 Nginx 404 消息,但是当我查看一个 .php 文件时,它甚至没有给我。

所以我的新手理解,看起来配置有问题,或者 Nginx 和 PHP-fpm 没有相互交谈。

我一直在查看 nginx 配置文件的许多其他示例,我确信这方面没问题。好吧……无论如何,这是conf文件的相关部分:

location ~ \.php$ {
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME /var/www/eman/$fastcgi_script_name;
   include fastcgi_params;
 }
Run Code Online (Sandbox Code Playgroud)

    fastcgi_connect_timeout 60;
 fastcgi_send_timeout 180;
 fastcgi_read_timeout 180;
 fastcgi_buffer_size 128k;
 fastcgi_buffers 4 256k;
 fastcgi_busy_buffers_size 256k;
 fastcgi_temp_file_write_size 256k;
 fastcgi_intercept_errors on;
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏。

编辑:以下是从测试 php 文件“ http://eman.id.au/test.php ”返回的标头:

HTTP/1.1 404 Not Found =>
Server => nginx/0.8.54
Date => Thu, …
Run Code Online (Sandbox Code Playgroud)

linux nginx php5 php-fpm

8
推荐指数
1
解决办法
1万
查看次数

如何让 Nginx 将对不存在的文件的所有请求重定向到单个 php 文件?

我有以下 nginx vhost 配置:

server {
    listen 80 default_server;

    access_log /path/to/site/dir/logs/access.log;
    error_log /path/to/site/dir/logs/error.log;

    root /path/to/site/dir/webroot;
    index index.php index.html;

    try_files $uri /index.php;

    location ~ \.php$ {
            if (!-f $request_filename) {
                    return 404;
            }

            fastcgi_pass localhost:9000;
            fastcgi_param SCRIPT_FILENAME /path/to/site/dir/webroot$fastcgi_script_name;
            include /path/to/nginx/conf/fastcgi_params;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想重定向所有与 index.php 存在的文件不匹配的请求。这适用于目前大多数 URI,例如:

example.com/asd
example.com/asd/123/1.txt
Run Code Online (Sandbox Code Playgroud)

无论是中asdasd/123/1.txt存在,所以他们重定向到的index.php和工作正常。但是,如果我输入 url example.com/asd.php,它会尝试查找asd.php,当找不到时,它会返回 404 而不是将请求发送到index.php

有没有得到一个方式asd.php进行也发送到index.php如果asd.php不存在?

php nginx redirect php-fpm

8
推荐指数
2
解决办法
6万
查看次数

带有 PHP FPM 的 Apache2 fcgid(不是 FastCGI)

Apache2 有一个内置的 fastcgi 替代品,称为 fcgid。这很好,但它缺少 FastCgiExternalServer 指令,我用来连接到 PHP-FPM。我怎样才能对 apache2 中的 fcgid 模块做同样的事情?

我的目标是将 php-fpm 与 apache2 一起使用(在 debian Squeeze 上)。

php-fpm apache-2.2

8
推荐指数
1
解决办法
1万
查看次数

Php5-fpm 如果访问者太多会崩溃

我决定将我的 OP 从 Litespeed 更改为 Nginx,因为我阅读了很多关于 Nginx 将花费的低资源的信息。

我正在运行一个有 500 个在线用户的 Wordpress 网站

好的,谢谢你们的帮助:) 我编辑了一些东西。

我也有一些问题:

我必须删除吗?下午之前。设置?我删除了它什么配置重要?我有两个快速 cgi,一个在 /etc/php5/fpm 中,名为 php-fpm.conf ,另一个在 /etc/php5/fpm/pool.d 中,名为 www.conf ?

我一夜之间尝试了新配置,当我醒来时,我已经得到了一个空白页面。最佳:

top - 13:55:27 up 1 day, 19:28,  2 users,  load average: 0.18, 0.36, 0.19
Tasks:  84 total,   1 running,  83 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.0%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3974264k total,  1051360k used,  2922904k free,   162380k buffers
Swap:  3998700k total,        0k used,  3998700k free,   609220k cached

  PID …
Run Code Online (Sandbox Code Playgroud)

php nginx php-fpm

8
推荐指数
1
解决办法
2万
查看次数

Apache + PHP-FPM = 随机“错误解析脚本头”+ 段错误

我使用 proxy_fcgi 在 Apache 2.4 上设置了 PHP-FPM,一切正常,但是 4-6 个请求中的每个请求,Apache 都会返回一个空白页面。这发生在我的主站点http://danielhe.com/ 上,但不是子域 vhosts。

这会显示 Apache 的错误日志,[client x] AH01070: Error parsing script headers

最终,有时 Apache segfaults AH00052: child pid 9740 exit signal Segmentation fault (11)

通过多次刷新页面,我可以很容易地重现“错误解析脚本标题”,但是在几次“错误解析脚本标题”之后,段错误会随机发生

更新 我找到了段错误的修复程序,并且 WSOD 显然已自行修复。mod_deflate 有一些问题,但是 Apache 文档中的这个配置修复了它

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
Run Code Online (Sandbox Code Playgroud)

php httpd php-fpm apache-2.4

8
推荐指数
1
解决办法
8993
查看次数

Nginx 不记录 PHP 错误

在我的网站上访问某些 PHP 脚本时,我收到了可怕的 500 错误消息。我想知道修复它有什么问题,但 Nginx 没有在我指定的日志文件中记录任何 PHP 错误。这是我的服务器块:

server {
    listen 80;
    server_name localhost;
    access_log /home/whitey/sites/localhost/logs/access.log;
    error_log /home/whitey/sites/localhost/logs/error.log error;
    root /home/whitey/sites/localhost/htdocs;
    index index.html index.php /index.php;

    location / { 

    }

    location ~ \.php$ {
        fastcgi_pass unix:/tmp/phpfpm.sock;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
        expires max;
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,有些 PHP 脚本可以正常工作,而有些则不行。所以 PHP 不存在全局问题,只是这些脚本中的某些内容导致 Nginx 抛出 500 错误。

我怎样才能找到这个问题的根源?唯一的问题error.log是找不到有关 favicon.ico 的错误。

nginx logging php-fpm 500-error

7
推荐指数
2
解决办法
4万
查看次数

PHP-FPM 服务状态“停止/等待”但工作人员正在运行?

启动 php5-fpm 似乎可以工作,但立即检查状态显示它没有运行:

[root@server ~]# service php5-fpm start
php5-fpm start/running, process 4516

[root@server ~]# service php5-fpm status
php5-fpm stop/waiting
Run Code Online (Sandbox Code Playgroud)

即使我能够加载 PHP 页面(意味着 PHP-FPM 必须正在运行),状态有时也会报告为stop/waiting.

看来,有正在运行的进程,但这些只是工作进程?

ps -aux |grep php
www-data  3552  0.0  0.7 338108 14960 ?        S    05:43   0:00 php-fpm: pool www                                                       
www-data  3553  0.0  1.3 338168 27156 ?        S    05:43   0:00 php-fpm: pool www                                                       
www-data  3554  0.0  1.1 337948 23020 ?        S    05:43   0:00 php-fpm: pool www                                                       
www-data  3555  0.0  1.0 334108 20644 ?        S …
Run Code Online (Sandbox Code Playgroud)

php-fpm start-stop-daemon ubuntu-14.04

7
推荐指数
1
解决办法
1万
查看次数

php-fpm 套接字的 SElinux 标签

我正在尝试设置 php-fpm 的多个实例,以通过在 centos 6.5 上运行的 apache 2.2 运行多个版本的 php。

在未来的某个时候,这将最终出现在共享托管环境中,因此我需要尽可能严格的安全性。

因此,我试图避免完全禁用 selinux,并尝试将策略设置得尽可能窄。

我对 selinux 比较陌生(我们现有的服务器只是将其禁用)。我已经对这个主题进行了大量阅读,但逻辑仍然无法理解(正如我确定这个问题所显示的那样)。

调用 php-script 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"
Run Code Online (Sandbox Code Playgroud)

包含 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   ..
srw-------. apache apache unconfined_u:object_r:var_run_t:s0 apache_default.sock
srw-------. apache apache unconfined_u:object_r:var_run_t:s0 i10000_test-1.testtest.org.sock
srw-------. …
Run Code Online (Sandbox Code Playgroud)

selinux php-fpm socket apache-2.2 centos6.5

7
推荐指数
1
解决办法
6590
查看次数

为什么php-fpm 以nobody 身份运行?

我最近按照以下说明在我的服务器上安装了 php-fpm(CENTOS 6.5 x86_64 标准,WHM 11.44.1(build 7)):http : //infoliser.com/how-to-configure-apache-2-2-with -php-fpm-using-whm-cpanel-and-easyapache/

服务器 API,正如所揭示的 phpinfo(),现在是 FPM/FastCGI。

但是,当我运行包含 的 php 脚本时exec('id'),我得到:

uid=99(nobody) gid=99(nobody) groups=99(nobody)

我的印象是 php-fpm 将作为 php 脚本所有者的 uid 运行,而不是作为 http 进程的所有者(如本例)。这个页面http://php-fpm.org/说 fpm 具有“能够以不同的 uid/gid/chroot/environment 和不同的 php.ini(替换 safe_mode)启动工人”。

我究竟做错了什么?

php-fpm nobody

7
推荐指数
1
解决办法
7061
查看次数

PHP FPM 一直挂着

我尝试了各种选择,但每隔几天(主要是每天)FPM 就会停止提供页面,并且我收到 502(来自 cherokee 网络服务器)

日志中填充了以下内容:

[15-Sep-2014 10:17:46] WARNING: [pool www] child 10135 exited on signal 11 (SIGSEGV - core dumped) after 15.512406 seconds from start
[15-Sep-2014 10:17:46] NOTICE: [pool www] child 10138 started
[15-Sep-2014 10:18:02] WARNING: [pool www] child 10138 exited on signal 11 (SIGSEGV - core dumped) after 15.657950 seconds from start
[15-Sep-2014 10:18:02] NOTICE: [pool www] child 10166 started
[15-Sep-2014 10:18:20] WARNING: [pool www] child 10212 exited on signal 11 (SIGSEGV - core dumped) after 10.192596 seconds …
Run Code Online (Sandbox Code Playgroud)

php-fpm

7
推荐指数
1
解决办法
1万
查看次数