說明
網路上很多教學感覺都猶抱琵琶半遮面的,既然是想分享就要說清楚點,多貼圖嘛,真是的,導致我瘋狂踩坑。還好最後踩明白了,讓我也發一個相關教學吧。 首先,Macbook的確內建了apache
透過
apachectl start
開啟apache服務 你可以在瀏覽器輸入localhost看到結果
出現It works!
就對了。
但對於PHP來說,從macOS X (10.0.0) 到macOS Monterey (12.0.0) 之前都內建了,後面的系統都沒有了,可以從httpd.conf檔案中找到
#安裝php
brew安裝
推薦使用brew安裝
brew update # 不进行这一步我出现了missing bottle的错误brew install php@7.4
然後你會看到
也就是直接告訴你在apache和nginx的設定、設定為全域指令和啟動的方法。
在apache中設定
打开apache的配置文件 cd /etc/apache2 sudo cp httpd.conf.bak #备份一下,防止修改文件出错 sudo chmod 666 httpd.conf #修改文件的权限,免得无法修改 # 可以通过 ls -l httpd.conf查看文件的权限 # -rw-r--r-- 初始权限,一般我们用户下是没有写权限的 vim httpd.conf #使用vim编辑 /LoadModule p #定位在此,所有的LoadModule xxx都是按字母排序的,不要轻易打乱 i #启动插入编辑
加入
LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
將
##改為##在
加入一行
AddType application/x-httpd-php .php
驗證設定檔是否正確
apachectl -t
出現Syntax Ok既成功。
修改PHP的設定檔
cd /opt/homebrew/etc/php/7.4 ls -l php.ini. #先检查权限,没有写全县则使用chmod
環境變數的設定
echo 'export PATH="/opt/homebrew/opt/php@7.4/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/opt/homebrew/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc echo 'export LDFLAGS="-L/opt/homebrew/opt/php@7.4/lib"' >> ~/.zshrc echo 'export CPPFLAGS="-I/opt/homebrew/opt/php@7.4/include"' >> ~/.zshrc source ~/.zshrc #重新加载环境变量
啟動php
brew services restart php@7.4
查看apache 伺服器是否已經載入php
apachectl -M sudo apachectl -k restart # 记得重启
成功了! ! !
測試的index.php檔案
在Finder中
command shift
G
,路徑切換到/Library/WebServer
開啟Documents資料夾的簡介
#點擊鎖頭解鎖 加入目前用戶,給予讀寫權限
在Documents資料夾下,新建index.php檔案(我反正用VSCode寫好再放進去)
<?php phpinfo();?>
驗證
開啟瀏覽器,輸入
http://localhost/index.php#大功告成了! ! ! (PS:我到這一步驟花了四個多小時,太難了)
安裝phpmyadmin
官網下載壓縮套件
位址#之後瀏覽器輸入
http://localhost/phpmyadmin/index.php完结散花!!
遇到的问题
证书签名的问题
安装php中,会出现
据说是证书验证的问题command
+space
搜索钥匙串访问
点进去进入到创建证书
创建一张代码签名证书。
证书始终信任
# 对php这个链接库进行签名 sudo codesign --sign "ztCA" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so
修改httpd.conf 在原来的
LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so
改为
LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so "ztCA"
然后验证修改是否正确
apachectl -t
出现
问题解决。