2016-07-21 95 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