文档中出现的所有需要网络下载的脚本, 均放置在 Git 仓库内: https://gitee.com/NICKNAME/MNMP.git , 方便大家不翻墙下载.
近来新入手了一台 MacBook Pro, 于是折腾一下环境, 由于无法再使用 LAMP (Linux Apache MySQL PHP) 一键, 于是使用 Nginx 和 PHP-FPM 替代.
下面介绍一下如何在 MacOS 系统上安装 Nginx, PHP-FPM, MySQL 和 phpMyAdmin.
安装 Xcode
首先进入 App Store 应用商店, 安装 XCode 最新版, 下载地址为: https://itunes.apple.com/en/app/xcode/id497799835
下载完成后, 执行 /Applications
目录下的 Xcode.app
打开软件, 同意相应的 license.
开启命令行工具 Terminal.app
, 执行 xcode-select --install
, 弹出框点选同意安装.
回到 Xcode.app 使用 ⌘
+ ,
组合键, 进入 Preferences(属性) -> Locations(位置) -> 设置 Command Line Tool(命令行工具) -> 选择最高版本.
安装 Homebrew
安装 HomeBrew, 这是一个类似于 yum 或者 apt-get 一样的软件, 用于软件包的安装管理.
命令行执行: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
检测是否安装成功: brew doctor
, 如果提示 “Your system is ready to brew.” 则成功.
如果已经安装过了, 那么使用 brew update && brew upgrade
进行升级.
安装 PHP-FPM
使用命令行安装:
# PHP 软件源
brew tap homebrew/dupes
brew tap homebrew/php
# 安装 PHP-FPM
brew install --without-apache --with-fpm --with-mysql php56
设置 PHP CLI 命令行环境
设置 $PATH 环境:
默认 Bash: echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile && . ~/.bash_profile
ZSH: echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.zshrc && . ~/.zshrc
如果您不知道自己使用的是哪一个的话, 执行 echo $SHELL
如果返回 /bin/zsh 说明是 ZSH 环境.
设置 PHP-FPM 自动启动
# 拷贝启动脚本配置文件
mkdir -p ~/Library/LaunchAgents
ln -sfv /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/
# 执行启动
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
# 执行关闭
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
查看是否启动成功: lsof -Pni4 | grep LISTEN | grep php
安装 MySQL
我的 MySQL 是使用的官方的安装方法, 这里只是翻译一下原文.
# 安装, 拷贝启动脚本配置文件
brew install mysql
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
# 启动MySQL
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
配置 MySQL, 让 MySQL 更安全
执行 secure_mysql_installation
Enter current password for root (enter for none):
当前无密码, 直接回车
Change the root password? [Y/n]
是否更改 root 账号的密码, 默认为是. 选择一个密码, 之后要输入两次.
Remove anonymous users? [Y/n]
移除匿名用户, 直接回车
Disallow root login remotely? [Y/n]
阻止 root 的远程登录, 直接回车
Remove test database and access to it? [Y/n]
移除 test 数据库, 直接回车
Reload privilege tables now? [Y/n]
点击回车确认以上更改
测试连接
mysql -uroot -p
输入刚刚设置的密码
安装 PHPMyAdmin
PHPMyAdmin 使对 MySQL 的管理更容易, 界面化操作.
安装依赖软件 brew install autoconf
Bash: echo 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.bash_profile && . ~/.bash_profile
ZSH: echo 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.zshrc && . ~/.zshrc
安装 PHPMyAdmin brew install phpmyadmin
安装 Nginx
brew install nginx
设置 Nginx 自动启动
如果想让 Nginx 监听 80 端口, 则必须使用 Root 权限, 只有 Root 权限能监听<1024 的端口.
sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
启动 Nginx: sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
关闭 Nginx: sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
测试 Web 环境, 检测 Nginx 是否安装成功
Nginx 默认配置文件监听 8080 端口, curl -IL http://127.0.0.1:8080
检测是否开启.
详细的其他配置
配置 Nginx
创建相关目录:
mkdir -p /usr/local/etc/nginx/logs
mkdir -p /usr/local/etc/nginx/sites-available
mkdir -p /usr/local/etc/nginx/sites-enabled
mkdir -p /usr/local/etc/nginx/conf.d
mkdir -p /usr/local/etc/nginx/ssl
sudo mkdir -p /var/www
sudo chown :staff /var/www
sudo chmod 775 /var/www
删除默认的 nginx.conf, 下载网络版本:
rm /usr/local/etc/nginx/nginx.conf
curl -L https://gist.github.com/frdmn/7853158/raw/nginx.conf -o /usr/local/etc/nginx/nginx.conf
配置 PHP-FPM
下载网络版本:
curl -L https://gist.github.com/frdmn/7853158/raw/php-fpm -o /usr/local/etc/nginx/conf.d/php-fpm
配置 Nginx 的虚拟目录 vhost
下载网络版本:
curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default -o /usr/local/etc/nginx/sites-available/default
curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default-ssl -o /usr/local/etc/nginx/sites-available/default-ssl
curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_phpmyadmin -o /usr/local/etc/nginx/sites-available/phpmyadmin
下载默认的错误重定向页面:
git clone http://git.frd.mn/frdmn/nginx-virtual-host.git /var/www
rm -rf /var/www/.git
配置 SSL 支持:
mkdir -p /usr/local/etc/nginx/ssl
openssl req -new -newkey rsa:4096 -days 3650 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=localhost" -keyout /usr/local/etc/nginx/ssl/localhost.key -out /usr/local/etc/nginx/ssl/localhost.crt
openssl req -new -newkey rsa:4096 -days 3650 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=phpmyadmin" -keyout /usr/local/etc/nginx/ssl/phpmyadmin.key -out /usr/local/etc/nginx/ssl/phpmyadmin.crt
开启虚拟配置, 使之生效
ln -sfv /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/default
ln -sfv /usr/local/etc/nginx/sites-available/default-ssl /usr/local/etc/nginx/sites-enabled/default-ssl
ln -sfv /usr/local/etc/nginx/sites-available/phpmyadmin /usr/local/etc/nginx/sites-enabled/phpmyadmin
重启 Nginx 服务器
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
使用 http/https 进行测试
让命令行更简单
下载 Alias
curl -L https://gist.github.com/frdmn/7853158/raw/bash_aliases -o /tmp/.bash_aliases
cat /tmp/.bash_aliases >> ~/.bash_aliases
Bash: echo "source ~/.bash_aliases" >> ~/.bash_profile && . ~/.bash_profile
ZSH: echo "source ~/.bash_aliases" >> ~/.zshrc && ~/.zshrc
之后, 使用以下命令行 Alias 来管理服务器
Nginx
# Nginx服务的管理
nginx.start
nginx.stop
nginx.restart
# 查看Nginx日志
nginx.logs.access
nginx.logs.default.access
nginx.logs.phpmyadmin.access
nginx.logs.default-ssl.access
nginx.logs.error
nginx.logs.phpmyadmin.error
# 查看Nginx的配置
sudo nginx -t
PHP-FPM
# PHP-FPM服务的管理
php-fpm.start
php-fpm.stop
php-fpm.restart
# 查看PHP-FPM的配置
php-fpm -t
MySQL
# MySQL服务的管理
mysql.start
mysql.stop
mysql.restart
文字来源
安装文档原文: https://blog.frd.mn/install-nginx-php-fpm-mysql-and-phpmyadmin-on-os-x-mavericks-using-homebrew/
本文是依照原文自行翻译, 疏漏之处可与下面同仁的文字进行校对, 欢迎指正.