簡體   English   中英

Apache 無法在 macOS 上加載 php7 模塊 - Monterey

[英]Apache can’t load php7 module on macOS - Monterey

我已經在我的 Mac 上安裝了 php@7.4 和 brew。 一切正常,但是當我在 Safari 中打開 localhost 時,它只會顯示 php 代碼。

我的代碼:

<?php
echo "Hello world";

和本地主機上的結果:本地主機上的結果

我認為這是我的問題。 我將此行添加到 http.conf 文件中,但在 localhost 中沒有任何效果(Safari 無法連接到服務器“localhost”)。

LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so

最后我找到了解決方案。 macOS 中的 Gatekeeper 確保只能執行經過驗證的應用程序,這是通過使用 codesign 對應用程序進行簽名來實現的。 代碼簽名在 macOS Big Sur 和之前是可選的,但自 macOS Monterey 以來是強制性的。

使用 homebrew 安裝的 PHP 模塊是沒有簽名的,所以需要先簽名才能使用。

在使用 codesign 實用程序對 PHP 模塊進行簽名之前,我創建了一個用於代碼簽名的證書頒發機構和一個代碼簽名證書。

第 1 步: 如何在 macOS 中為代碼簽名創建證書頒發機構

第 2 步: 如何在 macOS 中創建代碼簽名證書

第 3 步:從 Apache 的 PHP LoadModule 指令中找到 PHP 模塊的位置或路徑。

grep -nir "^loadmodule.*php" /etc/apache2 /etc/apache2/other/00-httpd.conf:4:LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so

第 4 步:使用您創建的代碼簽名證書名稱使用 codesign 對 PHP 模塊進行簽名。

codesign --sign "<Your Name>" --force --keychain /Library/Keychains/login.keychain-db /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so

第 5 步:使用您喜歡的文本編輯器使用 PHP LoadModule 指令打開 Apache 配置文件。

sudo nano /etc/apache2/other/00-httpd.conf

第 6 步:在 PHP LoadModule 指令中的模塊路徑后添加代碼簽名證書名稱。

LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so "<Your Name>"

然后重啟apache。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM