Articles of PHP的

nginx php5-fpm失败(2:没有这样的文件或目录)

问题:我错过了什么或错在哪里? 我正在尝试将function齐全的Zend Framework应用程序从mod_php5的Apache2迁移到php5-fpm的nginx。 我得到这样的错误: 2012/06/27 12:08:04 [error] 1986#0: *1 open() "/var/www/public/sales/live-trials-json" failed (2: No such file or directory), client: *.*.*.*, server: www.mydomain.com, request: "POST /sales/live-trials-json HTTP/1.1", host: "www.mydomain.com", referrer: "https://www.mydomain.com/sales/live-trials" 这是我的configuration文件: a)/ etc / nginx / sites-enabled / www server { listen 80; listen 443 default ssl; server_name www.mydomain.com; root /var/www/public; ssl_certificate /etc/nginx/ssl/mydomain.crt; ssl_certificate_key /etc/nginx/ssl/mydomain.key; […]

推送到负载均衡器上的多个EC2实例

我试图找出一个很好的方法来推出一个新的提交到ELB(负载平衡器)后面的一组EC2服务器实例。 每个实例都运行Nginx和PHP-FPM 我想执行以下工作stream程,但是我不确定是否推出新版本到负载均衡器后面的所有实例的好方法。 开发是在本地机器上完成的 一旦更改准备就绪,我执行“git push origin master”将更改推送到BitBucket(我托pipe所有git仓库) 在推到bitbucket之后,我想将新版本同时推送到所有的EC2实例。 我想这样做,而不必SSH到每个实例(显然)。 有没有办法configuration远程服务器接受远程推送? 有一个更好的方法吗?

这些额外的HTTP标头来自哪里?

当我简单地回应一些PHP文件,我不会故意发送任何头文件,但是 – 当我看到萤火虫响应时,有一些默认头文件存在: 响应标题: HTTP / 1.1 200 OK 服务器:nginx date:2011年6月23日星期四19:33:51 GMT 内容types:文本/ HTML 传输编码:分块 连接:保持活力 变化:接受编码 X-Powered-By:PHP / 5.3.6-6〜dotdeb.1 有效期至:1981年11月19日星期四08:52:00 GMT caching控制:无存储,无caching,必须重新validation,后检查= 0,预检查= 0 Pragma:no-cache 内容编码:gzip 我很好奇 – 是由服务器(nginx)或PHP设置的这些默认响应头?

Apache和Nginx的80端口

我正在尝试在当前已安装并运行Apache httpd的Cent OS服务器上安装Nginx。 我的托pipe公司告诉我,Nginx和Apache可以同时运行在80端口上,所以我的计划是通过Yum安装后,将Wordpress网站的.htaccess和Apache conf转换成Nginx。 我也对此进行了Googlesearch,有人build议使用Nginx作为反向代理,只提供静态文件,但是使用PHP运行Apache,因为Apacheembedded了PHP,即使它不支持多个并发请求(如Nginx),也会消耗更less的内存。 我的直觉是,将所有内容切换到Nginx将是有益的,但在这个阶段是不确定的。 另外,在做这个切换时,有什么要注意的吗? 如果是这种情况,你会怎么做?

NGINX / PHP下载而不是执行

我有一个运行fastcgi / PHP的NGINX服务器。 我需要添加userdirs,但我不能让PHP来执行文件 – 它只是问我是否要下载它。 它没有userdir工作(例如,它在physibots.info/hugs.php,而不是physibots.info/~kisses/hugs.php)。 configuration: server { listen 80; server_name physibots.info; access_log /home/virtual/physibots.info/logs/access.log; root /home/virtual/physibots.info/public_html; location ~ ^/~(.+?)(/.*)?\.php$ { fastcgi_param SCRIPT_FILENAME /home/$1/public_html$fastcgi_script_name; fastcgi_pass unix:/tmp/php.socket; } location ~ ^/~(.+?)(/.*)?$ { alias /home/$1/public_html$2; autoindex on; } location ~ \.php$ { try_files $uri /error.html/$uri?null; fastcgi_pass unix:/tmp/php.socket; } }

NGINX服务于我的PHP文件,而不是执行它们

我发现了很多和我有同样问题的人,但我找不到合适的解决scheme。 我通过stream浪汉和宅基地运行NGINX服务器。 在生产结束我使用Apache,因此我有一个htaccess: RewriteEngine On RewriteCond %{REQUEST_URI} !(^cms-system/public|^assets) RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ cms-system/public/$1 [L] 我使用这个htaccess重写所有的url(cms-system / public和assets除外)到我的index.php里面,这个在cms-system / public里。 我试图用这个工具将这个htaccess转换成nginxconfiguration: https : //winginx.com/en/htaccess哪个不能很好地工作..我做了一些调整。 exception规则的工作,但是我不能得到重写index.php工作。 有人可以帮我吗? server { listen 80; listen 443 ssl http2; server_name company.dev; root "/home/vagrant/company/"; index index.html index.htm index.php; charset utf-8; location ~ ^/cms-system/public/(.*) { } location ~ ^/assets/(.*) […]

