目录
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 webmaster@dummy-host2.example.com
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