2012-02-10 50 views
1

在錯誤日誌FastCGI的錯誤 - FastCgiIpcDir問題在錯誤日誌

嗨FastCgiIpcDir問題,

我在Apache的錯誤注意到記錄以下錯誤(錯誤1):

[Wed Feb 08 14:00:06 2012] [alert] [client 41.185.88.175] (2)No such file or directory: FastCGI: failed to connect to (dynamic) server "/var/www/bin/php-splashpage-user/php-fastcgi": something is seriously wrong, any chance the socket/named_pipe directory was removed?, see the FastCgiIpcDir directive 

直接之後出現此錯誤(錯誤2):

[Wed Feb 08 14:00:06 2012] [error] [client 41.185.88.175] FastCGI: incomplete headers (0 bytes) received from server "/var/www/bin/php-splashpage-user/php-fastcgi" 

如何解決錯誤1?

由於主機系統定期清除「/ tmp」目錄(如果未定義,則爲fastCgiIpcDir的默認目錄),因此會消除與當前活動的FastCGI服務的通信,因此我讀到了有關更改此操作的信息。所以我決定放棄它。我將FastCgiIpcDir設置爲fastcgi.conf文件,希望能夠成功,但沒有任何變化。

這是我fastcgi.conf文件的內容:

<IfModule mod_fastcgi.c> 
    FastCgiIpcDir /var/lib/apache2/fastcgi_test 
    FastCgiConfig -idle-timeout 60 -maxClassProcesses 1 
    FastCgiWrapper On 

    AddHandler php5-fcgi .php 
    Action php5-fcgi /cgi-bin/php-fastcgi 

    <Location "/cgi-bin/php-fastcgi"> 
      Order Deny,Allow 
      Deny from All 
      Allow from env=REDIRECT_STATUS 
      Options ExecCGI 
      SetHandler fastcgi-script 
    </Location> 
</IfModule> 

權限和onwerships在/ var/lib中/的Apache2/fastcgi_test:

drwxr-xr-x 3 www-data www-data 4.0K 2012-02-08 09:20 fastcgi_test 

我的PHP包裝腳本php_fastcgi具有以下行:

#!/bin/sh 

PHP_FCGI_CHILDREN=120 
export PHP_FCGI_CHILDREN 
PHP_FCGI_MAX_REQUESTS=1000 
export PHP_FCGI_MAX_REQUESTS 

umask 0022 
exec /usr/bin/php-cgi -d apc.shm_size=50 

我運行PHP 5.3.1,Apache/2.2.14,Ubuntu 10.04。

這裏有幾件事至今我拿起:

  • 錯誤1只出現在一個小時的開頭說6秒只是新的小時

後從的mod_fastcgi我的工作已經瞭解到,增加子進程有助於緩解一些「錯誤2」錯誤(導致隨機時間間隔內發生HTTP 500錯誤)。目前我不太確定錯誤1的影響是什麼,但是如果錯誤2直接出現,那麼可以肯定地說這不是一件好事。

Fastcgi報告的錯誤信息非常少(如果有的話),並提供經過驗證的解決方案。令人遺憾的是,我可能只是加入到網上發佈的Fastcgi錯誤堆中,但沒有任何結論。

我們很樂意爲您提供幫助,建議或解決問題的提示。

回答

0

我不知道如何使它與包裝,以及suexec的工作,但你應該試試這個:

http://blog.kmp.or.at/2013/06/apache-2-2-on-debian-wheezy-w-php-fpm-fastcgi-apc-and-a-kind-of-suexec/

鏈路中的解決方案甚至沒有使用suexec的,也不是包裝,至少可以這樣工作。)

#FastCgiWrapper On 

2:

對於所需的步驟:

0)安裝PHP5-FPM,如果尚未安裝

1 Apache的MPM工人)註釋此行使一個別名:

Alias /cgi-bin/php-fastcgi **/var/something** 

3)fastcgiexternalserver:

FastCgiExternalServer **/var/something** -socket php5-fpm-site1user.sock 

(強類型的路徑必須是相同的)

4)設置在PHP5-FPM/pool.d/site1user.conf

[site1user] 
user = site1user 
group = site1user 

listen = /var/run/php5-fpm-site1user.sock 

pm = dynamic 
pm.max_children = 5 
pm.start_servers = 2 
pm.min_spare_servers = 1 
pm.max_spare_servers = 3 

chdir =/

5)重新開始FPM 通過conf服務PHP5-FPM重啓

6)更深入的瞭解檢查我在這裏等答案

https://serverfault.com/questions/524708/php5-fpm-apache2-on-wheezy-connect-failed-with-fastcgi/536277#536277

+0

關於錯誤,什麼文件/目錄將「*(2)沒有這樣的文件或目錄*」指的是? – Batandwa 2014-10-24 08:14:28

+0

明白了。 *(2)沒有這樣的文件或目錄*是由於丟失的套接字文件引起的,因爲我的PHP5-FPM **由於配置錯誤而未啓動。我只是通過手動運行'php5-fpm'來計算出錯誤,而不是*使用服務。 手動運行服務實際上證明在過去也是很好的調試,因爲有時使用'sudo service ... start'不會提供任何反饋。 – Batandwa 2014-10-24 08:58:41