mac自带Apache
和PHP
,目前最新版mac系统自带的PHP是PHP5.6
,但目前PHP最新的稳定版已到7.1.9
,并且laravel5.5
已经明确要求PHP版本必须大于7.0,到此,已经没理由不给自己的mac升级了.
网上虽然有很多相关文章,但实际操作仍有许多问题,以下是昨日升级时总结的几个步骤.
第一步: 删除系统原有的PHP文件
cd /private/etc/
sudo rm -rf php-fpm.conf php-fpm.conf.default php.ini php.ini.default
cd /usr/bin/
sudo rm -rf php php-config phpdoc phpize
cd /usr/include
sudo rm -rf php
cd /usr/lib
sudo rm -rf php
cd /usr/sbin
sudo rm -rf php-fpm
cd /usr/share
sudo rm -rf php
cd /usr/share/man/man1
sudo rm -rf php-config.1 php.1 phpize.1
cd /usr/share/man/man8
sudo rm -rf php-fpm.8
第二步: 安装新版
brew update
brew install php71 --with-httpd24 # 如果要使用Apache则必须这个参数,但是会导致新装一个Apache
# 虽然最新的稳定版是7.1.9,但brew当前安装的是7.1.8,另外
第三步: 修改Apache配置文件
which httpd
输出 /usr/local/bin/httpd # 发现不是升级前的 /usr/sbin/httpd 了
###################### 第一种方式: 不使用升级前的httpd(不推荐) ####################
# 升级后新装了一个Apache2.4,这种方式是使用新装的Apache,修改的较多
# 查看加载的配置文件列表
httpd -t -D DUMP_INCLUDES
(*) /usr/local/etc/apache2/2.4/httpd.conf # 不再是以前的 /private/etc/apache2/httpd.conf 了
# 修改Apache配置文件(可以用对比工具与旧配置文件对比修改)
sudo vim /usr/local/etc/apache2/2.4/httpd.conf
# 可以发现新的配置文件已经为我们加载了 php7_module,
LoadModule php7_module /usr/local/Cellar/php71/7.1.8_20/libexec/apache2/libphp7.so
# 1.修改端口为80,默认是8080
Listen 80
# 2.修改用户和组,升级后user和group默认是daemon,需要调整一下,可参考原配置文件的用户和组
User zhangwei
Group staff
# 3.增加一行 ServerName 配置
ServerName 127.0.0.1:80
# 4.修改web根目录为升级前的配置(不然会因权限问题而被拒绝访问)
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
# 5.引入升级以前的虚拟主机配置文件
Include /etc/apache2/extra/httpd-vhosts.conf
# 6.文件末尾引入其他配置
Include /private/etc/apache2/other/*.conf # 也可以直接把 <IfModule php7_module> 段配置写在这里*/
###################### 第一种方式: end ####################
################## 第二种方式: 使用升级前的Apache(推荐) ################
# 删除新装的Apache
brew uninstall --ignore-dependencies httpd24
rm -rf /usr/local/bin/httpd
rm -rf /usr/local/etc/apache2
rm -rf /usr/local/var/www
rm -rf /usr/local/var/homebrew/locks/httpd24.formula.lock
# 新开启一个终端,再来查看加载的配置文件列表
httpd -t -D DUMP_INCLUDES
(*) /private/etc/apache2/httpd.conf # 说明已经切换回升级前的Apache了
# 找到升级PHP生成的so文件
sudo find /usr -name libphp*.so
# 修改Apache配置文件
sudo vim /private/etc/apache2/httpd.conf # 或者 /etc/apache2/httpd.conf
# 1.注释掉下面这行
#LoadModule php5_module libexec/apache2/libphp5.so
# 2.新增一行
LoadModule php7_module /usr/local/Cellar/php71/7.1.8_20/libexec/apache2/libphp7.so
################## 第二种方式: end ################
第四步: 增加php7_module段配置
sudo cp /private/etc/apache2/other/php5.conf /private/etc/apache2/other/php7.conf
sudo vim /private/etc/apache2/other/php7.conf
# 将文件内容,修改为以下代码:
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
第五步: 重启Apache
sudo httpd -k stop
sudo httpd -k start