Mac nginx PHP7 MySQL5.7 环境搭建
在安装之前,有必要解释下apache
和nginx
解析PHP
的原理。以前,我一直使用的是apache
做web服务器,配置过apache
的都应该知道,php
是挂在apache
下的一个模块,当http
请求一个php'文件的话,
apache会调用
php模块进行解析,然后返回
html给
apache`。
而nginx
又点不一样,它必须通过一个FastCGI
的进程管理器来启动php
解析,也就是是php-fpm
,当nginx
接受的php
请求时,它会向它监听的fpm
发送一个请求,当fpm
接受到请求以后,在创建一个子进程来调用php
进行解析。当解析完成后,回收线程,返回html
给nginx
,这里也引出了一个问题,那就是php
鸡肋一般的单例,由于php
的生命周期是伴随着一个请求的开始和结束,当这个请求完毕后,该线程就会自动回收了,所以php
的静态对象,只能存在于一个请求当中,不想Java
等其他语言,静态变量会一直存在。
下面是安装步骤 (提前安装好homebrew)
1、卸载mac
自带的 apache
和php
,有用集成环境,建议也删掉。
先停掉
apache
sudo apachectl stop
然后统统删除掉
sudo rm /usr/sbin/httpd
sudo rm -rf /etc/apache2/
2、安装 Nginx
brew install nginx
安装完后先别急着修改配置文件
先设置权限
sudo chown root:wheel /usr/local/opt/nginx/bin/nginx
sudo chmod u+s /usr/local/opt/nginx/bin/nginx
如果想开机启动的话
mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist(取消开机启动)
nginx命令
sudo nginx #打开nginx
nginx -s reload | reopen | stop | quit #得新加载配置|重启|停止|退出
nginx -t #测试配置是否有语法错误
#如果提示pid丢失的话,就用这句话
nginx -c /usr/local/etc/nginx/nginx.conf
好了
nginx
安装完毕,大家可以localhost:8080
一下,就可以看到nginx
的信息了3、安装
MySQL
brew install mysql
加入开机启动
cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
lauchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist(取消开机启动)
初始化mysql
cd /usr/loacl/Cellar/mysql5.7.11/bin
mysql_install_db
设置root账户和密码
./mysq_secure_installation #一直跟着提示走就行。
4、安装php7
brew install php70 --without-apache --with-fpm
因为我们用
nginx
,所有--without-apache
,并且加上--with-fpm
来编译php
安装完成后,加入全局变量
vim ~/.bash_profile 添加 export PATH=/usr/local/bin:/usr/sbin:$PATH
然后
vim ~/.bashrc 添加 export PATH = "$(brew --prefix homebrew/php/php70)/bin:$PATH"
最后
sourc ~/.bash_profile source ~/.bashrc
然后加入开机自启
mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php70/homebrew.mxcl.php70.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist
6、安装php
扩展包
其实很简单,比如你想安装
php7
的xdebug
扩展,就brew install php70-xdebug
,想安装mcrypt
就brew install php70-mcrypt
是不是so easy,另外你可以brew search php70
可以看到所有php70的扩展库。
7、配置nginx
和php-fpm
nginx
配置 很简单,nginx
的配置文件在/usr/local/etc/nginx/
文件中vim nginx.conf
然后 根据 自己的需求去配置就行,这里就不用详细说了php-fpm
的配置: 先cd
到/usr/local/etc/php
,你可以看到7.0这个文件夹,这没什么配置的,就是把nginx和fpm的端口统一就行
8、最后关键
每次修改了php.ini文件。都要重启php-fpm, 就像启动apache一样,不过这会不用重启nginx
重启步骤
sudo killall php-fpm #先停掉所有php-fpm的进程
cd /usr/local/Cellar/php/7.0/sbin
sbin目录会有php70-fpm
sudo ./php70-fpm start #启动php-fpm
结束语
好了,大概就是这么个步骤,可能大家的实际安装配置过程有所不同,但大体思路就是这样。遇到问题,不要灰心,当你解决了这个问题的时候对你自身是一次提高,每解决完一个bug后的成就是不是满满的^_^!
本作品采用《CC 协议》,转载必须注明作者和本文链接
借宝地mark下
使用Homebrew常见的操作:
安装PHP7.1(FPM方式)
官方软件源
首先加入Homebrew官方的几个软件源
更新源
brew update
安装PHP
根据如下命令选择你要装哪些参数
brew options php71
然后根据选择的参数开始安装
phpdbg:php 调试利器之phpdbg
webp : webp格式图片
安装 PHP 扩展
常用扩展
更多其他扩展请输入以下命令查看
brew search php71
配置文件
/usr/local/etc/php/7.1/php.ini
或其他配置文件,到下面目录查看
cd /usr/local/etc/php/7.1/