Почему версия PHP отличается в phpinfo () и CLI?

я понял, что между версией PHP, о которой сообщает phpinfo() и php -v (в CLI).

phpinfo():  5.5.24
php -v: 5.6.9

Я работаю на Mac OS X 10.10 (Yosemite) и установил библиотеку (php-version) попытаться управлять версиями PHP.

он сообщает мне 3 различные версии, установленные на моем ноутбуке:

  5.4.41
  5.5.25
* 5.6.9

Я хотел бы установить ту же версию PHP в Apache и CLI.

как я могу сказать Apache, какая версия PHP использовать?

Я пытался написать эту строку в httpd.conf:

LoadModule php5_module    /usr/local/opt/php56/libexec/apache2/libphp5.so

затем:

sudo apachectl restart

но все это не решит проблему... в моем PHP инфо у меня еще есть: 5.5.24

11
задан JakeGould
21.12.2022 4:17 Количество просмотров материала 3128
Распечатать страницу

2 ответа

несколько различных вопросов здесь все скрывается под концепцией PHP версии путаницы, поэтому постараюсь решить каждый из них как можно более четко. Сначала это:

я понял, что существует Мисс соответствия между версией PHP сообщает phpinfo() и php -v (в CLI).

phpinfo():  5.5.24
php -v: 5.6.9

php CLI не совпадает с модулем PHP Apache.

как я объясняю в ответе на этот вопрос здесь, не паника! Если вас беспокоит, какую версию PHP использует ваш сервер Apache, выведите phpinfo() всегда то, на что вы должны обратить внимание. PHP-модуль Apache и PHP-двоичный файл командной строки - это две разные вещи, которые не мешают друг другу.

просто обратите внимание на выход phpinfo() Если вы обеспокоены установкой правильной версии модуля PHP в Apache.

тем не менее, у вас все еще есть проблемы с получением правильного модуля PHP загружен в Apache:

я пытался написать эту строку в httpd.conf:

LoadModule php5_module    /usr/local/opt/php56/libexec/apache2/libphp5.so

убедитесь, что ваш сервер Apache загружает правильный модуль PHP.

в то время как то, что вы сделали технически выглядит правильным, единственная причина, по которой я вижу, что это не работает, так или иначе есть еще LoadModule php5_module директива в конфигурационных файлах Apache, которая заменяет значение, которое вы задаете в этой строке.

я бы рекомендовал просмотреть the httpd.conf - который, как я полагаю, находится здесь /etc/apache2/httpd.conf - и посмотреть, если, возможно, действительно есть другой LoadModule php5_module что вы пропустили или не заметили при редактировании этого файла. Глядя на мой эквивалентный файл в Mac OS X 10.9.5, я вижу, что строка закомментирована-так как я не использую настройки Mac OS X Apache / PHP-и читает что-то вроде этого:

#LoadModule php5_module libexec/apache2/libphp5.so

конечно в вашем случае это будет раскомментирован. Подробнее о настройке Apache и PHP для веб-разработки можно найти на этой сайт.

серьезно рассмотреть возможность использования MAMP в качестве альтернативы Mac OS X Apache/PHP причуды.

теперь все сказанное, я не знаю, что вы пытаетесь сделать, но если вы занимаетесь веб-разработкой на системе Mac OS X, вы должны серьезно рассмотреть возможность использования MAMP вместо взлома основного веб-стека Mac OS X для запуска.

преимущество MAMP весьма эквивалент Mac OS X уровня продукции стога светильника. И поскольку он ориентирован на реальную веб-разработку, у него есть все модули и конфигурации, настроенные точно так, как нужно.

основная проблема с Apache и PHP на Mac OS X-это программное обеспечение, как правило, устарело, боль в настройке/настройке и управлении и головная боль при отладке, когда происходят такие вещи. И что делать, если обновление Mac OS X приходит, что стирает ваши тщательно настройки Apache и PHP? Вы вернулись к исходной точке.

12
отвечен JakeGould 2022-12-22 12:05

Я нашел решение моей проблемы. После редактирования /etc/apache2/httpd.conf я использовал для перезагрузки apache с помощью:

sudo apachectl restart

по какой-то причине с помощью этой команды Apache не будет получать обновления в httpd.conf и загрузите старую конфигурацию.

использование:

sudo apachectl -k stop
sudo apachectl -k start

сделать своего рода жесткий перезапуск всех служб, а также читает обновления в файле конфигурации и, наконец, прочитать новый путь для php5_module:

/usr/local/opt/php56/libexec/apache2/libphp5.so

спасибо @JakeGould для его объяснение.

3
отвечен Salvatore Dibenedetto 2022-12-22 14:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх