Mac环境下Nginx+PHP+MySQL的安装与配置

时间:2021-07-13 20:34:56
Mac环境:
~  uname -anp
Darwin Linux-Fans.local 13.3.0 Darwin Kernel Version 13.3.0: Tue Jun 3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64 x86_64 i386


为方便Mac环境下软件的安装,这里我使用了homebrew软件来快速搭建环境。

homebrew很容易安装,只需要一条简单的Ruby命令即可(当然,前提是你要有Ruby环境,默认Mac系统已经安装):

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

 

有关homebrew更详细的说明,大家可以到其官网查看:

http://brew.sh
简单的说,它就类似于Linux环境下的apt-get, dpkg, rpm之类的安装工具。


一、安装Nginx

1.1 使用brew快速安装:

brew install nginx

这样,brew会安装最新的Nginx到本地,如果想使用其他版本的nginx,可以执行
brew edit nginx
来修改formula中对应的链接信息就可以了。

1.2 默认,brew会将Nginx安装到

/usr/local/Cellar
下nginx目录,并且会根据你安装的Nginx版本号生成子目录,如1.6.0_1,这里有个关键的目录html是一个软链接,通过ls -l命令确定其链接到的地址,一般应该是在/Library/WebServer目录。这个目录就是Nginx默认的部署项目目录。

PS:很坑的是,我的html最后链接到了/var/www目录,而我还一直傻傻的认为是/Library/WebServer目录。

1.3 Nginx的配置文件被brew放置在了

/usr/local/etc/nginx
目录下。为了能支持对php文件的访问,稍后我们会对其进行配置。

1.4 Nginx可以在命令行下,通过如下命令操作:

nginx:启动nginx服务器

nginx -s stop | quit | reopen | reload

具体可通过nginx -h查看,

二、安装MySQL

刚开始我在使用brew安装mysql时出了点问题,导致安装失败。为了节约时间,我到官网下载了dmg包来安装。

官网提供的dmg包安装十分方便,具体的安装说明可以查看官方说明文档

http://dev.mysql.com/doc/refman/5.5/en/macosx-installation-pkg.html
简单来看,你只需双击下载的dmg包,里面包含了两个pkg文件和一个prefPane文件(还一个说明文档)。你只要点击两个pkg文件安装即可。为了便于操作,你也可以选择安装prefPane文件,这个文件可以将对mysql的启动、停止操作放置在系统的偏好设置中,如下图示:

Mac环境下Nginx+PHP+MySQL的安装与配置

其配置文件和操作的bin文件目录,上述给出的链接中也已说明:

When installing using the package installer, the files are installed into a directory within /usr/local matching the name of the installation version and platform. For example, the installer file mysql-5.5-osx10.7-x86_64.dmg installs MySQL into /usr/local/mysql-5.5-osx10.7-x86_64/ . The following table shows the layout of the installation directory.
During the package installer process, a symbolic link from /usr/local/mysql to the version/platform specific directory created during installation will be created automatically.


翻译过来就是,MySQL会安装在/usr/local下面,以dmg文件名命名的目录。并且在/usr/local目录下创建了一个`mysql`软链接指向了安装目录。

三、搭建PHP环境

Mac虽然预装了PHP,但是有很多的功能并没有安装,所以我们这里选择重新安装PHP。

3.1 brew默认没有对php的支持,所以需要我们使用`brew tap`命令还安装brew的第三方程序包。这里我们选择的是josegonalez的php安装包:

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
3.2 可以使用`brew search php`来搜索下brew安装了哪些php版本。在这里,我选择使用php5.5来安装php(内嵌了FPM):

brew install php55 \
--with-debug \
--with-fpm \
--with-gmp \
--with-homebrew-openssl \
--with-imap --with-intl \
--with-libmysql=/usr \
--without-bz2 \
--without-pcntl \
--without-pear

3.3 需要注意的是,--with-libmysql可能要带上mysql.h所在的目录或其父目录。这里我为了方面,直接使用了顶层目录(当然不是`/`根目录啦:))。


如果上面的步骤进行的顺利的话,解析来我们就让Nginx对PHP进行支持。

找到Nginx的配置目录nginx.conf。如果在第一步中使用的是brew的默认安装的话,应该是在

/usr/local/etc/nginx/
目录。打开该文件,找到下面两处配置:

location / {
root html;
index index.html index.htm;
}

#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}


这里,在第一处的index.htm后面添加`index.php`即可(注意不要少了最后的分号哦);


请将第二处每行行首的注释(#)逐一删去,并修改"SCRIPT_FILENAME /scripts$fastcgi_script_name" 为:

SCRIPT_FILENAME $document_root$fastcgi_script_name


有关Nginx的配置信息说明,大家可以自行去搜索,这里不再赘述。


不出意外的话,你只要在/Library/WebServer目录下创建一个index.php文件就可以顺序访问了。这里的/Library/WebServer请查看第一部分的说明。

~ nginx //启动Nginx
~ php-fpm // 启动fpm
//MySQL数据库的启动使用了prefPane提供的启动方式

根据nginx.conf中的配置,在浏览器中输入localhost:8080即可。。。久违的页面终于粗线了:)


PS:在Mac上大家环境可能并不会那么顺利,只要大家耐住性子,慢慢分析原因,到网上搜索答案,相信一定会克服困难的。



参考文献:

1、Mac下Nginx和PHP的安装:http://www.jb51.net/article/42715.htm

2、MySQL 5.5 document:http://dev.mysql.com/doc/refman/5.5/en/macosx-installation-pkg.html