Tag Archives: fastcgi

把 nginx 換到 1.6 後 PHP 遇到的問題

升級完 nginx 後就變成白頁了,觀察發現靜態檔案不受影響,所以看起來是與 PHP 溝通有問題,所以應該是 FastCGI 類的問題,用一些關鍵字找了一下,很快就解決了。 解法出自這邊:「Nginx 1.6 + php5-fpm socket communication fail」。 總結原文的解法,本來是 include fastcgi_params; 的請改成 include fastcgi.conf;。(我裝的 ppa 版本已經有 fastcgi.conf,不需要像原文提到自己修改)

Posted in Computer, Murmuring, Network, Software, WWW | Tagged , , | Leave a comment

Apache 2.4 的 ProxyPass 對 Unix Domain Socket 的 FastCGI 界面設定

出自「High-performance PHP on apache httpd 2.4.x using mod_proxy_fcgi and php-fpm.」這邊的方法: ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php5-fpm.sock|fcgi://127.0.0.1:9000/var/www/www.example.com/public/ 後面那個 127.0.0.1:9000 看起來變成裝飾用,有點奇怪... 不過至少會動?

Posted in Computer, Murmuring, Network, Programming, Software | Tagged , , , , , , , | 2 Comments

用 nginx + FastCGI 接 HHVM...

看到「HHVM, Nginx and Laravel」這篇文章,加上 Rackspace 香港的機器用起來很愉快,就開一台起來測試... 文章內的方法都 okay,只是在裝 HHVM 前少了一步把 key 加到 apt 內的指令: apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5A16E7281BE7A449 補上去以後 apt-get update 才會動 :p 速度上當然是沒話說,而且使用的習慣很接近 drop-in replacement 了... (更新檔案後不需要自己另外 purge cache,HHVM 會自己偵測到) 晚點來測試看看 Apache 用 FastCGI 接 HHVM,如果可行的話就更好了?(.htaccess 啊...)

Posted in Computer, Network, WWW | Tagged , , , | 2 Comments

HHVM 2.3.0 支援 FastCGI...

在 HHVM 官方的 blog 上看到 2.3.0 的消息:「HHVM 2.3.0 and Travis CI」。 在 GitHub 上的「FastCGI」這頁就有提到要怎麼透過 FastCGI 界面跟 Apache 配合,熟悉 nginx 的人也應該可以輕鬆對應過去。 另外一個重要的事情是 Travis CI 支援 HHVM 了,可以看到大量的專案加上 HHVM 測試:Yii、Slim、phpBB、Joomla、Doctrine、CodeIgniter、Idiorm、PHPUnit、Paris。 既然支援 FastCGI 了,來找機會測試看看...

Posted in Computer, Murmuring, Programming, Software | Tagged , , , , , , , , , , , | Leave a comment

Debian 上 Apache 2.2 設定 FastCGI 模式 PHP 的方式...

在 Debian 上只有 mod_fcgid 可以用,沒有 mod_fastcgi,兩者設定方式不一樣,花了一些時間測試... 最後是參考「Debian, apache2, virtualhosts, FastCGI and PHP5」這篇文章的說明,先弄到「會動」的情況。 首先是把該裝的裝起來 (apache2-mpm-worker、libapache2-mod-fcgid、php5-cgi),接下來在 /etc/apache2/sites-available/default 裡面修改兩個部份。 首先是針對 /var/www 的 Options 加上 ExecCGI。另外找個地方加上: AddHandler fcgid-script .php FCGIWrapper /usr/lib/cgi-bin/php5 .php 然後重跑 apache 就會動了,放個 phpinfo(); 的程式到 /var/www 下測試就可以確認了。

Posted in Computer, Linux, Murmuring, Network, OS, Software, WWW | Tagged , , , , , | 1 Comment

在 FreeBSD ports 裡用 local patch 修正問題...

用 FastCGI 跑 Trac,遇到 Trac 常常出現 MySQL server has gone away 的問題,官方看起來非常的 open source style:我沒遇到,不太想要處理這個問題... XD Anyway,這個問題可以透過「#3645 (MySQL connections don't reconnect after idle timeout) – The Trac Project」的 comment:8 給 workaround 掉,但我不希望在升級後問題又跑出來,所以就用「Apache 2.2 worker MPM 與 mod_fastcgi 的問題」這邊的解法來解了: www/trac: NO_CHECKSUM=yes … Continue reading