PHP处理速度apache 2.4 mpm-prefork mod_php 5.4 vs nginx 1.2.x PHP-FPM 5.4

我一直在寻找几天,看看有人做了一个很好的,logging在案,PHP处理速度之间的比较 apache-mpm-prefork 2.4与mod_php 5.4 和 nginx 1.2.x + PHP-FPM 5.4 为什么我在寻找:我看到的唯一的testing是基准testing,服务整个页面或Hello,类似世界的testing,没有正确的文档testing什么。 我不关心请求/秒,硬件,但我确实需要看看什么PHP脚本进行了testing,以及确切的configuration。 为什么这两个: mod_php被认为是最快的处理PHP(没有静态文件,没有请求/响应测量,只处理PHP本身),但自那时以来,很多已经改变,包括Apache版本。 Nginx和PHP-FPM的内存消耗less得多,所以它会是改变架构的一个很好的理由,但是如果在这种情况下速度不够快,那么这种改变将是无关紧要的。 我知道如果我无法find一个我必须自己做,但我不能相信没有人做过这样的testing迄今为止:)

php-fpm进程监视/分析

我最近遇到了一个php-fpm进程的使用问题(如活动进程的数量),以达到最大可用进程的高峰,并停止执行其他脚本,直到有问题的进程结束。 再详细一点,我目前的php-fpm设置是: pm = static pm.max_children = 100 我正在看php-fpm的状态页面,大部分时间显示: total processes: 100 idle processes: 95-99 active processes: 1-5 这是正常的。 但是,几分钟内,活动进程计数会跳到100几秒钟,然后回到1-5的正常状态。 在那个时候,在服务器上运行的所有其他脚本都停留了那段时间。 (从浏览器中,你只需看到等待的页面)。 现在,我已经检查了是否在特定的stream量高峰,但不是。 它也可以发生在当天最低的stream量。 我相信某个脚本,甚至可能只是在特定的情况下,导致PHP仅仅因为某种原因使用所有可用的过程。 一旦我们从5.2.X移动到PHP 5.4.X,就开始了这个问题 我们目前有大约60个网站,所以它很难通过每个网站的网页,并检查它。 在nginx日志中没有任何东西(无论如何,有一些Notices等)。 我想要做的是以某种方式跟踪/configuration文件/监视哪些php-fpm脚本正在使用的过程,所以我会知道从哪里开始寻找问题。 这可能吗? 也许有不同的方法? 更新 以下是1小时内以1分钟间隔计算的PHP-FPM过程的图表: 我用红色标出了我正在谈论的跳跃。 秒杀时的内存使用率保持不变

FastCgi与使用Nginx Web服务器的PHP-FPM

我正在使用本教程在我的新Web服务器上安装nginx,php和mysql。 本教程使用的是ISPConfig 3,可以select使用FastCgi还是PHP-FPM。 我想知道哪个更好。 在性能和速度方面,哪两个最适合与nginx一起使用? 顺便说一句,我也有memcached和xcache在我的服务器上启用。

Nginx / PHP的FPM优雅停止(SIGQUIT):不那么优雅

运行nginx 1.9。* / PHP 7.0。*(但在5.6。*中也完全一样) 试图在维护期间正常停止节点closures的PHP-FPM / nginx组合。 为此,我将SIGQUIT发送到php-fpm,它应该提供正常关机。 为了testing这个,我做了一个愚蠢的脚本 <?php sleep(5); echo 'done'; 以下面的curltesting本地 curl -I xxxx:8080 通常会产生输出: HTTP/1.1 200 OK Server: nginx Date: Tue, 12 Apr 2016 04:48:00 GMT Content-Type: text/html; charset=UTF-8 Connection: close 期望的:在任何正在进行的请求中,当请求正常关机时,当前请求应该完成,但是任何额外的请求应该失败。 不幸的是,当我尝试触发这种行为时,通过向PHP-FPM主进程发送SIGQUIT( http://manpages.ubuntu.com/manpages/precise/man8/php5-fpm.8.html ): kill -s SIGQUIT $FPMPID 连接立即下降,导致ngnix 502 HTTP/1.1 502 Bad Gateway Server: nginx Date: Tue, 12 […]