2017-09-26 79 views
5

我更新我的Mac到最新版本的操作系統。當我嘗試運行PHP項目時,瀏覽器顯示php代碼而不是解釋它。我注意到,在新的操作系統PHP版本7.1。我安裝了5.6(必須對我來說)使用自制和更改模塊httpd.conf中:MacOS更新到高塞拉利昂後PHP不工作

的LoadModule php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/apache2/libphp5.so

下面是Apache的錯誤日誌:

[週二23年9月26日:59:38.600410 2017年] [mpm_prefork:聲明] [PID 980] AH00169:抓住SIGTERM,關停[週二23年9月26日: 59:38.622998 2017] [核心:預告] [pid 980] AH00 060:賽格故障或父進程AH00557檢測類似討厭 錯誤:httpd的: apr_sockaddr_info_get()失敗的MacBook-PRO-Kamil.local AH00558: 的httpd:無法可靠地確定了服務器的完全合格的 域名,使用127.0 .0.1。設置'ServerName'指令全局爲 以禁止此消息[Tue Sep 26 23:59:48.838005 2017] [mpm_prefork:notice] [pid 991] AH00163:Apache/2.4.27(Unix) 已配置PHP/5.6.31 - 恢復正常操作[週二09月26日 23:59:48.838097 2017年] [核心:聲明] [PID 991] AH00094:命令行: '/ usr/sbin目錄/的httpd -D前景'

回答

-2

你可以下載支持PHP 5.6.31的Xampp版本並使用Xampp運行您的應用程序。

如果你不想這樣做,我認爲你需要回到MacOs Sierra,記住PHP 5.6它是舊的,新系統將與最新版本一起來!

+0

你說這好像降級PHP是不是選項,並且它們都不與PHP7並行運行。這是因爲你知道這些事情都不可能,或者因爲它超出了你的答案範圍? – dubloons

+0

我這樣說是因爲新的MacOs在覈心中使用PHP 7,所以降級PHP可能是一種災難 – Kurogani

+0

正如OP提到的,他/她使用Brew來處理PHP版本,所以這根本不是問題。 – Erebus

-1

我也看着自制軟件選項,最後我決定使用Vagrant。您可以將您的項目文件保留在原來的位置,並使用流浪漢在本地提供服務。我使用laravel/homestead框,按照指南https://laravel.com/docs/5.5/homestead和Homestead.yaml - 你可以使用laravel和wordpress等相同的盒子,它也是未來osx升級的更多未來證明,你可以輕鬆選擇PHP版本對網站的基礎網站

folders: 
    - map: ~/Documents/www/mysite/ 
     to: /home/vagrant/mysite 
     type: "nfs" 
sites: 
    - map: mysite.app 
     to: /home/vagrant/mysite/dist 
     php: "5.6" 

,並在/ etc/hosts文件/添加

192.168.10.10 mysite.app 
0

它看起來並不像你的問題是用PHP,但與你的機器的域名。注意:「使用127.0.0.1無法可靠地確定服務器的完全限定的域名。全局設置'ServerName'指令以禁止此消息。檢查httpd.conf文件中的域設置。你也應該檢查你的/ etc/hosts文件是否有衝突。

This guide for installing and using Apache/MySQL/PHP via Homebrew has been immensely useful.它適用於macOS Sierra,但也適用於High Sierra。它還會告訴你如何安裝多個PHP版本以及在它們之間來回切換的便捷方式,如果你感興趣的話(或者保持運行一個PHP版本)。

我喜歡走Homebrew路線,而不是Vagrant或MAMP,因爲它更貼近本地安裝並使用更少的資源。希望有所幫助!

+0

ServerName消息只是一個警告。如果一切都配置正確,它不應該導致任何問題(我終於修復它之前,我已經運行了我的本地env與這個警告很長一段時間)。 – Erebus

4

添加以下行到我的httpd.conf文件解決了這一問題:

AddType x-httpd-php .php 
AddHandler application/x-httpd-php .php .php5 

希望這有助於!

編輯:只是爲了提供更多的細節,如crmpicco建議,我也沒跟我以前的那些山脈更換新高塞拉利昂httpd.conf中和的httpd-vhosts.conf文件,像這樣:

mv httpd-vhosts.conf~previous httpd-vhosts.conf 
mv httpd.conf~previous httpd.conf 

即使所有這一切,並重新啓動Apache它仍然無法正常工作 - 必須重新啓動一切才能生效。

1

MacOS升級過程似乎將您的Apache配置移出~previous文件,同時創建新的新版本。你只需要將它們移回去。這對我有用:

mv httpd-ssl.conf~previous httpd-ssl.conf 
mv httpd-vhosts.conf~previous httpd-vhosts.conf 
mv httpd.conf~previous httpd.conf 

檢查語法。

apachectl -S 

重新啓動Apache。使用甲基苯丙胺和PHP 5.6這裏

apachectl restart 
+0

我試過了,但沒有在我的答案中的行,它仍然無法正常工作。也許你在舊的配置文件中有這些行?另外,我通常喜歡從新的配置文件開始,添加我需要的東西,以防添加新的東西。 – Erebus

0

同樣的事情:剛後已更新爲高塞拉利昂(這可能是有太多的雜草Sierra公司的..)的Apache2停止工作。

小時後我終於解決了這個命令:

cp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini.temp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini

然後再施加我的自定義修改php.ini中。 (在我的情況下memory_limit和short_open_tag)

重新啓動MAMP,它的工作在第一次嘗試。

1

使用PHP5.6與HighSierra

  1. 啓用共享的Apache處理器模塊 的建設確保你有一個HTTP選項啓用PHP56中安裝了最新版本一起(無論是安裝/升級/重新安裝需要的話)

    $沖泡升級php56 --with-httpd的

  2. 以下鏈接中的Apache2配置文件/ etc/AP聲明 加入的Apache2配置文件中的模塊ache2/httpd.conf中

    的LoadModule php5_module /usr/local/Cellar/php56/5.6.32_8/libexec/apache2/libphp5.so

  3. 添加PHP5配置文件

    從製作副本php7.conf

    $ cd/etc/apache2/other; sudo cp php7.conf php5。CONF

    更換php7_module與php5_module

  4. 重新啓動Apache服務器

    $ sudo的/ usr/sbin目錄/的apachectl重新啓動

相關問題