mac下使用homebrew安装安装、配置nginx、mysql、php-fpm的方法。

一、前话:

1.1、环境选择:

重新在mac上配置php,原本mac上就自带有apach、php以及pgsql,如果图简单的话,直接用就可以了,不过在安装前我仔细思考了一下几个问题:

选apache还是nginx:两个我了解的都比较少,相对而言我接触nginx比较多,服务器用的也是nginx,没办法谁叫nginx负载高呢。为了更好的接触nginx的环境,我决定还是统一下环境,方便今后使用,这是这次的主要关键;

安装php:Mac os自带了php,好像是5.3.8,版本比较落后,不过这不碍事,因为以前我都是通过php-osx by Liip来管理php,所以不担心版本问题。不过php-osx by Liip好像没有fmp相关的配置,这样我我要和nginx一起用的话就相对比较麻烦了,那我只能选择其他方案了

安装mysql:这个就没有什么好疑问的了,目前我肯定不会去用pgsql,毕竟没接触过,需要有学习成本的,所以我在这篇纪录中把关于pgsql的部分都去掉了

1.2、那该如何安装:

既然我否定了系统自带的环境,那么就要通过别的方式去安装了,比如说手动编译。如果是手动编译的话,那么就会遇到下面几个问题:

编译费事,php依赖那么多程序,一个个安装,太累!

如果以后更新怎么办?灾难!!

不过好在mac下有自己的第三方管理程序:homebrew,而且相对而言我觉得他可能在某些方面更优越于linux下的apt-get、yum。如果通过homebrew来安装、管理运行环境的话,至少可以解决我几个问题:

安装问题,我不用繁琐的去安装依赖程序

升级问题,只需要brew update一次升级所有程序

版本问题,homebrew版本更新比较及时,而apt-get、yum来说,今年用的基本是几年前的稳定版本了

OK,下面的安装都是基于 homebrew,如果不熟悉或者还没安装有 homebrew 的话,可以查看这篇关于:Mac开发者利器-Homebrew介绍及安装。

二、安装nginx

2.1、安装:

用 brew 一键安装 nignx:

1

brew install nginx

如果需要安装其他 nginx 的版本,可以 “brew edit nginx” 打开修改 nginx 的安装信息包 formula,默认会用 vi 打开,在文件开头处修改 nginx 相应版本的下载地址就行。

2.2、配置

brew 执行完后,nginx 就安装好了。可以用以下指令对 nginx 进行操作:

复制代码 代码如下:

打开 nginx

sudo nginx

重新加载|重启|停止|退出 nginx

nginx -s reload|reopen|stop|quit

打开 nginx 后,默认的访问端口 8080,如果要改为常用的 80 端口,则要修改 “/usr/local/etc/nginx/nginx.conf” 下监听(listen)端口值。

默认的文件访问目录(root)是 “/usr/local/Cellar/nginx/1.4.2/html”(这里的1.4.2是安装的nginx的版本,文件夹名以安装的nginx版本为准)。

2.3、把 nginx 设置为开机启动运行:

复制代码 代码如下:

mkdir -p ~/Library/LaunchAgents/

cp /usr/local/Cellar/nginx/1.4.2/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

不过试了一下,不是超级用户登陆,而是普通用户登陆,并且监听的端口在1024以下的(例如把默认的8080端口改为了80端口),nginx 开机是启动不了。因此,要 nginx 开机启动的话,需要给予它管理员权限:

复制代码 代码如下:

2

sudo chown root:wheel /usr/local/Cellar/nginx/1.4.2/bin/nginx

sudo chmod u+s /usr/local/Cellar/nginx/1.4.2/bin/nginx

三、安装mysql

3.1、安装:

复制代码 代码如下:

brew install mysql

homebrew安装的版本同样是当前最新的稳定版,安装的过程比较简单,不过初始化就相对麻烦很多了,这里我失败了很多次。

3.2、配置:

3.2.1、初始化

初始安装 mysql 的一些配置数据库(例如:information_schema、mysql)

复制代码 代码如下:

sudo mysql_install_db \

–verbose –user=whoami \

–basedir=”$(brew –prefix mysql)” \

–datadir=/usr/local/var/mysql \

–tmpdir=/tmp \

–explicit_defaults_for_timestamp

这里我遇到了两个问题,过程都没纪录,这里简单提下解决方案:

系统建议我添加“–explicit_defaults_for_timestamp”;

安装过程中会遇到几个error,说是db的几个文件不存在;

网上搜索了下,大多是建议将/usr/local/var/mysql这个目录修改下权限;

我操作后发现可能不是这样的,造成这个问题在于我在之前操作遇到了错误中止了,生成了一个不完整var目录,所以每次安装失败我就删除以下文件,重新初始化就好了

复制代码 代码如下:

sudo rm /usr/local/opt/mysql/my.cnf

sudo rm -R /usr/local/var/mysql/

待安装完毕后,会出现一大段mysql相关信息,运行下面的命令启动mysql

复制代码 代码如下:

/usr/local/opt/mysql/bin/mysqld_safe &

