Mac下安装php7.0+nginx
来源:互联网 发布:200元左右的礼品 知乎 编辑:程序博客网 时间:2024/05/28 19:24
我刚刚买的Macbook Air,想配置一下php的开发环境。下面利用homebrew自行配置一下:
安装软件特别方便,建议大家没有安装的话最好安装一下,省的被各种以来弄得脑袋疼。在安装之前,有必要解释下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 -r /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
nginx -t #测试配置是否有语法错误
如果提示pid丢失的话,就用这句话
nginx -c "/usr/local/etc/nginx/nginx.conf"
好了nginx安装完毕,大家可以localhost一下,就可以看到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
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist(取消开机启动)
初始化mysql
cd /usr/local/Cellar/mysql/5.7.11/bin
mysql_install_db
设置root账户和密码
./mysql_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
5.安装php5.6.18
brew install php56 --without-apache --with-fpm
vim ~/.bashrc 修改 export PATH = "$(brew --prefix homebrew/php/php70)/bin:$PATH" 为 export PATH = "$(brew --prefix homebrew/php/php70)/bin:$(brew --prefix homebrew/php/php56)/bin$PATH";
然后加入开机自启
mkdir -p ~/Library/LaunchAgentscp /usr/local/opt/php70/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist
6.安装php版本切换公具
brew install php-version
安装完成后 vim ~/.bashrc 添加 source $(brew --prefix php-version)/php-version.sh && php-version 7后面的 &&php-version是你想默认开启的php版本。自己选一个就行
sourc .bashrc后,命令行输入php-version,就可以看到在你电脑中的所有php版本,你想用哪个就php-version 5.6.18 或 php-version7.0.2来切换版本
7.安装php扩展包
其实很简单,比如你想安装php7的xdebug扩展,就brew install php70-xdebug,想安装mcrypt就 brew install php70-mcrypt
如果想按5.6的就 brew install php56-xxxx,是不so easy,另外你可以 brew search php70,可以看到所有php7的扩展库,同理
也可以查php56的
8.配置nginx 和 php-fpm
nginx 配置 很简单,nginx的配置文件在 /usr/local/etc/nginx/文件中 vim nginx.conf
然后 根据 自己的需求去配置就行,这里就不用详细说了
php-fpm的配置: 先cd到 /usr/local/etc/php,你可以看到7.0和5.6这俩个文件夹,至于你想要改哪个,就改就行
这没什么配置的,就是把nginx和fpm的端口统一就行
9.最后关键
每次修改了php.ini文件。都要重启php-fpm,就行启动apache一样,不过这会不用重启nginx
重启步骤
sudo killall php-fpm 先停掉所有php-fpm的进程
cd /usr/local/Cellar/php/版本号/sbin
不同版本的php,sbin目录里会有不同的php-fpm,比如php7.0的是php70-fpm, php5.6.18的是 php56-fpm,你想启动哪个fpm就
敲 sudo ./php70-fpm start 或php56-fpm start就行
结束语,
好了,大概就是这么个步骤,可能大家的实际安装配置过程中有所不同,但大体思路就是这样。遇到问题,不要灰心,解决了任何一个问题都会对自己有一个提高,每次解决完问题后的喜悦,不就当初选择这行的原因吗!
- Mac下安装php7.0+nginx
- mac下安装php7
- Mac 下安装与配置 nginx php7.1
- MAC下PHP7.0+phpredis扩展安装
- Mac下安装php7.0+php5.6+nginx多版本开发环境
- linux 下安装nginx php7
- mac 下安装php7全过程
- Mac环境编译安装Nginx+PHP7
- MAC-brew安装 php7 nginx mysql
- ubuntu下安装php7.0fpm+mysql5.7+nginx
- linux下安装php7+mysql5.7+nginx
- linux下安装php7+mysql5.7+nginx
- linux下nginx和php7安装
- mac下为php7安装memcached扩展
- mac下安装nginx
- mac下安装 nginx
- Mac下安装Nginx
- mac下安装Nginx
- 179. Largest Number(unsolved)
- Java 基础:认识&理解关键字 native 实战篇
- SSL 1021——产生数【最短路】【高精度】
- VC++创建快捷方式、删除快捷方式、添加开始菜单程序组菜单
- bash脚本
- Mac下安装php7.0+nginx
- 银行卡校验规则(Luhn算法)
- python学习-03
- Ubuntu系统中git每次提交都要输入密码怎么办?
- bzoj 4555: [Tjoi2016&Heoi2016]求和 NTT
- QuickHit 项目
- 软件测试的基本原则
- java二叉树
- windows pip install matplotlib 出错