在 mac 蒙特雷启用 php

Enable php on mac monterey

我尝试在 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

我应该改用动态 link 吗?

/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"

允许在 apache2.conf 文件中查看 php 页面

# 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 仍然没有执行。

谢谢

正如我在评论中提到的,您可能已经完成了大部分步骤,但我发现本指南中提到了 PHP 的最后一步。这是 link:

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

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

很高兴该指南能够帮助您完成工作。

对于其他遇到困难的人,这里是指南中的相关部分:

PHP 8 和 macOS Apache

PHP8 和 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>

重新启动 Apache

有时 php 配置是通过“其他”配置添加的,如果您在 httpd.conf

末尾有如下一行
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>