执行完后,就可以在终端里运行 “mysql”,直接进入mysql数据库里。对,不用输入密码,可以直接连接,初始默认是可以匿名访问的。

3.2.2、修改密码

超级用户 “root” 也是没设密码,要设密码的话可以执行下面指令

复制代码 代码如下:

/usr/local/opt/mysql/bin/mysqladmin -u root password ‘new-password’

现在访问 mysql 还是不用密码就可以连接,如果要设置一些登陆密码的安全访问限制,则需执行下面的 mysql安全安装指令

复制代码 代码如下:

/usr/local/opt/mysql/bin/mysql_secure_installation

主要是设置修改root密码(设置过了可以不用设置,略过)、删除匿名访问、删除root网络访问、删除test数据库。指令执行完后,登陆mysql就需要密码验证了

复制代码 代码如下:

mysql -u root -p

3.3、开机启动mysql

复制代码 代码如下:

mkdir -p ~/Library/LaunchAgents/

cp /usr/local/Cellar/mysql/5.6.13/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

至此,mysql安装完毕。

四、安装php、php-fpm…

4.1、安装

Mac是预装了php,不过很多扩展都没安装,目测最多只能在终端里执行下php指令,所以我选择重新安装php。由于 brew 默认是没有 php 安装,所以要使用 “brew tap” 来安装 brew 的第三方程序包,这里使用 josegonzalez 的php安装包,具体操作如下:

复制代码 代码如下:

brew tap homebrew/dupes

brew tap josegonzalez/homebrew-php

执行完后,就可以用 brew 安装php了。这里php有几个版本可以安装,具体可以执行 “brew search php” 查看一下有什么php版本可以安装,一般会有“php52、php53、php54、php55”版本,我安装的是最新的php5.5版本。由于PHP5.5版本已经内嵌了 FPM(FastCGI Process Manager),在安装选项里标明就行,本人 php 的安装配置指令如下:

复制代码 代码如下:

sudo brew install php55 \

–with-debug \

–with-fpm \

–with-gmp \

–with-homebrew-openssl \

–with-imap –with-intl \

–with-libmysql \

–without-bz2 \

–without-mysql \

–without-pcntl \

–without-pear

更多的安装选项可以通过 “brew options php55″ 查看。

提示:–with-cgi不能和–with-fpm一起安装,互相冲突

指令执行完后,php 跟 php-fpm 就安装好了。

4.2、配置

由于是重装php,之前系统预装的php还没卸载,因此在终端调用php时,还是以之前系统的php版本做解析,所以这里需要修改path,指定 php 的解析路径。在~/.bashrc(没有则创建)最后加入一行:

复制代码 代码如下:

export PATH=”(brew−−prefixphp54)/bin:PATH”

[html]

[code]

source ./.profile

不存在这个文件的朋友请参照这片文章进行配置:Mac系统终端命令行不执行命令 总出现command not found解决方法

OK,php-fpm安装完成。

要修改配置 php 或者 php-fpm 的话,可以修改 “/usr/local/etc/php/5.5/php.ini” 、 “/usr/local/etc/php/5.5/php-fpm.conf”。

详细配置方法可以参照相关资料:

php-fpm 启动参数及重要配置详解

Linux平滑编译升级php至5.5.0

启动 php-fpm 的话就直接在终端里执行 “php-fpm”,默认打开 php-fpm 会显示一个状态 shell 出来,也可以把 php-fpm 的配置文件里的 “daemonize = no” 改为 “daemonize = 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/

launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php55.plist

为了方便,写了个启动、关闭、重启 php-fpm 的 shell 脚本:

复制代码 代码如下:

!/bin/sh

param=$1

start()

{

fpms=ps aux | grep -i "php-fpm" | grep -v grep | awk '{print $2}'

if [ ! -n “$fpms” ]; then

php-fpm

echo “PHP-FPM Start”

else

echo “PHP-FPM Already Start”

fi

}

stop()

{

fpms=ps aux | grep -i "php-fpm" | grep -v grep | awk '{print $2}'

echo $fpms | xargs kill -9

for pid in $fpms; do

if echo $pid | egrep -q '^[0-9]+$'; then

echo "PHP-FPM Pid $pid Kill"

else

echo "$pid IS Not A PHP-FPM Pid"

fi

done

}

case $param in

‘start’)

start;;

‘stop’)

stop;;

‘restart’)

stop

start;;

*)

echo “Usage: ./phpfpm.sh start|stop|restart”;;

esac

五、设置 nginx 的 php-fpm 配置

在server块中添加解析文件类型“index index.html index.htm index.php;”

复制代码 代码如下:

server {

listen 80;

server_name localhost;

index index.html index.htm index.php;

……

}

打开 nginx 默认注释掉的php location设置,修改如下(具体配置参数,例如路径,这里以我本地安装为准):

复制代码 代码如下:

location ~ .*.(php|php5)?{

#fastcgi_pass  unix:/tmp/php-cgi.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;

#include fcgi.conf;

}

修改目录用户、用户组:

复制代码 代码如下:

sudo chown www:www /Library/WebServer/public_html

OK,这样就可以在访问目录下(默认是/Library/WebServer/public_html)执行 php 文件了。嗯,赶快输出一下 “phpinfo()” 吧~ 复制代码 代码如下:

