配色: 字号:
配置nginx、mysql、php-fpm的方法
2016-10-24 | 阅:  转:  |  分享 
  
mac下使用homebrew安装安装、配置nginx、mysql、php-fpm的方法。?一、前话:?1.1、环境选择:?重新在mac上配置
php,原本mac上就自带有apach、php以及pgsql,如果图简单的话,直接用就可以了,不过在安装前我仔细思考了一下几个问题
:?选apache还是nginx:两个我了解的都比较少,相对而言我接触nginx比较多,服务器用的也是nginx,没办法谁叫ngi
nx负载高呢。为了更好的接触nginx的环境,我决定还是统一下环境,方便今后使用,这是这次的主要关键;?安装php:Macos自
带了php,好像是5.3.8,版本比较落后,不过这不碍事,因为以前我都是通过php-osxbyLiip来管理php,所以不担心
版本问题。不过php-osxbyLiip好像没有fmp相关的配置,这样我我要和nginx一起用的话就相对比较麻烦了,那我只能选
择其他方案了?安装mysql:这个就没有什么好疑问的了,目前我肯定不会去用pgsql,毕竟没接触过,需要有学习成本的,所以我在这篇
纪录中把关于pgsql的部分都去掉了?1.2、那该如何安装:?既然我否定了系统自带的环境,那么就要通过别的方式去安装了,比如说手动
编译。如果是手动编译的话,那么就会遇到下面几个问题:?编译费事,php依赖那么多程序,一个个安装,太累!?如果以后更新怎么办?灾难
!!?不过好在mac下有自己的第三方管理程序:homebrew,而且相对而言我觉得他可能在某些方面更优越于linux下的apt-g
et、yum。如果通过homebrew来安装、管理运行环境的话,至少可以解决我几个问题:?安装问题,我不用繁琐的去安装依赖程序?升
级问题,只需要brewupdate一次升级所有程序?版本问题,homebrew版本更新比较及时,而apt-get、yum来说,今
年用的基本是几年前的稳定版本了?OK,下面的安装都是基于homebrew,如果不熟悉或者还没安装有homebrew的话,可以
查看这篇关于:Mac开发者利器-Homebrew介绍及安装。?二、安装nginx?2.1、安装:?用brew一键安装nign
x:?1?brewinstallnginx?如果需要安装其他nginx的版本,可以“breweditnginx”打
开修改nginx的安装信息包formula,默认会用vi打开,在文件开头处修改nginx相应版本的下载地址就行。?2
.2、配置?brew执行完后,nginx就安装好了。可以用以下指令对nginx进行操作:?复制代码代码如下:打开ngi
nxsudonginx重新加载|重启|停止|退出nginxnginx-sreload|reopen|stop|quit?打
开nginx后,默认的访问端口8080,如果要改为常用的80端口,则要修改“/usr/local/etc/nginx/
nginx.conf”下监听(listen)端口值。?默认的文件访问目录(root)是“/usr/local/Cellar/n
ginx/1.4.2/html”(这里的1.4.2是安装的nginx的版本,文件夹名以安装的nginx版本为准)。?2.3、把n
ginx设置为开机启动运行:?复制代码代码如下:mkdir-p~/Library/LaunchAgents/cp/usr
/local/Cellar/nginx/1.4.2/homebrew.mxcl.nginx.plist~/Library/Lau
nchAgents/?launchctlload-w~/Library/LaunchAgents/homebrew.mxcl
.nginx.plist不过试了一下,不是超级用户登陆,而是普通用户登陆,并且监听的端口在1024以下的(例如把默认的8080端口
改为了80端口),nginx开机是启动不了。因此,要nginx开机启动的话,需要给予它管理员权限:?复制代码代码如下:2?
sudochownroot:wheel/usr/local/Cellar/nginx/1.4.2/bin/nginx?sud
ochmodu+s/usr/local/Cellar/nginx/1.4.2/bin/nginx三、安装mysql?3.1、
安装:?复制代码代码如下:brewinstallmysqlhomebrew安装的版本同样是当前最新的稳定版,安装的过程比较简
单,不过初始化就相对麻烦很多了,这里我失败了很多次。?3.2、配置:?3.2.1、初始化?初始安装mysql的一些配置数据库(
例如:information_schema、mysql)?复制代码代码如下:sudomysql_install_db\?–v
erbose–user=whoami?\?–basedir=”$(brew–prefixmysql)”\?–datadir
=/usr/local/var/mysql\?–tmpdir=/tmp\?–explicit_defaults_for_tim
estamp这里我遇到了两个问题,过程都没纪录,这里简单提下解决方案:?系统建议我添加“–explicit_defaults_fo
r_timestamp”;?安装过程中会遇到几个error,说是db的几个文件不存在;?网上搜索了下,大多是建议将/usr/loc
al/var/mysql这个目录修改下权限;?我操作后发现可能不是这样的,造成这个问题在于我在之前操作遇到了错误中止了,生成了一个
不完整var目录,所以每次安装失败我就删除以下文件,重新初始化就好了?复制代码代码如下:sudorm/usr/local/o
pt/mysql/my.cnf?sudorm-R/usr/local/var/mysql/待安装完毕后,会出现一大段mysq
l相关信息,运行下面的命令启动mysql?复制代码代码如下:/usr/local/opt/mysql/bin/mysqld_sa
fe&执行完后,就可以在终端里运行“mysql”,直接进入mysql数据库里。对,不用输入密码,可以直接连接,初始默认是可以匿
名访问的。?3.2.2、修改密码?超级用户“root”也是没设密码,要设密码的话可以执行下面指令?复制代码代码如下:/usr
/local/opt/mysql/bin/mysqladmin-urootpassword‘new-password’现在
访问mysql还是不用密码就可以连接,如果要设置一些登陆密码的安全访问限制,则需执行下面的mysql安全安装指令?复制代码
代码如下:/usr/local/opt/mysql/bin/mysql_secure_installation主要是设置修改roo
t密码(设置过了可以不用设置,略过)、删除匿名访问、删除root网络访问、删除test数据库。指令执行完后,登陆mysql就需要密
码验证了?复制代码代码如下:mysql-uroot-p3.3、开机启动mysql?复制代码代码如下:mkdir-p~
/Library/LaunchAgents/cp/usr/local/Cellar/mysql/5.6.13/ww.mntuku
.cn/launchctlload-w~/Library/LaunchAgents/homebrew.mxcl.mysql
.plist至此,mysql安装完毕。?四、安装php、php-fpm…?4.1、安装?Mac是预装了php,不过很多扩展都没安装
,目测最多只能在终端里执行下php指令,所以我选择重新安装php。由于brew默认是没有php安装,所以要使用“brew
tap”来安装brew的第三方程序包,这里使用josegonzalez的php安装包,具体操作如下:?复制代码代码如
下:brewtaphomebrew/dupes?brewtapjosegonzalez/homebrew-php执行完后,
就可以用brew安装php了。这里php有几个版本可以安装,具体可以执行“brewsearchphp”查看一下有什么p
hp版本可以安装,一般会有“php52、php53、php54、php55”版本,我安装的是最新的php5.5版本。由于PHP5.
5版本已经内嵌了FPM(FastCGIProcessManager),在安装选项里标明就行,本人php的安装配置指令如下
:?复制代码代码如下:sudobrewinstallphp55\?–with-debug\?–with-fpm\?–
with-gmp\?–with-homebrew-openssl\?–with-imap–with-intl\?–with
-libmysql\?–without-bz2\?–without-mysql\?–without-pcntl\?–wit
hout-pear更多的安装选项可以通过“brewoptionsphp55″查看。?提示:–with-cgi不能和–wit
h-fpm一起安装,互相冲突?指令执行完后,php跟php-fpm就安装好了。?4.2、配置?由于是重装php,之前系统预装
的php还没卸载,因此在终端调用php时,还是以之前系统的php版本做解析,所以这里需要修改path,指定php的解析路径。在
~/.bashrc(没有则创建)最后加入一行:?复制代码代码如下:exportPATH=”(brew??prefixphp54
)/bin:PATH”?[html]?[code]?source./.profile不存在这个文件的朋友请参照这片文章进行配置:
Mac系统终端命令行不执行命令总出现commandnotfound解决方法?OK,php-fpm安装完成。?要修改配置ph
p或者php-fpm的话,可以修改“/usr/local/etc/php/5.5/php.ini”、“/usr/loc
al/etc/php/5.5/php-fpm.conf”。?详细配置方法可以参照相关资料:?php-fpm启动参数及重要配置详解
?Linux平滑编译升级php至5.5.0?启动php-fpm的话就直接在终端里执行“php-fpm”,默认打开php-f
pm会显示一个状态shell出来,也可以把php-fpm的配置文件里的“daemonize=no”改为“dae
monize=yes”,就会以后台守护进程的方式启动,对于刚修改的配置文件,可以执行“php-fpm-t”来检测配置有没
有问题。?4.3、开机启动?开机启动php-fpm(下面的5.5.3是当前安装php的具体版本号):?复制代码代码如下
:mkdir-p~/Library/LaunchAgents/cp/usr/local/Cellar/php54/5.5.3
/homebrew-php.josegonzalez.php55.plist~/Library/LaunchAgents/?la
unchctlload-w~/Library/LaunchAgents/homebrew-php.josegonzalez.
php55.plist为了方便,写了个启动、关闭、重启php-fpm的shell脚本:?复制代码代码如下:!/bin/s
hparam=$1start()?{?fpms=psaux|grep-i"php-fpm"|grep-vgrep
|awk''{print$2}''?if[!-n“$fpms”];then?php-fpm?echo“PHP-F
PMStart”?else?echo“PHP-FPMAlreadyStart”?fi?}stop()?{?fpms=ps
aux|grep-i"php-fpm"|grep-vgrep|awk''{print$2}''?echo$f
pms|xargskill-9forpidin$fpms;doifecho$pid|egrep-q''
^[0-9]+$'';thenecho"PHP-FPMPid$pidKill"elseecho"$pidISN
otAPHP-FPMPid"fidone}case$paramin?‘start’)?start;;?‘stop’)?
stop;;?‘restart’)?stop?start;;?)?echo“Usage:./phpfpm.shstart|
stop|restart”;;?esac五、设置nginx的php-fpm配置?在server块中添加解析文件类型“ind
exindex.htmlindex.htmindex.php;”?复制代码代码如下:server{?listen80;
?server_namelocalhost;?indexindex.htmlindex.htmindex.php;?……?
}打开nginx默认注释掉的phplocation设置,修改如下(具体配置参数,例如路径,这里以我本地安装为准):?复制代码
代码如下:location~..(php|php5)?{???#fastcgi_pass??unix:/tmp/php-c
gi.sock;???fastcgi_pass??127.0.0.1:9000;???fastcgi_index?index.php;???fastcgi_param??SCRIPT_FILENAME??/Library/WebServer/public_htmlfastcgi_script_name;?include/usr/local/etc/nginx/fastcgi_params;?#includefcgi.conf;?}修改目录用户、用户组:?复制代码代码如下:sudochownwww:www/Library/WebServer/public_htmlOK,这样就可以在访问目录下(默认是/Library/WebServer/public_html)执行php文件了。嗯,赶快输出一下“phpinfo()”吧~?
献花(0)
+1
(本文系雨亭之东首藏)