2015年11月13日 星期五

nginx 心得

LINUX上有兩個php
/usr/bin/php
/usr/local/php55/bin/php
$ php --version
PHP 5.4.42 (cli)
$ /usr/local/php55/bin/php --version
PHP 5.5.28 (cli)

要怎麼讓nginx 跑的是 /usr/local/php55/bin/php 的php?
=> 看你的  php-fpm 是跑在哪裡啊,nginx 一定得用 php-fpm 的 fastcgi

找不到php-fpm指令,但有在跑
$ which php-fpm
/usr/bin/which: no php-fpm in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/bear/bin)
$ ps axu | grep php-fpm
root       827  0.0  0.1 220016  4720 ?        Ss   Sep21   2:51 php-fpm: master process (/etc/php-fpm.conf)                   
www        829  0.0  0.4 231124 17476 ?        S    Sep21  17:56 php-fpm: pool www     
www      22389  0.0  0.3 232648 14560 ?        S    Sep21  17:54 php-fpm: pool www  
www      22563  0.0  0.3 227552 13332 ?        S    Oct05  14:00 php-fpm: pool www

CentOS
查有沒有裝php-cli(編譯裝的查不到)
$ rpm -qa | grep php-cli
查php-cli裝在哪裡(編譯裝的查不到)
$ rpm -qs php-cli

Ubuntu
$ dpkg -L php5-fpm # 列出檔案
$ dpkg -S php5-fpm # 搜尋放在哪

查nginx ( sites-available )設定檔
...
fastcgi_pass   127.0.0.1:9000;
 127.0.0.1:9000 這個是 php-fpm,表示你的 127.0.0.1:9000 這個 port 是 php5.5 開啟來的

就是 sudo service php5-fpm start ( => 去 call /etc/init.d/php5-fpm )所開啟的

查 php5-fpm startup scripts
# vim /etc/init.d/php5-fpm
...
prefix=/usr/local/php55

=> 就是他,只是我沒想到他會去改那隻 startup scripts,不要搞髒他啊 . .

Rellik:
我討厭用一些 pip rvm 之類的東西
因為這實際上並沒有進 centos 官方測試
安裝對應的路徑也不一樣
你隨便用一些奇怪套件安裝方式會把自己系統搞髒
最恐怖的是萬一這類的工具沒有把 dependency 弄好的話
其實很恐怖
他可能會蓋掉一些centos 或是 ubuntu 官方的套件
所以除非有特定版本需求
不然我大部分都還是以官方的套件管理系統為主
這樣管理機器上也不用擔心會踩到地雷 . . .
我在 freebsd 上用 ports 安裝的話就是下載原始碼啊
問題是  linux 上原始碼並不會進套件資料庫去管控起來
所以裝完以後你久了就忘了
根本不記得你有裝過什麼東西
freebsd 上面 ports 下載來的會盡套件資料庫控管
只是你要花時間編譯就是
總之你要自己編譯安裝也是可以
但前提是你要怎麼控管整個 flow ?
不要今天想到缺什麼就自己跑去下載原始碼開始編譯 . . .
系統就是這樣子被搞髒的


參考資料:
http://www.howtogeek.com/howto/ubuntu/see-where-a-package-is-installed-on-ubuntu/  See Where a Package is Installed on Ubuntu



沒有留言:

張貼留言