标签: php-fpm

Symfony2 应用程序位于 nginx 子目录中

我正在尝试在我们服务器的子目录中设置 symfony2 应用程序

网络服务器:nginx 1.1.6 + php fpm 操作系统:gentoo

我的目标是让应用程序从子目录运行

subdomain.xy.domain.tld/工具

我的 nginx 配置看起来像这样

server  {

    listen          80;
    server_name     subdomain.xy.domain.tld;

    error_log       /var/log/nginx/subdomain.xy.error.log info;
    access_log      /var/log/nginx/subdomain.xy.access.log main;


    location /tool {

        root /var/www/vhosts/subdomain.xy/tool/web;

        index app.php;

        location ~ \.php($|/) {
            include fastcgi_params;

            set $script $uri;
            set $path_info "";

            if ($uri ~ "^(.+\.php)($|/)") {
                set $script $1;
            }

            if ($uri ~ "^(.+\.php)(/.+)") {
                set $script $1;
                set $path_info $2;
            }

            fastcgi_param SCRIPT_FILENAME /var/www/vhosts/subdomain.xy/tool/web$fastcgi_script_name;
            #fastcgi_intercept_errors on;
            fastcgi_pass 127.0.0.1:9000;

            fastcgi_param SCRIPT_NAME $script;
            fastcgi_param PATH_INFO $path_info;
        } …
Run Code Online (Sandbox Code Playgroud)

php nginx gentoo php-fpm symfony

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

nginx 和 HTTP Referer

我将 nginx 与 php5-fpm 以及以下fastcgi_params文件一起使用:

fastcgi_param   CONTENT_LENGTH      $content_length;
fastcgi_param   CONTENT_TYPE        $content_type;
fastcgi_param   DOCUMENT_ROOT       $document_root;
fastcgi_param   DOCUMENT_URI        $document_uri;
fastcgi_param   GATEWAY_INTERFACE   CGI/1.1;
fastcgi_param   HTTPS               $https;
fastcgi_param   PATH_INFO           $fastcgi_path_info;
fastcgi_param   PATH_TRANSLATED     $document_root$fastcgi_path_info;
fastcgi_param   QUERY_STRING        $query_string;
fastcgi_param   REDIRECT_STATUS     200;
fastcgi_param   REMOTE_ADDR         $remote_addr;
fastcgi_param   REMOTE_PORT         $remote_port;
fastcgi_param   REQUEST_METHOD      $request_method;
fastcgi_param   REQUEST_URI         $request_uri;
fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
fastcgi_param   SCRIPT_NAME         $fastcgi_script_name;
fastcgi_param   SERVER_ADDR         $server_addr;
fastcgi_param   SERVER_NAME         $server_name;
fastcgi_param   SERVER_PORT         $server_port;
fastcgi_param   SERVER_PROTOCOL     $server_protocol;
fastcgi_param   SERVER_SOFTWARE     nginx/$nginx_version;
Run Code Online (Sandbox Code Playgroud)

我注意到该$_SERVER['HTTP_REFERER']变量未设置。我在 nginx wiki 中搜索了任何对 Referer 标头的引用,但找不到任何提及与 fastcgi 相关的问题的内容。 …

php nginx http-headers php-fpm

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

Nginx上可以记录PHP脚本的执行时间吗

我有一些问题,我们的客户报告我们的一些网页速度很慢。这可能有多种原因,但我想专门记录每个页面的执行时间,而不必在每个 PHP 脚本的页眉和页脚中添加某些内容。有哪些选择?(如果有影响的话,我们正在运行 Nginx Web 服务器和 PHP-FPM)

nginx php-fpm

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

安装 httpd24、php56 和 php70,因为 SCL 无法正常工作,出现错误“找不到文件”

让我们开始说我已经在 Remi 博客上阅读了这个这个这个,因为它与这些存储库相关的问题。博客条目根本没有帮助我,或者我在这里遗漏了一些东西,但我不确定是什么。我将在下面公开我遵循的步骤,让我们看看我做错了什么。我计划将 PHP 5.6.x 和 PHP 7.0 安装为 SCL(因为我需要在两者上测试一些应用程序,并且由于某些 Wordpress 开发,我需要保持 PHP 5.6.x 支持)并且我将通过 SetHandler 使用 Apache 2.4.x所以下面是步骤:

  1. 安装软件集合工具:

    yum install scl-utils
    
    Run Code Online (Sandbox Code Playgroud)
  2. 为您的系统下载带有存储库的软件包(在本例中为 httpd24)

    wget http://www.softwarecollections.org/en/scls/rhscl/httpd24/epel-6-x86_64/download/rhscl-httpd24-epel-6-x86_64.noarch.rpm
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装 repo 包:

    yum install rhscl-httpd24-epel-6-x86_64.noarch.rpm
    
    Run Code Online (Sandbox Code Playgroud)
  4. 安装集合:

    yum install httpd24
    
    Run Code Online (Sandbox Code Playgroud)
  5. 开始使用软件集合:

    scl enable httpd24 bash
    
    Run Code Online (Sandbox Code Playgroud)
  6. 启动 httpd24 服务(默认选项)

    service httpd24-httpd start
    
    Run Code Online (Sandbox Code Playgroud)
  7. 将 PHP56 安装为 SCL:

    yum install php56 php56-php-common php56-php-cli php56-php-fpm php56-php-gd php56-php-intl php56-php-mbstring php56-php-mcrypt php56-php-opcache php56-php-pdo php56-php-pear php56-php-pecl-apcu php56-php-imagick php56-php-pecl-xdebug php56-php-pgsql php56-php-xml php56-php-mysqlnd php56-php-pecl-jsonc php56-php-pecl-zip php56-php-process …
    Run Code Online (Sandbox Code Playgroud)

php php-fpm centos6 apache-2.4 scl

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

会话文件每 2 秒创建一次。在 openshift Laravel PHP nginx haproxy 上运行

服务器启动时访问服务器的原因是什么?

我已经rhc tail在我的应用程序上运行以监控新日志。

这是我的日志 http://laravel.io/bin/Dez4o


当我开始使用应用程序时 rhc app-start

app-root/logs/php-fpm-error.log

[26-Jul-2016 21:53:00] NOTICE: [pool www] 'user' directive is ignored     
when FPM is not running as root
[26-Jul-2016 21:53:00] NOTICE: [pool www] 'group' directive is ignored
when FPM is not running as root
[26-Jul-2016 21:53:00] NOTICE: fpm is running, pid 33590
[26-Jul-2016 21:53:00] NOTICE: ready to handle connections
Run Code Online (Sandbox Code Playgroud)

app-root/logs/haproxy.log

[WARNING] 207/215259 (33493) : config : log format ignored for proxy 'stats' since it has no log address.
[WARNING] 207/215259 (33493) …
Run Code Online (Sandbox Code Playgroud)

php nginx haproxy php-fpm openshift-online-2

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

authz_core 不断拒绝访问

我已经根据本教程( https://wiki.apache.org/httpd/PHP-FPM )或多或少配置了一个网络服务器,但我无法让 PHP 工作。HTML 文件可以正常使用。我收到以下错误消息:

mod_authz_core.c(802): [client <myip>:36570] AH01626: authorization result of Require all denied: denied
mod_authz_core.c(802): [client <myip>:36570] AH01626: authorization result of <RequireAny>: denied
127.0.0.1 [client <myip>:36570] AH01630: client denied by server configuration: proxy:fcgi://127.0.0.1:9000/var/www/html/test.php
Run Code Online (Sandbox Code Playgroud)

这是我的 PHP 文件:

www@<server>:/var/www/html$ ls -l
-rw-rw----  1 www www-data    26 Sep  6 09:14 test.php
Run Code Online (Sandbox Code Playgroud)

如您所见,该文件属于“www”。网络服务器和“php-fpm”作为“www-data”运行。

这是“apache.conf”的基本配置:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all …
Run Code Online (Sandbox Code Playgroud)

php-fpm apache-2.4 mod-proxy-fcgi

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

检查单个 PHP-FPM 进程的平均内存使用情况

我尝试了以下命令来检查单个 PHP-FPM 进程的平均内存使用情况

ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'
Run Code Online (Sandbox Code Playgroud)

我有一个错误 awk: cmd. line:1: fatal: division by zero attempted

而这个命令

total=0; for i in `ps -C php-fpm -o rss=`; do total=$(($total+$i)); done; echo "Memory usage: $total kb";
Memory usage: 0 kb

ps -ef | grep php
root       9435      1  0 11:42 ?        00:00:00 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
somename+   9438   9435  0 11:42 ?        00:00:00 php-fpm: pool somename-1
somename+   9439   9435 …
Run Code Online (Sandbox Code Playgroud)

linux php-fpm php7

2
推荐指数
2
解决办法
9126
查看次数

Docker - PHP 7.2 FPM Alpine - Imagick

我使用 Docker 镜像php:7.2-fpm-alpine作为基础镜像,使用以下命令安装 Imagick:

RUN apk add --update --no-cache autoconf g++ imagemagick-dev libtool make pcre-dev \
    && pecl install imagick \
    && docker-php-ext-enable imagick \
    && apk del autoconf g++ libtool make pcre-dev
Run Code Online (Sandbox Code Playgroud)

构建一切顺利,我有带有 Imagick 的 php7.2,但由于以下错误而无法使用:

UnableToOpenConfigureFile `coder.xml' @ warning/configure.c/GetConfigureOptions/714
Run Code Online (Sandbox Code Playgroud)

我试图解决这个问题两个小时。我尝试添加 XML 库但没有任何运气。有任何想法吗?

php-fpm imagemagick docker php7 docker-compose

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

PHP-FPM + nginx 产生的权限被拒绝,但仅限于某些大页面

我有一个 AWS Lightsail 实例(1GB RAM 实例)运行一个相对较新的网站(即几乎没有流量)。它正在运行 nginx 和 PHP-FPM 7.3(也尝试过 7.2)和 MariaDB。所有这些都在 CentOS 7 下。

在 AWS 免费套餐下一切正常。我运行了一个 T2.micro EC2 实例和一个 T2.micro RDS 实例。Lightsail 有点……更敏感。为了使 Lightsail 正常工作,我将 PHP-FPM 切换为ondemand

ondemand - 启动时不创建子项。当新请求连接时,子节点将被分叉。

我必须这样做,否则 MariaDB 会随机崩溃。这似乎不会影响下面的问题。

Wordpress 管理面板停止正常工作,每个人都说要CONCATENATE_SCRIPTS关闭。这有效......主要是。帖子和模板的编辑器出现故障。没有人能够给我一个线索为什么。环顾四周,我自己发现了一些东西。

不工作的页面没有完全加载。随着CONCATENATE_SCRIPTS上,CSS文件被加载在一个巨大的页面。因为这无法完全渲染,所以浏览器会忽略 CSS 和 JS 文件。CONCATENATE_SCRIPTS通过简单地将它们拆分为更小且易于加载的组件文件来解决这个问题。但是编辑页面无法拆分,调试底层问题一直让人抓狂。我收到 200 响应和一些数据

页面返回 200

但是页面绘制不完整。我想说也许 80-90% 的 HTML 都在那里,但被切断了。在从这里开始的部分(JS 块)

wp.apiFetch.use( wp.apiFetch.createPreloadingMiddleware( {"\/":{"body":{"name":"S
Run Code Online (Sandbox Code Playgroud)

它只是突然结束,而且每次都在同一点。就好像 PHP-FPM 或 nginx 刚刚停止,但没有任何错误日志(关于这种类型的设置的大多数其他问题都是针对根本没有绘制的页面)。更奇怪的是,它不是在较小的页面上这样做,而是在非常长的页面上这样做。没有偷窃时间,top并且实例似乎没有承受任何严重的负载,所以我不确定它为什么会这样做。我重新加载了所有文件,甚至建立了一个单独的 WP 站点来测试这个,他们都这样做了。

根据评论,我打开了 nginx 调试日志记录并发现

2019/08/07 02:33:08 [crit] 1461#0: *47 open() "/var/lib/nginx/tmp/fastcgi/3/00/0000000003" failed …
Run Code Online (Sandbox Code Playgroud)

php nginx wordpress php-fpm amazon-lightsail

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

不考虑 listen.owner 和 listen.group

我正在尝试更改 PHP-FPM 套接字文件的所有者/组。

我的www.conf包含:

[www]

...

listen = /run/php-fpm/www.sock
listen.owner = ben
listen.group = ben
listen.mode = 0660
Run Code Online (Sandbox Code Playgroud)

重新启动 php-fpm 后,www.sock仍然归root:root.

如果我更改套接字文件位置或listen.mode,套接字文件会相应更改。然而,listen.ownerlisten.group似乎是公然无视。

这是为什么?

php-fpm

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