Krótsza odpowiedź.
Nie panikuj! Jeśli obawiasz się, jakiej wersji PHP używa twój serwer Apache, wynik phpinfo()
zawsze jest tym, na co powinieneś zwrócić uwagę. Moduł Apache PHP i plik binarny wiersza poleceń PHP to dwie różne rzeczy, które nie kolidują ze sobą.
W rzeczywistości możesz kompilować i ładować różne wersje PHP, które chcesz współpracować z Apache, pod warunkiem, że dostosujesz Apache do poprawnego ładowania. Interfejs wiersza poleceń PHP nigdy nie wejdzie w grę w przypadku analizowania stron PHP przez Apache.
Wersja PHP wiersza polecenia jest dostępna tylko dla zadań specyficznych dla wiersza poleceń, a moduł PHP dla Apache nigdy go nie dotknie, nie użyje ani nie będzie mu potrzebny.
Dłuższa odpowiedź.
Ty to mówisz:
Chciałem wiedzieć, której php
wersji używam, więc napisałem standardowy skrypt:
phpinfo();
Co daje mi wersję PHP 5.6.10 - odpowiednią wersję PHP potrzebną do mojej aplikacji. Kiedy próbowałem w terminalu:
php -i or php -v
Pokazuje mi PHP w wersji 5.3.2, której nie potrzebuję.
Wersja PHP dostępna z wiersza poleceń nie ma 100% nic wspólnego z wersją PHP ładowaną jako moduł. To są całkowicie oddzielne rzeczy.
Jeśli więc phpinfo()
obawiasz się, której wersji PHP używa Twoja aplikacja internetowa, jeśli pokazuje wersję 5.6.10 i to, czego chcesz / potrzebujesz, jest w 100% w porządku.
Wersja PHP wiersza poleceń jest całkowicie oddzielnym elementem systemu. Jedyne, co się liczy, to wynik phpinfo()
.
Jeśli z jakiegoś powodu chciałeś użyć innej wersji PHP z Apache, wszystko co musisz zrobić, to zainstalować gdzieś skompilowany moduł PHP Apache i dodać - lub dostosować - ten wiersz w konfiguracji Apache w twoim systemie:
LoadModule php5_module /path/to/php/and/the/module/for/apache2/libphp5.so
I po prostu dostosuj ścieżkę do libphp5.so
- tego, czego używa Apache do analizowania PHP - a następnie uruchom ponownie Apache i zaczniesz działać.
Na przykład w pewnym momencie musiałem skompilować PHP w wersji 5.1.6 ze źródła (z obsługą biblioteki GD) do użycia na maszynie Ubuntu 12.04 z PHP 5.3.5. W module PHP serwera ładującego plik tutaj:
/etc/apache2/mods-available/php5.load
Miałem takie linie:
# LoadModule php5_module /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516-gd.so
Zauważ, jak jedna linia jest komentowana, libphp535.so
a druga nie jest komentowana libphp516-gd.so
? Zmieniłem nazwę domyślnego libphp5.so
modułu Apache PHP 5.3.5 libphp535.so
na numer wersji w nazwie, więc mogłem go tam znaleźć w celach informacyjnych, a następnie nazwałem moduł PHP 5.1.6 (z obsługą biblioteki GD), libphp516-gd.so
więc wiem, co to jest również. W ten sposób mam oba dostępne obok siebie w systemie.
I - jak powiedziałem na wstępie - wersja PHP używana w wierszu poleceń nie ma absolutnie nic wspólnego z modułem Apache PHP. Możesz mieć gotową do pracy dowolną liczbę różnych wersji modułów Apache PHP; po prostu dostosuj konfigurację i zrestartuj Apache, a powinieneś być w biznesie, aby używać dowolnej wersji PHP, którą określisz Apache.