在 mac monterey 上启用 php

我尝试在 mac M1 monterey 上安装 php,但没有解释这个简单的代码:

<?php phpinfo(); ?>

我用brew安装了php

brew install php
brew link php

我签署了 libphp 模块

codesign --sign "certificate" --force --keychain ~/Library/Keychains/ /opt/homebrew/Cellar/php/8.1.2/lib/httpd/modules/libphp.so

我应该改用动态链接吗?

/opt/homebrew/opt/php/lib/httpd/modules/libphp.so

在 apache2.conf 文件中加载模块

LoadModule php_module /opt/homebrew/Cellar/php/8.1.2/lib/httpd/modules/libphp.so "certificate"

启用 php 页面以在 apache2.conf 文件中查看

# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>

which php 的结果

/opt/homebrew/bin//php

双斜线在这里正常吗?

我可以访问我的 web 目录的 index.php,但 php 仍然没有执行。

谢谢

stack overflow Enable php on mac monterey
原文答案
author avatar

接受的答案

正如我在评论中提到的,您可能完成了大部分步骤,但我发现本指南有最后一步,它提到了 PHP。链接在这里:

https://wpbeaches.com/updating-to-php-versions-7-4-and-8-on-macos-12-monterey/

此外,当我开始使用自制 Apache 时,我发现很多问题都消失了。

我很高兴该指南能够帮助您使其正常工作。

对于其他被卡住的人,这里是指南中的相关部分:

PHP 8 和 macOS Apache

PHP 8 和 macOS 捆绑的 Apache 需要一个额外的步骤:

sudo nano /etc/apache2/httpd.conf

添加新的 PHP 8 并注释掉旧的。

LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so

转到文件末尾并添加:

<FilesMatch .php$>
    SetHandler application/x-httpd-php
</FilesMatch>

重启阿帕奇


答案:

作者头像

有时,如果您在 httpd.conf 末尾有如下一行,则通过“其他”配置添加 php 配置

Include /private/etc/apache2/other/*.conf

检查 /private/etc/apache2/other/ 下的配置文件并进行必要的更改。我在该文件夹中有一个名为 +php-osx.conf 的文件,我编辑如下:

LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so

<FilesMatch .php$>
    SetHandler application/x-httpd-php
</FilesMatch>

<IfModule php_module>
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps

        <IfModule dir_module>
                DirectoryIndex index.html index.php
        </IfModule>
</IfModule>
作者头像

检查 /private/etc/apache2/other/php7.conf 下的配置文件并进行必要的更改。

这对我有用!谢谢你 !