2016-07-21 21 views
0

zu vereinbaren Ich werde für Ihre Hilfe zu diesem Thema dankbar sein - ich bin neu in CS, daher bitte ich um Gnade und klare Erklärungen.Apache vs Terminal - wie Php-Versionen auf Mac 10.11.6

Mein System Mac OS X 10.11.6 (gerade ein Upgrade gestern)

Meine Frage:

wie Terminal setzen die gleiche Version zu verwenden, wie Apache der Fall ist, oder umgekehrt - wie Apache auf Verwenden Sie die gleiche Version wie Terminal? Welcher Weg ist besser? Ich nehme an, dass die erste besser ist, weil OS 10.11.6 mit vorinstalliertem Apache geliefert wird, der mit einer bestimmten PHP-Version verbunden ist; Wenn ich also eines der zukünftigen PHP-Upgrades installieren möchte, wird die ältere Version automatisch überschrieben. Aber wenn ich jetzt die Apache-Konfiguration ändere, d. h. die Version von php, die sie verwendet, ändere, muss ich sie erneut manuell ändern, wenn ich php aktualisiere. Bitte berate mich. Bitte beachten Sie: Mein Ziel ist es, nur eine praktikable PHP-Version zu haben. Ich verstehe, dass es möglich ist, zwei oder mehr zu haben, aber mein Ziel - eins.

php –v zeigt 5.5.37 version

aber http://localhost/~username/phpinfo.php5.5.36 version zeigt

Da habe ich mein Betriebssystem nur ein Upgrade, ich glaube, 5.5.36 ist nicht so eine schlechte Alternative. Hier

ist, was ich es geschafft haben, zu überprüfen: 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 
……………… 

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

Ich habe /etc und fand diese Dateien dort:

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

Keine anderen Dateien co "php" erhalten.

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

Ich habe versucht, dorthin zu gehen, aber /Web Verzeichnis existiert nicht innerhalb Server directory. Daher gehe ich davon aus, dass bei diesen Distanzen keine zusätzlichen .ini Dateien für Apache zur Verfügung stehen.

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

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

und ich habe PHP's include_path von meinem Server nicht durch Überprüfung finden http://localhost/~username/phpinfo.php

Habe ich das richtig verstehen aufgrund dieses Umstandes Apache verwendet 5.5.36 PHP-Version und nicht das 5.5.37 eins; und Terminalbefehle zeigen die entgegengesetzte Situation? Was sind die richtigen Schritte, um dies zu ändern? Vielen Dank für Ihre Hilfe und Geduld!

Antwort

0

Die CLI PHP und PHP Apache Module sind verschiedene ausführbare Dateien, also auch wenn beide auf die exakt gleiche Versionsnummer kompiliert werden, sie sind immer noch technisch unterschiedlich

Typischerweise wird die CLI-Anwendung auf /usr/bin/php entfernt.

Ich bin nicht super vertraut mit Mac-Setups, aber ich denke, die Apache-Module in sein /usr/lib/apache2/modules so ls -al /usr/lib/apache2/modules/ | grep phpsollte zeigen Sie alle die PHP-Module, die gewesen sind für Apache kompiliert.

Um festzustellen, welches geladen ist, sollten Sie in aussehen/etc/apache2/mods-enabled Verzeichnis

HTH, und lassen Sie mich wissen, wenn Sie Follow-up-Fragen haben

+0

Peter, danke. Keiner der vorgeschlagenen Orte existiert auf meinem Computer; 'sudo apachectl -M zeigte Modi. Aber ich möchte CLI und Apache verwenden die gleiche PHP-Version verwenden. Ich habe 'which php' überprüft und festgestellt, dass CLI nicht auf'/usr/bin/php' zeigt, wie es sollte. Mein Versuch, einen Link von 'sudo ln -s/usr/local/php5/bin/php/usr/bin/php' und sogar von' sudo ln -fs/usr/local/php5/bin/php/usr/bin/php', hat nicht geklappt, denn auf El Capitan, wie ich hier gelernt habe, ist '/ usr' ein geschütztes" rootless "Verzeichnis, auch für Admins. Daher denke ich, ich kann nicht ändern, wo CLI zeigt. – Vitale