mac下有个很棒的第三方包的管理程序——homebrew,建议大家在mac下搭建php环境的时候使用这个来做。
HomeBrew
brew的安装,直接上官网:http://brew.sh/
一个命令就搞定:
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
brew services restart php
brew services restart nginx
brew services restart mysql
查看brew安装过的服务
brew services list
开启nginx和php-fpm
sudo nginx
sudo php-fpm
关闭命令 nginx -s stop
PHP7
安装好brew之后,先安装php7。安装php7之前,要先更新一下brew的源并加入一些第三方的库:
brew update
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
然后就可以使用brew搜索php70的包并安装了
brew search php70
brew install php70
至于php70的扩展安装,在search的时候就已经有扩展的列表的,按需安装,安装也很简单:
brew install php70-Redis
网站文件目录 /usr/local/var/www
配置路径
/usr/local/etc/php/7.0/php.ini
/usr/local/etc/php/7.0/php-fpm.conf
php-fpm重启 launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist
Nginx
同php7一样:
brew install nginx
安装好后,如果要加入到自启动的话,要先添加一个文件夹:
mkdir -p ~/Library/LaunchAgents
然后把自启动的plist加入到这个文件夹内:
cp /usr/local/Cellar/nginx/1.10.1/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents
然后执行mac的launchctl命令就可以了:
launchctl -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
如果把php也加入自启动的话,也是一样的吧Cellar/php下面的plist加入到LaunchAgents文件夹下并执行launchctl命令即可
运行nginx
sudo nginx #打开 nginx
nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx
nginx -t #测试配置是否有语法错误
//nginx配置文件
sudo vi /usr/local/etc/nginx/nginx.conf
建立对应网站的conf /usr/local/etc/nginx/servers/
配置好后,开启nginx
sudo nginx
sudo nginx -s reload 当新修改配置文件后要重启
MySQL
安装一样简单:
brew install mysql
安装好之后,执行mysql.server start
使用mysql_secure_installration来对mysql进行安全设置,包括设置root密码以及密码安全级别等
1 2 3 4 5 6 |
> Enter current password for root (enter for none): //默认没有密码,直接回车即可 > Change the root password? [Y/n] //是否更改root密码,选择是,然后输入并确认密码 > Remove anonymous users? [Y/n] //是否删除匿名用户,选择是 > Disallow root login remotely? [Y/n] //是否禁止远程登录,选择是 > Remove test database and access to it? [Y/n] //是否删除test数据库,选择是 > Reload privilege tables now? [Y/n] //是否重载表格数据,选择是 |
测试数据库是否安装成功:
1 |
mysql -u root -p |
至此,PHP7+Nginx+Mysql的开发环境就都搭建好了。
常见问题
1、sudo php-fpm 报错WARNING: Nothing matches the include pattern ‘/private/etc/php-fpm.d/*.conf’
cd /private/etc/php-fpm.d
sudo cp www.conf.default www.conf
2、ERROR: failed to open configuration file ‘/private/etc/php-fpm.conf’: No such file or directory (2)
cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
3、ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
修改sudo vi /private/etc/php-fpm.conf
将;error_log = log/php-fpm.log替换为下面的代码
error_log = /usr/local/var/log/php-fpm.log
4、unable to bind listening socket for address ‘127.0.0.1:9000’: Address already in use (48)
cd /etc/php-fpm.d/ 然后sudo vi www.conf 修改127.0.0.1:9000 端口改为9999
然后开启php-fpm命令:sudo php-fpm
nginx配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//www.phpnote.cc.conf server{ #监听端口 listen 80; #域名设定,可以有多个 server_name www.blog_test.com; root /Users/mac/sites/blog/public; # 该项要修改为你准备存放相关网页的路径 location / { # 定义路径下默认访问的文件名 index index.php; # 打开目录浏览功能,可以列出整个目录 #autoindex on; } #proxy the php scripts to php-fpm location ~ \.php$ { # fastcgi配置 include /usr/local/etc/nginx/fastcgi.conf; # 指定是否传递4xx和5xx错误信息到客户端 fastcgi_intercept_errors on; # 指定FastCGI服务器监听端口与地址,可以是本机或者其它 fastcgi_pass 127.0.0.1:9000; } } |
修改mac的nginx后 执行sudo nginx sudo nginx -s reload
更多待涛哥实践总结…