Posted in Computer, Database, FreeBSD, Murmuring, MySQL, Network, OS, Software, WWW | Tagged , , , , , , , | 2 Comments

Munin 的設定...

Munin 是套資源監視軟體。跟其他資源監視軟體不一樣的地方?畫面漂亮啊 XDDD 拿台堆各種雜物的 database 來看: 等到 Munin 監視超過二十台時就會很明顯感覺到很吃資源,再多的時候就會開始罵三字經,罵完後拆一台獨立的機器跑,以免跑個 vim 都要卡三秒... XD 這時候就是該調整了: 將 munin.conf 的 graph_strategy 與 html_strategy 都改成 cgi,告訴 Munin 在更新時只要更新 rrd 資料,而圖片與 html 的資料讓 cgi 做就好,這可以大幅減少 i/o rate。 將 rrdcached 跑起來,讓 rrd 資料寫入次數更少。rrdcached 的預設參數要記得調整。 將網站本來用 CGI 的部份改成 … Continue reading

Posted in Computer, Murmuring, Network, Software | Tagged , , , , , | Leave a comment

同時用 mod_deflate 與 mod_fastcgi 所產生的問題...

今天花了不少時間找到的問題... 問題是使用 mod_fastcgi 以及 mod_deflate 時,Content-Encoding 會是 gzip,但 Content-Length 會是未壓縮的長度。 也就是說,伺服器端在 header 提供的 Content-Length 可能寫 8KB,但實際上只丟出 2KB (壓縮後的大小),於是瀏覽器讀完這 2KB 後會停下來一直等,等到 Keep-Alive timeout 斷線 (在我機器上預設是 5 秒)。 在 timeout 斷線後 browser 會就抓到的資料直接解開執行 (因為這 2KB 都有抓到,於是都正確執行)。如果用瀏覽器這邊的 debugger 觀察,就會發現從 first byte 後 5.00 … Continue reading

Posted in Computer, Murmuring, Network, Software, WWW | Tagged , , , , , , , | Leave a comment

mod_fcgid 與 PHP

先不論效能之類的問題,mod_fcgid 跑 PHP 的設定比 mod_fastcgi 簡單許多。(參考之前寫的「apache22 (worker) + mod_fastcgi + php5-fcgi」這篇文章) 首先是把 module load 進來: LoadModule fcgid_module libexec/apache22/mod_fcgid.so 再來是把副檔名加上去,以及告知什麼副檔名要用什麼程式包: AddHandler fcgid-script .php FcgidWrapper /usr/local/bin/php-cgi .php 就這樣而已... 預設會跑一隻 php-cgi,需要的時候會再多拉幾隻。以他的方式看起來 code segment 不會共用,這種設定方式給小站台用還可以... 接下來看看有沒有辦法在 .htaccess 內直接吃本地的 FastCGI process...

Posted in Computer, Murmuring, Network, Software, WWW | Tagged , , , | Leave a comment

FreeBSD 使用 FastCGI + PHP 5.3 提供的 php-fpm

這篇還是講 mod_fastcgi,而非目前歸到 Apache 下管的 mod_fcgid。 PHP 5.3 已經內建 php-fpm,不過 ports 預設是不會裝上去的,所以首先先把 lang/php5 加上 php-fpm 支援。方法是 make config 後選擇 FPM。如果有裝 portconf 的人可以直接在 /usr/local/etc/ports.conf 裡加上: lang/php5*: WITH_FPM=yes 這樣就會強制蓋過系統設定,強制把 php-fpm 裝進去。 接下來是設定的部份,首先是 php-fpm 的設定,這篇的文章只教預設值,會跑在 127.0.0.1:9000。所以只要在 /etc/rc.conf.local 內設定 php_fpm_enable="YES",然後跑 /usr/local/etc/rc.d/php-fpm start 就把 php-fpm 跑起來了。 … Continue reading

Posted in Computer, FreeBSD, Murmuring, Network, OS, Software, WWW | Tagged , , , , , | 1 Comment