Articles of php fpm

Drupal 8 Nginx错误没有这样的文件或目录的任何路线

我在Nginx + PHP7 + PHP 7 FPM的Docker上运行Drupal 8.1.2,并且链接到另一个基于Alpine Linux的PostgreSQL Docker镜像。 在成功运行Drupal安装(在core / install.phpurl)并设置网站名称,pipe理员名称和其他细节之后,它在我点击提交button后立即抛出404。 我只能访问/update.phpurl。 错误日志 : 2016/06/17 16:32:49 [error] 11#0: *80 open() "/usr/share/nginx/html/404.html" failed (2: No such file or directory), client: 172.17.0.1, server: _, request: "GET /favicon.ico HTTP/1.1", host: "localhost" 2016/06/18 11:47:32 [error] 13#0: *40 open() "/var/www/html/user/1" failed (2: No such file or directory), client: […]

Ubuntu 16.04,PHP-FPM在使用libsodium-php模块启动时超时

问题(修改:用REPRO步骤!) 重新制作一个新的VPS与Ubuntu 16.04(可能适用于任何Debian发行版,但没有testing),并按照这些指示: 通过实验,我将指令简化为绝对最低限度的重现 apt-get install php7.0 php7.0-dev php-pear apt-get install libsodium-dev pecl install libsodium echo "extension=libsodium.so" >> /etc/php/7.0/fpm/php.ini shutdown -r 0 当我重新启动服务器( shutdown -r 0 )PHP-FPM死了(通过service php7.0-fpm status确认) 如果我运行service php7.0-fpm start ,它启动毫秒service php7.0-fpm start 。 我在libsodium-php跟踪器上创build了一个问题,希望有人能find解决方法: https : //github.com/jedisct1/libsodium-php/issues/94 问题 现在我已经缩小了这个问题,我真正想要的是: 一个方法来弄清楚为什么它是超时(是否有一个好的方法来configuration什么资源被访问或什么是启动时间过程?) 一种方法来解决它(有没有办法改变引导顺序,以便libsodium引导最后,以防万一它的依赖性问题?) 新的更新 我一直在研究这个,并发现所有的PHP在libsodium库的初始化过程中都会停顿(对sodium_init()的调用)。 这个调用大概需要3-4分钟才能完成,直到这个时间过去了,甚至一个调用php -v失败。 作为解决方法,我已经将以下内容添加到/lib/systemd/system/php7.0-fpm.service : TimeoutStartSec=600 这会导致我的Web服务器在重新启动后返回HTTP状态码502几分钟,但最终会再次开始工作(比手动login和修复更好) 我将尝试与libsodium和libsodium-php的开发人员联系,以find更好的解决scheme,但现在我相信我已经解决了这个问题: 解决scheme 当启动时没有运行某个东西时,开始使用journalctl […]

在Apache中相当于Nginx的位置块(用于传递到不同的php-fpm版本)

我需要让PHP 5和7同时工作,因为需要使用两个仅针对版本5和7的PHP扩展。 我已经与Nginx合作了,通过将PHP 5扩展调用的页面命名为page.php5,并具有如下的位置块: location ~ \.php5$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } 工作正常。 但是如何用Apache做同样的事? 我已经读过有不同的虚拟主机,一个使用PHP模块,一个使用fast-cgi,但理想情况下,我宁愿有更接近上述定位方法的东西,只有一个主机。 可以这样做吗? 谢谢。

为什么php5-fpm只有在多个wordpress网站处于活动状态时才能执行?

我正在使用一个LEMP堆栈,单独的php5-fpm池用于两个wp页面。 nginx和php5-fpm池configuration文件都是相同的,除了站点和套接字名称。 我做静态池,每个人有两个工人。 观察到的现象如下: 如果我只有一个站点活动,加载<< 1s响应是非常快的。 如果我有两个站点处于活动状态,则第一个站点响应会变为1秒,而第二个站点响应会超过504秒。 如果我不为不同的网站使用不同的游泳池,那么这两个网站的响应速度都会下降到2-10秒。 减速只发生在PHP请求上,静态文件请求不受影响。 当我尝试LAMP堆栈时发生类似的现象。 这里怎么了? 问题在哪里? 我怎么能跟踪这一个? 我无法弄清楚什么logging/debugging/统计选项我有… 🙁 编辑: 这是发展阶段,网站stream量很低,所以这个问题不能说是我用完了。 我有一个请求进来

