2016-07-21 63 views
0

我將非常感謝您對這個問題的幫助 - 我是cs的新手,因此我向您求求憐憫和明確的解釋。Apache與終端 - 如何協調Mac上的PHP版本10.11.6

我的系統的Mac OS X 10.11.6(升級就在昨天)

我的問題:

如何設置終端作爲Apache沒有,或者使用相同的版本,反之亦然 - 如何將Apache設置使用與終端相同的版本?哪種方法更好?我認爲第一個更好,因爲OS 10.11.6預裝了與某個PHP版本連接的apache;所以如果我決定安裝一個PHP,任何將來的升級都會自動覆蓋舊版本;但如果我現在更改apache的配置,即更改它使用的php版本,那麼如果我升級php,我將再次手動更改它。請建議我。請注意:我的目標是隻有一個可行的PHP版本。我明白可以有兩個或更多,但我的目標 - 一個。

php –v顯示5.5.37 version

http://localhost/~username/phpinfo.php顯示5.5.36 version

鑑於我剛剛升級我的操作系統,我相信36年5月5日是不是這樣一個壞的選擇。

這是我設法檢查: I)php --ini

Configuration File (php.ini) Path: /usr/local/php5/lib 
Loaded Configuration File:   /usr/local/php5/lib/php.ini 
Scan for additional .ini files in: /usr/local/php5/php.d 
Additional .ini files parsed:  /usr/local/php5/php.d/10-extension_dir.ini 
……………… 

http://localhost/~username/phpinfo.php 一)Configuration File (php.ini) Path/etc

我查/etc,發現這些文件有:

php-fpm.conf.default 
php.ini.default 
php.ini.default-5.2-previous 

沒有其他文件co ntaining「php」。

B)Scan this dir for additional .ini files/Library/Server/Web/Config/php

我曾試圖去那裏,但/Web目錄內不存在Server directory。因此,我認爲沒有額外的.ini文件可用於這些distanations apache。

II)命令$ php -c /path/to/php.ini -r 'echo get_include_path()."\n";'

.:/usr/local/php5/lib/php 

,我沒有通過檢查http://localhost/~username/phpinfo.php

我是否正確地理解,由於這些情況的Apache找到我的服務器PHP's include_path使用36年5月5日的PHP版本,而不是5.5.37;和終端命令揭示了相反的情況?什麼是正確的步驟來改變這一點? 非常感謝您的幫助和耐心!

回答

0

PHP的CLI和PHP Apache模塊是不同的可執行文件,所以即使雙方都編譯完全相同的版本號,他們仍然在技術上不同

通常情況下,CLI應用程序位於/usr/bin/php

我不是超級熟悉的Mac設置,但我認爲 Apache模塊將在/usr/lib中/的Apache2 /模塊所以ls -al /usr/lib/apache2/modules/ | grep php應該告訴你所有已在PHP模塊爲Apache編譯。

以確定哪一個已經被加載,你會想在看的/ etc/apache2的/ MODS啓用目錄

HTH,讓我知道你是否有後續問題

+0

彼得,謝謝。我的電腦上沒有建議的地方; 'sudo apachectl -M'顯示模式。但我想讓CLI和Apache使用相同的PHP版本。我已經檢查過'哪個php',並且它顯示CLI沒有像它應該那樣指向'/ usr/bin/php'。我試圖用'sudo ln -s/usr/local/php5/bin/php/usr/bin/php'甚至用'sudo ln -fs/usr/local/php5/bin/php/usr/bin/php',因爲在El Capitan上沒有解決問題,就像我在這裏學到的一樣,'/ usr'是一個受保護的「無根」目錄,即使是管理員也是如此。所以我想我不能改變CLI指向的地方。 – Vitale