由Homebrew安装的PHP7不能在macOS上使用Apache

我想升级到我通过自制软件安装的php7。

在CLI php -v返回

PHP 7.0.10 (cli) (built: Aug 21 2016 19:14:33) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0,Copyright (c) 1998-2016 Zend Technologies

但是对于本地主机,Firefox会popup一个加载页面的问题,我不能查看localhost / phpinfo.php; 如果我将模块线路交换回php5,它工作正常。

这里是我的apache2 / httpd.conf的一个pastebin http://pastebin.com/950yC7wA ,我不知道如何去解决这个问题。

如何重写URL而不刷新,如GitHub.com

问题与我的Ubuntu的Apache Conf文件。 (禁止您无权访问/在此服务器上。)

问题与乘客 – 阿帕奇

.htaccess 301将旧域中的所有页面redirect到新域中的单个页面

Rails 3.1的间歇性“脚本头文件过早结束”

osx版本El Capitan 10.11

Capistrano部署rails应用程序 – 如何处理长期迁移?

Android上的HttpClient 4.3.3

重新启动我的电脑,并突然在Linux 12.04上的xampp(lampp)中停用MySQL

如何将htaccess重写规则应用于包含换行符(%0A)的URL?

Apache ITK vs Suexec

虽然家酿是一个很好的工具,有时是不必要的。

我在我的Mac OS X上安装Apache,PHP和MySQL的文章中提到,OS X预装了Apache和PHP。 因此,你只需要配置和启用它们。

不幸的是,从Mac OS 10.11( El Capitan )开始,PHP版本仍然是5.5。 我想这会改变10.12( 塞拉利昂 ),因为PHP 5.5是EOL。 但是,它可能只是PHP 5.6。

对于安装PHP 7,我建议使用PHP OSX 。 他们提供PHP版本5.3到7.1(最新)的软件包安装。 它适用于Mac OS 10.6+( Snow Leopard )。

由于它是一个软件包安装,所以它可以在缺省的Apache安装下运行。 你只需要更新你的PATH并修改他们的PHP ini文件。 这两个概述在他们的常见问题 。

如果你想要更多的一步一步的教程,看看我最近的帖子在Mac OS X更新PHP 。

确保:

您已经安装了PHP,支持Apache模块(请参阅brew options php71 )。

包括--with-httpd22或--with-httpd24 。

您已按照来自brew info php71的说明进行操作

==> Caveats To enable PHP in Apache add the following to httpd.conf and restart Apache: Loadmodulee php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so <FilesMatch .php$> SetHandler application/x-httpd-php </FilesMatch> Finally,check DirectoryIndex includes index.php DirectoryIndex index.php index.html

你通过sudo apachectl restart重新启动了Apache。

如果某些东西不起作用,请通过以下命令检查日志: tail -f /usr/local/var/log/apache2/*error* 。

有关分步教程,请参阅: 在macOS Sierra上使用Homebrew设置Apache,MySQL和PHP 。

运行$ apachectl -t将显示当前配置的任何问题。 当我跑了它,我得到这个:

httpd:/private/etc/apache2/httpd.conf第171行的语法错误:无法将/usr/local/opt/php70/libexec/apache2/libphp7.so加载到服务器:dlopen(/ usr / local / opt / php70 /libexec/apache2/libphp7.so,10): 找不到符号:_ldap_control_find n引用自:/usr/local/opt/php70/libexec/apache2/libphp7.son预计位置:/ System / Library / Frameworks / /usr/local/opt/php70/libexec/apache2/libphp7.so中的LDAP.framework / Versions / A / LDAP n

我可以证实在github上发布这个解决方法 ,安装没有LDAP支持的软件包将防止这个错误:

brew reinstall php70 --without-ldap

不是直接解决你的问题,但是我在OS X上遇到了无数与PHP有关的问题。最近在升级到El Capitan后,试图让OCI库工作。

我已经放弃尝试使用它,并开始使用码头进行我的发展。 我觉得它是一个更好的解决方案,你甚至可以在相同的代码库上设置多个环境,这对测试不同版本非常有用。

Docker在OS X上设置起来非常简单,并且在存储库中有大量预构建的容器,您只需将安装点安装并设置到源目录,并使用它提供的端口即可访问。

如果您在OS X Sierra上使用Apache,则默认情况下,php7不会默认使用apache模块。

随着macOS Sierra的发布,Apache模块现在不是默认生成的。 如果你想在你的系统上建立它,你必须使用–with-apache选项安装php。 有关更多详细信息,请参阅brew选项php70。

尝试用标志重新安装:

brew reinstall php70 --with-apache

我有同样的问题,当我在/etc/apache2/httpd.conf注释掉这行时,它就消失了

Loadmodulee php5_module libexec/apache2/libphp5.so

我知道这是很老的话题,但是当你更新PHP你还需要更新Apache confing – 例如:

Loadmodulee php5_module libexec/apache2/libphp5.so

改成:

Loadmodulee php7_module libexec/apache2/libphp7.so

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...