目錄
brew安裝php
-
安裝最新的php7.3(關於brew,請另篇學習)
brew install php
-
記錄安裝後的一些信息,在後面要用
# httpd.conf LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so # php.ini and php-fpm.ini 文件所在目錄 /usr/local/etc/php/7.3/
apache配置
啓動apache靜態服務
- 終端輸入命令,啓動mac自帶apache服務
sudo apachectl start
- 終端查看版本
sudo apachectl -v
Server version: Apache/2.4.33 (Unix)
Server built: Apr 3 2018 23:45:11
- 瀏覽器查看靜態服務是否啓動
localhost
127.0.0.1
- 網頁顯示It works!
- 代碼默認目錄
/Library/WebServer/Documents/
配置apache
- 備份Apache httpd.conf配置文件
cd /etc/apache2
sudo cp httpd.conf httpd.conf.bak # 備份
sudo cp httpd.conf.bak httpd.conf # 恢復備份
- 修改配置文件
/private/etc/apache2/
/private/etc/apache2/httpd.conf # 與/etc/apache2/httpd.conf是同一個文件
- 設置代碼目錄
找到:
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
修改爲:(lx爲你的電腦用戶名)
DocumentRoot "/Users/lx/Sites"
<Directory "/Users/lx/Sites">
- [可選操作]便沒有index.html也搜索目錄下的文件
// 搜索Options FollowSymLinks
Options FollowSymLinks Multiviews // 沒有文件 顯示Forbidden 禁止訪問
// 更改爲
Options Indexes FollowSymLinks Multiviews // 如果沒有index.html(php) 則顯示所有文件列表
綁定php解釋器
# LoadModule php5_module libexec/apache2/libphp5.so // 去掉# 會使用php5
或
#LoadModule php7_module libexec/apache2/libphp7.so // 去掉# 會使用系統自帶php7.1
LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so // 添加此行使用剛剛安裝的php7.3
-
注意
雖然網站運行代碼,已經綁定了brew安裝的php-fpm,但是終端運行,還是系統自帶php7.1,具體原因見番外。
-
添加文件類型識別
搜索
DirectoryIndex index.html
改成
DirectoryIndex index.html index.php
啓用php默認設置
- 切換目錄 並複製文件(2019年10月19日 這一步可跳過)
cd /etc
sudo cp php.ini.default php.ini // 這個是mac自帶的php配置 brew的配置見開頭安裝部分
- 重啓Apache
sudo apachectl restart
或者
sudo apachectl -k restart
到此爲止,你在瀏覽器輸入localhost,即可正確解析php文件
虛擬主機與虛擬域名
啓用虛擬主機 設置虛擬域名
- 修改 /etc/apache2/httpd.conf 關聯host配置
# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf
修改爲 (註釋掉#號)
# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf
- 備份文件
cd /etc/apache2/extra
sudo cp httpd-vhosts.conf httpd-vhosts.conf.bak # 備份
sudo cp httpd-vhosts.conf.bak httpd-vhosts.conf # 恢復備份
- 打開 httpd-vhosts.conf 並按如下格式配置域名,2 5 6行見示例具體情況,不需要改動
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "項目地址"
ServerName 虛擬域名
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>
- 使用iHosts軟件修改**/private/etc/host**文件添加常用域名
示例
127.0.0.1 blog.com
支持URL重寫 隱藏框架入口文件index.php
- 開啓模塊支持
搜索
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
去掉#
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
- 設置**.htaccess**權限,將AllowOverride Node改爲 AllowOverride All 一共有三處 開啓此處即可
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
# AllowOverride None 此處None改成All
AllowOverride All
番外 終端php與phpinfo版本不一致
-
電腦上存在多版本的php是正常的,出現這種情況也是正常的
-
phpinfo顯示的版本,是apache LoadModule關聯的php,前文已經講過
-
終端顯示的版本,是系統自帶的php
這是因爲在2019年7月份之後,重裝的系統,brew link php時,無權寫**/usr/local/sbin目錄(不存在此目錄),導致設置環境變量失敗,創建/usr/local/sbin之後,再次執行brew link php**即可解決。
注:此篇文章寫的相對比較簡寫,如果您遇到什麼問題,可以V信Q-rugulus