bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Entries Tagged ‘Ubuntu’

Nginx 502 Bad Gateway 錯誤 connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied)

進行 Ubuntu 14.04 apt-get upgrade 更新過程中有提示確認而將 www.conf 更新異動,然後網站就掛了。

檢視 /var/log/apt/history.log 確認相關版本變動 php5-fpm:amd64 (5.5.9+dfsg-1ubuntu4, 5.5.9+dfsg-1ubuntu4.1)

接著檢查 nginx/error.log 內容看到

2014/06/24 18:41:49 [crit] 2080#0: *1 connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: localhost, request: “GET / HTTP/1.1”, upstream: “fastcgi://unix:/var/run/php5-fpm.sock:”, host: “blog.bestlong.idv.tw”

比對 /etc/php5/fpm/pool.d/www.conf 與 www.conf.dpkg-old 發現預設被註解的參數 ;listen.mode = 0666 被改成 ;listen.mode = 0660
而且在 php5-fpm 啟動的狀態下去檢查 /var/run/php5-fpm.sock 的 owner 是 root 而權限也真的變成 0660 了,造成 Nginx 沒有足夠的權限透過 php5-fpm.sock 來與 php5-fpm 通訊,這樣的改變應該是為了提升安全性。

想要解決可以改成用 tcp 方式通訊或者調整設定,不過可別考慮直接將權限調回 0666 那可就退步了。

因為 nginx 與 php5-fpmp 的執行身分都是 www-data 所以可以修改 /etc/php5/fpm/pool.d/www.conf 的內容,將下列三行開頭註解符號 ; 給移除

;listen.owner = www-data
;listen.group = www-data
;listen.mode = 0660

變成

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

然後存檔離開重新起動 php5-fpm 服務

service php5-fpm restart

再去檢查 /var/run/php5-fpm.sock 的 owner 是否為 www-data 而權限是 0660 就沒錯了,網站應該也恢復正常上線。

Comments (1)

Ubuntu 環境下的 PHP 加速器

在 Fedora Core Linux 可以找到 PHP 加速器的 php-eaccelerator RPM 套件,在 Ubuntu 環境下卻找不到,用 apt-cache search accelerator 搜尋後看到一個套件

turck-mmcache – precompiler and cache to improve performance of PHP scripts

就是它了, 因為 eAccelerator 是 Turck MMCache 的分支專案。

http://eaccelerator.net/

http://turck-mmcache.sourceforge.net/ 

Leave a Comment

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整