因為有需求需要在PHP 5.3上做開發,然後。
terminal看版本:
➜ ~ which php
/usr/local/bin/php
➜ ~ php -v
PHP 5.3.29 (cli) (built: May 14 2015 15:36:13)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
➜ ~ /usr/bin/php -v
PHP 5.5.20 (cli) (built: Feb 25 2015 23:30:53)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
which php-fpm
/usr/sbin/php-fpm
➜ ~ php-fpm -v
PHP 5.5.20 (fpm-fcgi) (built: Feb 25 2015 23:31:06)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
PHP Version 5.5.20
.zshrc配置:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
.bash_profile配置:
export PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:$PATH"
任意地方 php -v的確是5.3的版本,為什麼php-fpm還是優先調用php5.5?不解。有什麼方法可以讓php-fpm指定調用某個版本的php嗎?
1
ooxxcc 2015-05-14 16:16:47 +08:00
你装了至少两套php啊
mac + homebrew? brew install php53 |
2
vibbow 2015-05-14 16:16:49 +08:00
IIS的话可以针对每个host设置不同的PHP版本
Nginx应该也有地方设置的。 不过Linux下搞版本共存目测比Windows下纠结的多...... |
3
ooxxcc 2015-05-14 16:18:02 +08:00
/usr/bin/下是系统自带的
/usr/local/bin/是homebrew安装的 不知为何你安装的时候没带php-fpm |
4
SolidZORO OP @ooxxcc 沒錯,是兩套php
OSX Yosemite PHP ➜ /usr/bin/php (5.5) brew PHP ➜ /usr/local/bin/php (5.3) 不過我shell配置是PATH="/usr/local/bin:/usr/bin/",那麼/usr/local/bin/php(5.3)要優於/usr/bin/php (5.5)被調用才對。 難道是我理解不對? |
5
SolidZORO OP @ooxxcc brew安裝的時候會自帶php-fpm嗎? 我的確在 /usr/local/bin/沒看到 php-fpm。我--with php-fpm編譯看看。
|
6
coosir 2015-05-14 16:39:59 +08:00
|
7
SolidZORO OP @vibbow 對啊!Windows上面應為就一個NT內核,一次編譯隨便跑。Linux/OSX下就比較苦逼了,所有東西都需要現場make。我不是老一輩的人,實在不能理解,brew雖好,但又不夠靈活,有個什麼freetype沒編譯,下次想patch上去還要再make一次⋯⋯
|
9
coosir 2015-05-14 16:48:00 +08:00
@SolidZORO 看错。。
我是备份后直接软连接/usr/bin/php到我想要的php的(比如/usr/local/bin/php), 所以系统和我自己用的就一致了 |
10
ooxxcc 2015-05-14 16:50:31 +08:00
@SolidZORO 程序内部的调用和你的PATH变量没什么关系吧,相对来说/usr/sbin/php-fpm调用同版本的/usr/sbin/php更合理
重装一个就行了 反正我用brew install php56得到的php附带php-fpm,5.3我就不清楚了 |
11
ooxxcc 2015-05-14 16:58:59 +08:00
https://github.com/Homebrew/homebrew-php
Installation Setup the homebrew/dupes tap which has dependencies we need: $ brew tap homebrew/dupes Setup the homebrew/versions tap which has dependencies we need: $ brew tap homebrew/versions Then, run the following in your command-line: $ brew tap homebrew/homebrew-php $ brew install php53 |
12
SolidZORO OP @ooxxcc 裝php53的確是這樣,但是53在brew上沒配php-fpm。我也懶得折騰了,用osx自己的php-fpm算了,然後把系統的php直接rm掉,ln -s 上brew的53。
|
20
julyclyde 2015-05-14 23:20:37 +08:00
php-fpm本身就是一个SAPI,本身就有版本号这个属性
不是一个wrapper |
21
SolidZORO OP @julyclyde 嗯,應該是的。不過各版本之間並不能混用。
另外,我最後還是妥協用brew 安裝 php54,應為php53的--with-fpm是壞的,只有php54是好的,不過php54已經支持array直接[]調用了,怕調不出bug。 期間還嘗試過手動make php53,但是又涉及到mysql之類lib,mysq又要編譯,編譯的時候不是少這個就是少那個,加之網上的教程多為linux,涉及osx的全都是brew,所以只好放棄。 |
22
msg7086 2015-05-15 10:06:53 +08:00 via Android
php-fpm并不调用php
|
23
SolidZORO OP @msg7086 這樣? php-fpm的關係不是 [PHP] <= [php-fpm] => [nginx] 這樣的關係嗎?算是一個轉譯層。那php-fpm也要找到php和nginx才行吧。
那⋯⋯不然的話,你說來聽聽。 |
26
msg7086 2015-05-15 13:41:48 +08:00
|
27
huigeer 2015-05-23 14:19:52 +08:00
php7-fpm 启动参数 -t /usr/local/php7/etc/php.ini
php5.5.25-fpm 启动参数 -t /usr/local/php5.5.25/etc/php.ini |