我正在尝试升级到我通过自制软件安装的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
Run Code Online (Sandbox Code Playgroud)
但是对于localhost,firefox会弹出一个加载页面的问题,我无法查看localhost/phpinfo.php; 如果我将模块线交换回php5它工作正常.
这是我的apache2/httpd.conf 的一个pastebin http://pastebin.com/950yC7wA,我不知道如何解决这个问题.
ken*_*orb 14
确保:
您已安装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:
LoadModule 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
Run Code Online (Sandbox Code Playgroud)sudo apachectl restart.有关分步教程,请参阅:在macOS Sierra上使用Homebrew设置Apache,MySQL和PHP.
当某些东西不起作用时,通过以下方式实时检查日志:
tail -f /usr/local/var/log/apache2/*error*
Run Code Online (Sandbox Code Playgroud)
然后启动/重启服务器.
注意:完成后,点击Control- C退出tail.
Jas*_*ary 13
虽然Homebrew是一个很好的工具,但有时候它是不必要的.
我在Mac OS X上的安装Apache,PHP和MySQL的帖子中提到,OS X预装了Apache和PHP.因此,您只需配置并启用它们即可.
不幸的是,从Mac OS 10.11(El Capitan)开始,PHP版本仍为5.5.我想这会改变10.12(Sierra),因为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文件即可.这两个都在他们的FAQ中列出.
如果您需要更多的分步教程,请查看我最近关于在Mac OS X上更新PHP的帖子.
您可以将brew php模块添加到MacOS Monterey apache。正确执行所有步骤。
安装 homebrew php (brew install php /brew install php@7.4) 并在 /etc/apache2/httpd.conf 中添加以下行后
LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so
#LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
重要信息:您需要通过运行以下命令来测试 apache2 配置。如果你不运行它,你永远不会明白为什么它不起作用。
sudo apachectl configtest
Run Code Online (Sandbox Code Playgroud)
如果您收到如下错误:没有代码签名权限
[so:error] [pid 69894] AH06665: No code signing authority for module at /.../libphp[7].so specified in LoadModule directive.
Run Code Online (Sandbox Code Playgroud)
您需要按照此处的教程或https://blog.phusion.nl/2020/12/22/future_of_macos_apache_modules/创建本地 CA 文件和证书,并使用以下命令对 libphp.so 文件进行签名。注意:将 Ravi 替换为您的证书名称
codesign -s "Ravi" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php/lib/httpd/modules/libphp.so
# codesign -s "Ravi" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so
Run Code Online (Sandbox Code Playgroud)
现在返回到 /etc/apache2/httpd.conf 并在 LoadModule 行末尾添加“Ravi”(您的证书名称),如下所示
LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so "Ravi"
#LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so "Ravi"
Run Code Online (Sandbox Code Playgroud)
完成后运行
sudo apachectl configtest
Run Code Online (Sandbox Code Playgroud)
你应该在最后看到(忽略通知行)
Syntax OK
Run Code Online (Sandbox Code Playgroud)
如果您在 OS X Sierra 上使用 Apache,默认情况下 php7 不再附带 apache 模块。
随着 macOS Sierra 的发布,Apache 模块现在不是默认构建的。如果你想在你的系统上构建它,你必须使用 --with-apache 选项安装 php。有关更多详细信息,请参阅 brew 选项 php70。
尝试使用标志重新安装:
brew reinstall php70 --with-apache
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了同样的问题,当我在中注释掉这一行时它就消失了 /etc/apache2/httpd.conf
LoadModule php5_module libexec/apache2/libphp5.so
Run Code Online (Sandbox Code Playgroud)
运行$ 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.so\n 预期位于: /System/Library/Frameworks/ /usr/local/opt/php70/libexec/apache2/libphp7.so 中的 LDAP.framework/Versions/A/LDAP\n
我可以确认这个解决方法发布在 github 上,安装不支持 LDAP 的软件包将防止出现此错误:
brew reinstall php70 --without-ldap
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18802 次 |
| 最近记录: |