2017-09-26 157 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重新启动

相关问题