Nginx / postgres不使用所有内核

我有一个Nginx + Postgres服务器与8个CPU核心。 我注意到,在负载下CPU只能使用高达〜60%。 我看着top ,这里是一个截图: 事实certificate,只有5个进程实际上并行运行。 什么可能导致这个封盖? 我看着postgresconfiguration。 我没有注意到任何设置都会封锁它,设置并不是真正的限制,例如: max_connections = 100 然后我检查了Nginxconfiguration。 这些设置似乎相关(但在这种情况下,似乎并没有限制): worker_processes auto; worker_connections 768; 在PHP的设置,我看着这个设置,似乎是可疑的: pm.max_children pm设置为dynamic 。 这可能是限制因素(我不能盲目testing各种设置更改,并重新启动此服务器进行试验)? 如果是这样,我应该如何select价值? 设置它等于核心数量还是更多?

如何在自动调节PHP集群上刷新PHP-FPM OpCache?

在目前的单片LAMP服务器上,我们通过Capistrano进行部署,并在部署结束时重新加载PHP-FPM,以刷新操作码caching。 现在,我们正在AWS上为PHP 7.0和PHP 5.5应用程序构build一个新的webhosting集群。 具有PHP-FPM的应用程序服务器将水平自动调整。 PHP代码将存储在Amazon S3上的NFS服务器和静态资产上。 当我没有一个固定的主机列表时,如何在部署完成后刷新所有的OpCache?

Nginx下载“*。php”而不是在Docker环境中显示它的内容

我正在运行PHP71 + Nginx的新Docker环境中工作。 Dockerfileinheritance自million12 / docker –nginx 。 这是/etc/nginx/hosts.d/vhost.conf (我从这里取的 )的内容: server { listen 80 default_server; listen 81 default_server http2 proxy_protocol; ## Needed when behind HAProxy with SSL termination + HTTP/2 support listen 443 default_server ssl http2; ssl_certificate /etc/nginx/ssl/dummy.crt; ssl_certificate_key /etc/nginx/ssl/dummy.key; root /data/www; index index.php index.html index.htm; location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; […]

NGINX + PHP-FPM:是否有可能关联php-fpm PID来访问日志条目?

我们一直在使用NGINX和php-fpm。 我们已经注意到一些请求通过最高命令挂了很长时间(10+,20+分钟…)。 此外,在访问日志条目(NGINX)中检测到一些可疑请求(我的意思是机器人),但是我不确定这些可疑请求是否与这些请求挂起或不存在有关。 所以我的主要问题是: 是否有可能(通过configuration或其他)将php-fpm PID关联到访问日志中的URL条目? 还是有什么工具可以帮助我完成这个任务? 附加信息: 我们有源代码,因为我们是主要的开发者。 提前致谢!

在Ubuntu上启用php-fpm中的Bzip2

我如何在Ubuntu 16.04上启用php7.1-fpm中的bzopen函数? 我使用的是来自ppa:ondrej / php的软件包。

第一次用PHPconfigurationNGINX,弄不清要修改哪个服务器块

我正在构buildLEMP堆栈服务器和本地开发环境,主要是遵循Linode和DigitalOcean提供的教程。 我已经安装了所有不同的组件,但是我对configurationNGINX来处理PHP有点困惑。 这些教程描述了编辑在sites-available/defaultfind的server {}块。 事情是,我的默认configuration文件有两个服务器块,我不知道我应该编辑哪一个。 第一个包含: server { listen 80 default_server; listen [::]:80 default_server; # SSL configuration # # listen 443 ssl default_server; # listen [::]:443 ssl default_server; # # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 # # Read up on ssl_ciphers to ensure a secure configuration. # See: https://bugs.debian.org/765782 […]