我已經在我的 Mac 上安裝了 [email protected] 和 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
uj5u.com熱心網友回復:
最后我找到了解決方案。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。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/486243.html
