mac下安装 apache/nginx/MySQL/PHP 多版本
1. 安装 Homebrew
1.1 安装
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
以上命令粘贴至终端,然后回车,等待终端提示你输入密码,程序就会开始自动安装。等待完成后,以使用下面的命令查看 Homebrew 是否正确安装:
$ brew -v
Homebrew 1.2.0
Homebrew/homebrew-core (git revision 1ee6; last commit 2017-05-05)
Homebrew安装成功后,就可以使用 brew 命令了。
1.2 添加第三方仓库
我们将需要使用一些来自第三方仓库的软件,所以需要添加额外的仓库:
$ brew tap homebrew/versions
$ brew tap homebrew/php
$ brew tap homebrew/apache
$ brew update
第三方仓库全部安装完成之后,就可以开始配置环境了。
2. 安装 Apache
相关链接
在 MacOS Sierra 上安装 Apache 和多个版本的 PHP
Apache 的 httpd.conf 详解
2.1 安装
最新的 macOS 10.12 预装了 Apache 2.4,但苹果移除了一些必要的脚本,所以 Apache 和 Homebrew 配合使用将会变得困难。当然解决该问题的方法就是,使用 Homebrew 重新安装配置 Apache,并使其运行在标准端口上:
# 关闭正在运行的老版本 apache
$ sudo apachectl stop
# 移除 apache 开机自动加载脚本
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
# 使用 brew 安装 apache
$ brew install httpd24 --with-privileged-ports --with-http2
等待下载并且编译安装完成之后,会有以下结果:
/usr/local/Cellar/httpd24/2.4.25: 212 files, 4.4M, built in 1 minute 45seconds
这里的路径很重要,因为在接下来的步骤中,我们都需要使用这个路径,在这个例子中,路径是 /usr/local/Cellar/httpd24/2.4.25/
,如果你的路径不是这个,则在运行下面的命令的时候,将其替换为你的路径就可以了:
$ sudo cp -v /usr/local/Cellar/httpd24/2.4.25/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons
$ sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
$ sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
到此为止,apache 就已经安装完成并将其配置为自动启动,此时打开浏览器访问 localhost 将会看到 It works!
。
apache 的基本使用方法:
# 开启 apache
$ sudo apachectl start
# 关闭 apache
$ sudo apachectl stop
# 重启 apache
$ sudo apachectl -k restart
2.2 Apache 的配置
首先修改 Apache 的 document root,这是 Web 服务的根目录,Apache 会从这个目录中寻找资源文件。默认的 document root 是 /Library/WebServer/Documents
。作为一个开发环境,我们可能更希望网站的根目录(即 Web 服务的根目录)在我们自己的用户主目录下。所以接下来修改配置。首先使用 vim 打开 httpd.conf 文件:
$ vim /usr/local/etc/apache2/2.4/httpd.conf
使用 Command + F
搜索 DocumentRoot
,然后连续使用 Command + G
往下查找,直到看到以下信息:
DocumentRoot "/usr/local/var/www/htdocs"
将这行配置改为自己的用户主目录中的目录,把 your_user 改为你的用户名:
DocumentRoot /Users/your_user/web
然后还要将上面这行代码下面的 <Directory>
也改为你的新的 document root:
<Directory /Users/your_user/web>
在 代码块里面,我们还需要将 AllowOverride 改为下面的样子:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
接下来通过取消注释使用 mod_rewrite 模块:
LoadModule rewrite_module libexec/mod_rewrite.so
接下来还需要配置 PHP 的主目录索引文件(Directory Indexes),找到下面的代码块:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
将其替换为下面的代码:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
2.3 web 目录
接下来在创建 document root 目录,并创建 index.html 文件:
$ cd /Users/your_user
$ mkdir web
$ echo "<h1>Hello World!</h1>" > web/index.html
然后重启 apache 生效:
$ sudo apachectl -k restart
到此 apache 安装完毕。
3. 安装 Nginx
3.1 安装
使用 brew 一键安装 nginx:
$ brew install nginx
安装完成之后开启 nginx:
$ sudo nginx
nginx 的基本使用方法:
# 查看 nginx 版本
4 nginx -v
# 开启 nginx
$ sudo nginx
# 关闭 nginx
$ sudo nginx -s stop
# 重启 nginx
$ sudo nginx -s reload
3.2 修改 php-fpm 文件
执行命令:
$ sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
找到 php-fpm
文件,并使用 vim 打开:
$ /private/etc/php-fpm.conf
找到 error_log
,改为(整行替换):
error_log = /usr/local/var/log/php-fpm.log
3.3 Nginx 的配置
nginx 安装完成之后需要修改一些配置,使其支持 php 并且正常运行。
首先使用 vim 打开 nginx 配置文件:
$ vim /usr/local/etc/nginx/nginx.conf
nginx 的配置文件非常简洁明了,找到 sever
下面的 location /
配置,在 index
配置项后面添加 index.php
:
location / {
root /User/your_user/web;
index index.html index.htm index.php;
}
修改 location ~.php$
配置,由于 php-fpm 默认监听端口为 9000,所以修改 fastcgi_pass 为 127.0.0.1:9000,具体配置如下:
location ~ \.php$ {
root /User/your_user/web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
到此,nginx 已经配置完毕,此时打开浏览器访问 localhost:8080
将会看到 Hello world!
。
4. 安装 PHP
相关链接
Apache+PHP 配置过程详解
4.1 安装
执行一下语句安装 php7.0,并使用 --with-httpd24
生成关联 apache 的 .so 文件:
$ brew install php70 --with-http24
执行一下语句安装 php5.6,并使用 --with-httpd24
生成关联 apache 的 .so 文件:
$ brew install php56 --with-http24
执行一下语句安装 php5.4,并使用 --with-httpd24
生成关联 apache 的 .so 文件:
$ brew install php54 --with-http24
打开 apache 配置文件:
vim /usr/local/etc/apache2/2.4/httpd.conf
找到以下配置:
LoadModule php7_module /usr/local/Cellar/php70/7.0.14_7/libexec/apache2/libphp7.so
LoadModule php5_module /usr/local/Cellar/php55/5.6.29_5/libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/Cellar/php56/5.4.2_5/libexec/apache2/libphp5.so
注释掉两行,只保留一行:
#LoadModule php7_module /usr/local/Cellar/php70/7.0.14_7/libexec/apache2/libphp7.so
#LoadModule php5_module /usr/local/Cellar/php55/5.6.29_5/libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/Cellar/php56/5.4.2_5/libexec/apache2/libphp5.so
然后重启 apache 生效:
$ sudo apachectl -k restart
在 web 目录下新建 index.php
文件,内容如下:
<?php
phpinfo();
?>
在浏览器打开 localhost/index.php
即可查看 php 版本信息。
4.2 php 的配置
参考 Apache+PHP 配置过程详解 配置 php。