标签: php-fpm

使用 Nginx 在 PHP-FPM 7 上启用错误日志记录?

这与这些问题基本相同:

/sf/ask/607424541/

Nginx 不记录 PHP 错误

但是那里的答案似乎不适用于带有 PHP 7 的 Ubuntu 16.04。

/etc/php/7.0/fpm/pool.d/www.conf

catch_workers_output = yes
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
Run Code Online (Sandbox Code Playgroud)

/var/log/fpm-php.www.log存在并归www-data.

/etc/php/7.0/fpm/php.ini

log_errors = On
Run Code Online (Sandbox Code Playgroud)

Nginx 虚拟主机的服务器块

access_log /var/log/myapp/access.log;
error_log /var/log/myapp/error.log error;
Run Code Online (Sandbox Code Playgroud)

/var/log/myapp/access.log 存在并归www-data.

但是当发生错误时,我在任何指定的日志文件中都没有收到错误,并且在任何其他地方也找不到它。

我浏览了关于另一个问题的所有建议,但没有找到任何有效的答案。我假设自从这些答案发布以来,情况已经发生了变化。有什么建议?

nginx php-fpm php7 ubuntu-16.04

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

如何强行彻底清除PHP7 opcache?

我的网络服务器上的 opcache 一直达到我设置的限制,即使我觉得我没有那么多 PHP 代码,它真的应该有足够的空间。

更糟糕的是,即使在清除 opcache 时,它​​也会立即显示超过 2/3 的可用空间已被填充。

刚才的例子:

运行 opcache_reset() 之前的 phpinfo 片段:

Used memory     122958472
Free memory     5552 
Run Code Online (Sandbox Code Playgroud)

运行 opcache_reset() 后的 phpinfo 片段:

Used memory     90691312
Free memory     43526416
Run Code Online (Sandbox Code Playgroud)

我知道在 PHP7 中,opcache(显然)备份到磁盘,所以也许东西正在自动重新加载?但这似乎违背了重置 opcache 的目的,我不知道 opcache 备份到磁盘上的哪个位置,所以我无法检查。

我正在 nginx 上运行 PHP-FPM,准确地说是 vesion 7.0.15-0ubuntu0.16.04.4。

php php-fpm opcache php7

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

php5-fpm:用于在重启前检查配置的 bash 脚本

我编写了一个脚本来在 Nginx 上创建新的虚拟主机。该脚本创建 Ningx vhost 配置文件、vhost 用户和目录、php-fpm 池文件。

在脚本的末尾,我想在重新启动 php-fpm 之前检查配置是否正常。对于 Apache,我可以apachectl graceful,但是可以用 做类似的事情php5-fpm -t吗?

scripting php bash php-fpm

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

手动访问 PHP-FPM 的 /status 页面(绕过 Apache)

有一个PHP5.3.3 错误,它不允许我通过 Apache2 查看 php-fpm 的 /status 页面。有没有办法手动访问这些数据?我无法升级盒子(不支持 Ubuntu 10.10,php5.3.4)。

我试过使用这里的技术进行连接:http : //inode.co.nz/testing-a-fastcgi-service,但没有运气。

php-fpm fcgi

9
推荐指数
1
解决办法
8987
查看次数

pecl install mongo - 使用错误的模块 API 不断编译

在这里使用 Ubuntu 12.04、nginx 和 php5-fpm

我让 mongo 在 php 5.3 上运行良好,然后我添加了 ondrej/php5 ppa 并更新到 php5.4。它保留了 GD 和 CURL 扩展,但不保留 mongo。我将该行重新添加到 php.ini 文件中,但什么也没添加。然后我启用了启动错误并得到了这个:

PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mongo.so' - /usr/lib/php5/20100525/mongo.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

所以,疯狂的猜测,我做了find -name 'mongo.so'并将文件从 20090626/ 移动到 20100525/ ...这导致了这个错误:

PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match
Run Code Online (Sandbox Code Playgroud)

然后我做了pecl uninstall mongopecl install …

php5 pecl php-fpm mongodb

9
推荐指数
1
解决办法
8698
查看次数

如何找出我的 php5-fpm 无法启动的原因?

当我尝试访问我的服务器时,我收到 504 网关超时。

一个小的检查没有在 php5-fpm 日志上找到任何日志,但为了确保,我尝试重新启动它。

当我尝试重新启动它时:

sudo service php5-fpm restart
Run Code Online (Sandbox Code Playgroud)

我明白了[fail],但是当我这样做的时候

sudo service php5-fpm stop
sudo service php5-fpm start
Run Code Online (Sandbox Code Playgroud)

我没有错误。

如果没有日志,我该如何调查?我能做什么?

linux php php-fpm

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

