标签: php-fpm

Nginx/PHP-FPM 长日志行被截断

我不确定这是 Nginx 或 PHP-FPM 设置,但长日志行被截断。是否有增加最大日志行长度的设置?

php nginx fastcgi php-fpm fcgi

11
推荐指数
3
解决办法
9820
查看次数

如何通过 NGINX 配置 PHP-FPM 以写入每个虚拟主机的日志文件

我有带有 Nginx 和 PHP-FPM 的 Fedora 16。一切都很好。所有带有 PHP 通知、警告、错误等的日志都在/var/log/php-fpm/www-error.log.

有没有办法配置 PHP-FPM 在配置为 Nginx 错误日志的正确日志文件中写入错误?所以我想记录每个虚拟主机的PHP 错误而不是在一个全局文件中。(就像在 Apache Httpd 和 PHP 中一样)。

linux nginx logging php-fpm

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

配置userdir时nginx fastcgi“主脚本未知”

我讨厌配置 nginx。这太复杂了。如何让 PHP 在我的用户目录中工作?这是我的 nginx.conf 的相关部分:

    location ~ ^/~(.+?)(/.*)?$ {
        autoindex on;
        autoindex_exact_size off;
        alias /home/$1/public_html$2;

        location ~ \.php {
            include /etc/nginx/fastcgi.conf;
            fastcgi_intercept_errors on;
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这给了我错误:FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream在 nginx 错误日志中。

这是我的/etc/nginx/fastcgi.conf

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol; …
Run Code Online (Sandbox Code Playgroud)

nginx fastcgi php-fpm

11
推荐指数
3
解决办法
5万
查看次数

如何将自定义参数从 Nginx 传递给 PHP?

我正在与passNginx 1.2.4结合使用并尝试将自定义参数传递给. 以下是我目前找到的选项:PHP-FPM 5.4.8fastcgiPHP

  • 使用env指令设置环境变量 innginx并使用getenv()$_ENVfrom获取它PHP。问题是env只在main上下文中操作,而我需要在上下文中设置参数server

  • 使用fastcgi_param专为此设计的指令。

我曾尝试使用更改某些参数的值fastcgi_param但未成功:

nginx:

fastcgi_param PATH_INFO "/var/tmp";
Run Code Online (Sandbox Code Playgroud)

PHP:

我检查了我能找到的所有预定义数组:

echo '<pre>';
echo "\n".'$GLOBALS'."\n"; var_dump($GLOBALS);
echo "\n".'$_SERVER'."\n"; var_dump($_SERVER);
echo "\n".'$_GET'."\n"; var_dump($_GET);
echo "\n".'$_POST'."\n"; var_dump($_POST);
echo "\n".'$_FILES'."\n"; var_dump($_FILES);
echo "\n".'$_REQUEST'."\n"; var_dump($_REQUEST);
echo "\n".'$_SESSION'."\n"; var_dump($_SESSION);
echo "\n".'$_ENV'."\n"; var_dump($_ENV);
echo "\n".'$_COOKIE'."\n"; var_dump($_COOKIE);
echo "\n".'$php_errormsg'."\n"; var_dump($php_errormsg);
echo "\n".'$HTTP_RAW_POST_DATA'."\n"; var_dump($HTTP_RAW_POST_DATA);
echo "\n".'$http_response_header'."\n"; var_dump($http_response_header); …
Run Code Online (Sandbox Code Playgroud)

php nginx fastcgi php-fpm

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

各种虚拟主机的不同 php.ini 设置(php-fpm)

我在 serverFault 上搜索了 allot 并找到了这个解决方案......

将其包含在虚拟主机中应该可以工作:

  php_admin_flag register_argc_argv = On
  php_value max_execution_time = 1000
  php_value session.gc_maxlifetime = 15000
  php_admin_flag magic_quotes_gpc = on
Run Code Online (Sandbox Code Playgroud)

但比它让我明白,我根本没有使用 mod_php。我已经安装了 php-fpm。如果我的方法有效,或者是否有其他方法,我真的找不到任何信息......

那么,如果我有 php-fpm 并且想要为虚拟主机设置不同的设置,我该怎么办?

S。

php-fpm apache-2.2

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

域重定向到 nginx 中的错误站点,配置文件中的多个站点

我在 nginx 上设置了 2 个网站,应该根据访问的域加载正确的网站。

例如: website1.com website2.com

但是,在访问这两个域中的任何一个时,它们都会加载 website1.com。

我的配置有什么问题?两个配置都在启用站点的单独文件中

website1.com 配置

server {
    listen 80;
    listen [::]:80 ipv6only=on;

    root /var/www/website1.com;
    index index.php index.html index.htm;

    # Make site accessible from http://localhost/
    server_name website1.com;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ /index.php?$query_string;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
    }

    location ~ \.php$ {
        try_files $uri /index.php =404; …
Run Code Online (Sandbox Code Playgroud)

nginx virtualhost php-fpm

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

网络服务器随机服务于不同的虚拟主机

我们已经在 Ubuntu Trusty 上运行了 nginx。它通过 https 为多个网站提供服务,运行在一个 IP 地址上。

随机地,虽然它似乎与工作负载略有关系,但有时单个请求会出现在错误的虚拟主机上。这导致请求lustrum.thalia.nu被服务,thalia.nu反之亦然。当用户突然进入不同的网站时,这会产生令人讨厌的错误页面。当您按下 时F5,用户将再次到达原始目标。

它似乎与浏览器或操作系统无关。已确认在 Firefox(Linux、Windows、Mac)、Edge(Windows)和 Chrome(Linux、Windows、Android)和 Safari(iOS)上发生。

当系统处于负载状态时,该问题似乎更频繁地发生,这表明存在某种竞争条件。

lustrum.thalia.nu

server {
        server_name lustrum.thalia.nu;

        listen 443 ssl;

        ssl on;
        ssl_certificate /etc/nginx/certs/lustrum.thalia.nu.crt;
        ssl_certificate_key /etc/nginx/certs/lustrum.thalia.nu.key;

        add_header Strict-Transport-Security "max-age=63072000; preload";

        root /var/www/thalia-lustrum/public_html;

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

        # Add trailing slash to */wp-admin requests.
        rewrite /wp-admin$ $scheme://$host$uri/ permanent;

        # Pass all .php files onto a php-fpm/php-fcgi server.
        location ~ [^/]\.php(/|$) {
                include         /etc/nginx/fastcgi_params;

                fastcgi_split_path_info ^(.+?\.php)(/.*)$; …
Run Code Online (Sandbox Code Playgroud)

ssl nginx virtualhost php-fpm tls

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

使用 docker + nginx + php-fpm 提供静态内容

我正在尝试使用 docker 配置一个 php webapp。这个想法是php-fpm在一个独立的容器中运行应用程序,并有另一个运行 nginx 的容器。此设置的想法是使用相同的 nginx 容器将请求代理到已经在同一台机器上工作的其他 web 应用程序。问题是我无法nginx正确处理静态文件(js、css 等),因为对这些文件的请求一直转到fpm.

这是文件系统的样子:

/
??? Makefile
??? config
?   ??? webapp.config
??? webapp
    ??? web
        ??? index.php
        ??? static.js
Run Code Online (Sandbox Code Playgroud)

我正在使用Makefile看起来像这样的(对此不感兴趣docker-compose)运行整个事情:

PWD:=$(shell pwd)
CONFIG:='/config'
WEBAPP:='/webapp'

run: | run-network run-webapp run-nginx

run-network:
    docker network create internal-net

run-webapp:
    docker run --rm \
    --name=webapp \
    --net=internal-net \
    --volume=$(PWD)$(WEBAPP):/var/www/webapp:ro \
    -p 9000:9000 \
    php:5.6.22-fpm-alpine

run-nginx:
    docker run --rm \
    --name=nginx \
    --net=internal-net \
    --volume=$(PWD)$(CONFIG)/webapp.conf:/etc/nginx/conf.d/webapp.domain.com.conf:ro \ …
Run Code Online (Sandbox Code Playgroud)

nginx static-content php-fpm docker

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

使用 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万
查看次数