分享背景
由于一直在虚拟机的状态下开发PHP,尝试一下mac本地搭建环境.mac本身是自带Apache+php的,在低版本的mac系统中,mac中的php版本是5.6的版本.
本文分享的是在mac的10.13版本.前提是本地安装了brew包管理工具,如果还没安装的可以参考官网文档安装,传送门.
安装步骤
1.停止本地的Apache服务
sudo apachectl stop
2.安装NGINX
brew install nginx
3.启动NGINX
// 查看帮助命令
nginx -v
// 重启命令
nginx -s reload
// 每次我们配置了虚拟主机之后,都要使用下面的命令进行重启
sudo nginx -s reload
如果出现如下错误信息
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决思路是(前提是使用的brew包管理工具安装的,如果是其他的安装方式根据情况而定)
mkdir /usr/local/Cellar/nginx/1.15.12/logs
4.访问NGINX,打开浏览器,输入如下网址,正确的情况就可以看到如下的截图.
127.0.0.1:8080
5.NGINX项目目录介绍,<font color='red'>通过上面的步骤,就表示NGINX已经完成了.这里有几个文件,我们需要关注一下.
1.nginx配置目录
/usr/local/etc/nginx
2.nginx的项目根目录
/usr/local/var/www
6.配置php(由于mac的高版本中已经内置了PHP7.1的版本,该文章也是基于这个基础上操作的.后续完善该文章,实现一个多版本的切换.)
1.去掉nginx.conf中如下代码中的注释(在去掉之前最好备份一份 shell cp nginx.conf nginx.conf.bak)
)
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
该段代码的主要意思就是让nginx能够解析到php,不然你去访问php的文件,nginx会默认下载该php文件.在Apache中是以模块的方式加载的php,就是去掉
LoadModule php_module libexec/apache2/libphp7.so
2.修改1中的部分配置
原配置中的值为
/scripts$fastcgi_script_name
需要修改为
$document_root$fastcgi_script_name
该代码主要的意思就是让nginx能够识别到nginx配置文件中的root项.不然会报not find file错误信息.
<font color='red'>重启nginx服务,php nginx -s reload
3.配置php-fpm文件
sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
修改我们新复制的php-fpm.conf文件中的如下配置项目.修改为下面的示例
pid=/var/run/php-fpm.pid
error_log=/var/log/php-fpm.log
4.启动php-fpm服务
sudo php-fpm
启动服务的时候可能会遇到下面的问题,反正我是遇到了(下面的路径根据你图片指示的路径来定,可能有的环境路径不一致).解决办法是
cp /data/server/php7/etc/php-fpm.d/www.conf.default /data/server/php7/etc/php-fpm.d/www.conf
然后在启动一次,即可.
5.编写测试文件,我们找到/usr/local/var/www目录,创建一个test.php的文件.写入如下代码.
phpinfo();
6.测试效果
打开浏览器,访问http://localhost/test.php ,即可看到如下效果
7.如何实现PHP版本升级
在上面的示例中,我们安装的PHP版本为7.1的版本.但在一些情况下面,我们可能需要更高的版本.下面升级的示例则是使用brew包管理工具进行升级.
查看brew可安装的PHP包
brew search php
其中带√的是当前安装的版本,接下里我们就可以安装新版本
brew install php72
启动服务
sudo brew services start php72
这样我们就不需要再次去执行shell sudo php-fpm
,否则会发生端口冲突.这种情况下,系统默认的PHP版本还是7.1,同时我们也便于实现PHP多版本管理.
新PHP版本安装位置
/usr/local/Cellar/php@7.2
© 著作权归作者所有