phpfpm怎么连接mysql_配置nginx、mysql、php-fpm的方法相关推荐

  1. Ubuntu Linux配置Nginx+MySQL+PHP+phpMyAdmin详细步骤

    博主之前一直用的是apache,随着网站负荷量增高,感觉apache稍微有点力不从心了.随着nginx越来越流行,而且其功能强大,博主准备采用nginx作为自己的服务器啦. 每当到了环境配置的时候,博 ...

  2. mysql安装 张宴_Linux_centos5 源码安装Nginx + mysql + apache + php的方法,主要依照的是张宴的一篇博文 - phpStudy...

    centos5 源码安装Nginx + mysql + apache + php的方法 主要依照的是张宴的一篇博文<http://blog.s135.com/post/366/>,安装的软 ...

  3. plsql连接mysql_安装了mysql和pl/sql,怎么配置让pl/sql能联接mysql数据库

    64位环境下,使用PL/SQL Developer连接Oracle: •1. 下载32位Oracle InstantClient,并展开到某目录,例如C:\instantclient-basic-nt ...

  4. 64位win7搭建php mysql_在64位Win7系统中配置Apache+MySQL+PHP环境的方法

    B/S架构当下很流行,因为B/S架构有众多优点,例如:用户只需有浏览器就可使用,维护升级都比较方便,跨平台,等等.本文就讲讲Windows+Apache+PHP+Mysql的开发环境如何配置. WAM ...

  5. shell 连接 mysql_如何把mysql语句写在shell里,运行后仍然是一个与mysql数据库连接的状态?...

    展开全部 本文介绍 MySQL 8.0 shell 子模块 Util 的两个导入特性 importTable/import_table(JS和python 版本的命名差62616964757a6869 ...

  6. c语言连接mysql_聊聊数据库MySQL、SqlServer、Oracle的区别,哪个更适合你?

    一.MySQL 优点: 体积小.速度快.总体拥有成本低,开源: 支持多种操作系统: 是开源数据库,提供的接口支持多种语言连接操作 : MySQL的核心程序采用完全的多线程编程.线程是轻量级的进程,它可 ...

  7. 餐饮收银管理系统如何连接mysql_基于jsp+mysql+Spring+mybatis的SSM餐厅点餐收银管理系统...

    运行环境: 最好是java jdk 1.8,我们在这个平台上运行的.其他版本理论上也可以. IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: 最好是Tomcat 7 ...

  8. CentOS6.5 搭建 LNMP (linux + nginx + mysql + php)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1:查看环境: 1 2 [root@10-4-14-168 html]# cat /etc/redh ...

  9. centos7.4下安装配置PHP服务(源码安装)并配置nginx支持php

    一.检查php是否已经安装,使用php -v,是否能够看到版本号,或者使用rpm -qa | grep php查看是否安装过. # yum remove php* -y 二.依赖包安装 Linux软件 ...

最新文章

  1. ERP项目管理,哪一环才是关键节点?
  2. 写给正在入坑linux系统的伙伴
  3. 如何利用弹幕,打造出非凡的观看体验
  4. 19.7 主动模式和被动模式 19.8 添加监控主机 19.9 添加自定义模板 19.10 处理图形...
  5. 飞桨第四节七日cv经典网络 2020.4.3
  6. ele表格操作区根据数据_Vue数据绑定
  7. 区间调度之区间交集问题
  8. 沪江日语电台首度在线直播后续花絮(附直播片段)
  9. 计算机专业在沈阳有什么发展,985 计算机专业在全国 TOP10 在沈阳
  10. 元素内容必须由格式正确的字符数据或标记组成_Blockly Fields积木表单元素
  11. CSS3 Gradient渐变
  12. 扫描仪共享工具(BlindScanner Pro) 3.23 特别版
  13. 成本更低、更优观看体验——自研S265编解码器解析
  14. xp系统与时间服务器同步出错,解决XP时间同步出错的问题
  15. Mac下PHP连接MySQL报错"No such file or directory"的解决办法
  16. Keil MDK中编译连接选项--keep的用法
  17. 神器集合!这12个免费工具可以让您的工作更高效
  18. 网易云歌单信息爬取及数据分析(1)爬虫部分
  19. python怎么读取石墨表格_用python和柳比歇夫工作法,自动做每周的周总结,导出周小节图表...
  20. 机房消防报警系统及气体灭火防护的设计方法

热门文章

  1. python读取dat文件经纬度_自动提取kml文件中的经纬度
  2. android ant批量打包
  3. Linux 系统安装后优化项常见操作
  4. Win10深度学习环境配置(CUDA+cuDNN+TensorFlow-gpu+Keras)
  5. 小猪的Python学习之旅 —— 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中
  6. win10更新右键没有卸载怎么解决?
  7. 一般总账科目 调整 为统驭科目时报错:只以本位币计的统驭科目余额未定义
  8. 【数据库系统原理】数据库课内实验
  9. H3C-S5560交换机设置
  10. 【最新版】宝塔面板7.9.3企业版 开心破解版一键脚本