Nginx + php-fpm - 运行时每个 php-fpm 进程 70-100% cpu

我有以下情况发生:

  • 我们使用 8 核、8GB 内存、2.6 GHz 的 linode - 使用 nginx + php-fpm - 我们得到了极高的 CPU 使用率图(我们不想成为如此糟糕的 VPS 邻居)...

  • 我们网站上一次只有不到 100 个用户——所以这种情况也非常尴尬——我们的 CPU 使用率非常高。

  • 我们正在使用一个非常未知的、可能是 CPU 密集型的 php-wise、可疑的可怕框架,而不是众所周知的、有据可查的、精心设计的其他框架,如 wordpress 或 drupal,其中有很多关于缓存(以及插件)的文档在 nginx + php_fpm 平台上处理缓存)php。

  • 因此,我们有大约 6 个开放的 php-fpm 进程在运行时单独消耗大量(30+,通常接近 99%)的 cpu - 我真的一点也不知道如何阻止它们使用这么多 cpu . 我不知道是哪些 php 脚本导致了这些峰值,因为它们一直在发生……通常只有 1 或 2 个正在运行 - 但是当所有 6 个脚本都运行时,我们最大化了所有 8 个 cpu。

  • 我的 pool.d/www.conf 文件具有以下设置:

    pm = dynamic
    pm.max_children = 10
    pm.start_servers = 4
    pm.min_spare_servers = 2
    pm.max_spare_servers = 6
    
    Run Code Online (Sandbox Code Playgroud)
  • 我们这样做 ^ …

vps nginx central-processing-unit cache php-fpm

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

PHP5-FPM 如何向 nginx 发送错误?

我一直在尝试在 php-fpm 和 nginx 中记录错误,因为我在网上找不到任何好的解释。大多数指南说如果我想将错误从 php5-fpm 发送回 nginx,我应该更改catch_workers_outputyes。但是,在我的实验中,我发现即使catch_workers_output设置为no,nginx 仍会正确记录错误。

这是我的虚拟主机配置:

server {                                                                                                                                                                                                                                 
        server_name     domain.com;
        return  301 http://www.domain.com$request_uri;
        access_log off;
}

server {
        listen 80;
        listen [::]:80;

        root /home/websites/domain.com;
        index index.php index.html index.htm;


        error_log /home/websites/logs/domain.com/error.log warn;
        access_log /home/websites/logs/domain.com/access.log;

        #switch on gzip
        gzip on;
        gzip_min_length  1100;
        gzip_buffers  10 32k;
        gzip_types    text/plain application/x-javascript text/xml text/css;
        gzip_vary on;


        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~* .(gif|jpg|jpeg|png|css|js|ico)$ {
                expires 30d;
                access_log off;
        }

        error_page …
Run Code Online (Sandbox Code Playgroud)

nginx php-fpm

9
推荐指数
1
解决办法
4198
查看次数

是否可以从 php-fpm 提供静态 html?

我有dockerised一个 wordpress 应用程序,现在我是一个纯粹主义者,不想包含nginx在 docker 容器中,也不想在nginx容器和php-fpm容器之间共享任何状态。

我想php-fpm作为一个独立的网络服务器(如 ruby​​ 中的 unicorn 或 python 中的 gunicorn)运行,为 wordpress 站点提供所有内容(html、css 和图像)。并nginx在它前面运行一个反向代理(缓存静态内容)。这样我就可以保持关注点的分离,并且我没有nginx将流量转发到nginx服务器。

的默认配置php-fpm只允许处理 php 文件。可以php-fpm更改的conf吗?如何?这是个好主意吗?

nginx wordpress php-fpm docker

9
推荐指数
1
解决办法
6416
查看次数

是否可以使用不同的池选项设置 PHP-FPM(启用 xdebug /禁用 xdebug)

我有一个 LEMP 环境,需要选择将所有开发子域与暂存区分开(使用 xdebug 暂存开发而不使用)。

  • dev.projectX.mydomain.tld
  • staging.projectX.mydomain.tld

因此我设置了两个池php-dev和php-stage,但似乎只能在php.ini中启用扩展!?

这是我的 pool.conf (dev)

[php-dev]
listen = 127.0.0.1:9101
listen = /var/run/php-fpm/a1-php-dev.socket
listen.backlog = -1
listen.allowed_clients = 127.0.0.1

user = nginx
group = nginx

request_slowlog_timeout = 3s
slowlog = /var/log/php-fpm/slowlog-php-dev.log

pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 4
pm.max_spare_servers = 16
pm.max_requests = 500
pm.status_path = /status

request_terminate_timeout = 120s
rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes

env[HOSTNAME] = $HOSTNAME
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = …
Run Code Online (Sandbox Code Playgroud)

php-fpm xdebug pool

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