[英]Mac OS X MAMP Pro PHP Cli configuration
我有Mamp pro的php cli命令問題。 我的問題是php腳本中和終端中的exec不同。 我解釋:
當我執行此命令=> 哪個PHP
在mac終端中:
我得到這個路徑:/Applications/MAMP/bin/php/php5.6.2/bin/php
這是正常現象,因為我像這樣更改.bash_profile文件中的路徑:
export MAMP_PHP=/Applications/MAMP/bin/php/php5.5.18/bin export PATH="$MAMP_PHP:$PATH"
在導航器中:
with this line inside a php script: <?php echo exec("which php"); ?>
我得到這個路徑:/ usr / bin / php
結果相同,但使用命令=> php --ini更詳細
在mac終端中:
Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.5.18/conf Loaded Configuration File: /Applications/MAMP/bin/php/php5.5.18/conf/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
在導航器中:
Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini Scan for additional .ini files in: /Library/Server/Web/Config/php Additional .ini files parsed: /Library/Server/Web/Config/php/php.ini
而且更奇怪的是,當在其中編寫帶有以下代碼的php文件時: <?php var_dump(shell_exec("which php -v")); phpinfo(); ?>
<?php var_dump(shell_exec("which php -v")); phpinfo(); ?>
<?php var_dump(shell_exec("which php -v")); phpinfo(); ?>
,我也在終端和導航器中啟動此腳本。 我懂了:
在mac終端中:
使用以下命令啟動:php -f /Users/tm/Sites/test.com/test.php
結果:/Applications/MAMP/bin/php/php5.5.18/bin/php PHP版本=> 5.5.18
在導航器中:
結果:/ usr / bin / php PHP版本=> 5.5.18
因此,似乎從導航器啟動的php腳本使用了正確的php版本,因為php信息返回了正確的版本(5.5.18),但是此php腳本的cli使用了另一個php,這是我的問題。 但是當從終端啟動此腳本時,一切都如預期。
您遇到的問題是,Apache不使用您的用戶帳戶下的Mac OS X Terminal使用的基於BASH的PATH配置。 換句話說,在Web運行頁面在Apache下運行時,通過配置特定的登錄用戶.bash_profile條目設置的“ PATH”值特定於用戶的BASH Shell(終端)進程。即它不會加載您的用戶帳戶的BASH設置)。
如果要使用exec(),則使用相同的二進制文件(基於每個PHP腳本)結束的簡單方法是執行以下操作:
<?php
echo "Default PHP path: " . exec('which php') . PHP_EOL;
$current_path = exec('echo $PATH');
$your_custom_php_path = '/Applications/MAMP/bin/php/php5.5.18/bin';
putenv('PATH=' . $your_custom_php_path . ':' . $current_path);
echo "New PHP path: " . exec('which php') . PHP_EOL;
?>
(注意:以上腳本是針對換行符而不是Web輸出格式化的,用於shell輸出)。
這基本上是在運行中配置PHP腳本,以在您的BASH中(但在Apache運行的PHP腳本的上下文中)預先設置(和使用)與PATH相同的PATH設置值。
還有其他方法可以完成同一件事(Apache級配置等)-但希望這可以解釋為什么您看到不同的值,並為您提供解決此問題的一種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.