Mac OS X Mavericks or Yosemite 安裝Nginx、PHP、Mysql、phpMyAdmin

翻譯:http://blog.frd.mn/install-nginx-php-fpm-mysql-and-phpmyadmin-on-os-x-mavericks-using-homebrew/
最近Ubuntu用着很不爽,首先是輸入法很難用,所說搜狗發佈了Ubuntu14.04的輸入法,可是遠遠沒有Win下的輸入法好用。其次是沒有qq,在公司喝同事交流很困難,雖然說網頁qq也能夠聊天,可是傳個文件就不行了。缺乏不少應用,用Web版的用很難用。總之Ubuntu就是不爽。因而把家裏塵封的Mac Mini搬到公司爽爽的寫程序。php

首先我把Mac升級到Mac10.10.1 OS X Yosemite(在App Store裏能夠免費升級)。而後Xcode也要升級到最新版Version6.1,最後安裝(或更新) Xcode Command Line Tools.html

安裝Xcode Command Line Tools

打開終端,輸入如下命令,回車,會彈出一個框,點擊安裝(或Install)繼續。node

xcode-select --install

安裝完成後,打開Xcode,進入Preferences->Locations,查看Xcode Command Line Tools是不是最新版。
個人是這樣的
Bildschirmfoto-2014-10-20-um-11-27-56mysql

確認你用的是Xcode 6.1!而後安裝homebrewnginx

Homebrew

Mac下的Homebrew至關於Linux下的apt-get、yum,能夠得到最新版的各類安裝包。git

首先,你要Xquartzgithub

curl http://xquartz-dl.macosforge.org/SL/XQuartz-2.7.7.dmg -o /tmp/XQuartz.dmg
open /tmp/XQuartz.dmg

而後用如下命令安裝homebrewsql

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝完成後,運行如下命令檢查是否安裝成功shell

brew doctor

而後更新、升級下brew源數據庫

brew update && brew upgrade

PHP-FPM

由於brew默認不包含php-fpm,因此要先添加一個

brew tap homebrew/dupes
brew tap homebrew/php

而後運行如下命令安裝php、php-fpm,可能會花較長時間。

brew install --without-apache --with-fpm --with-mysql php55

設置PHP CLI

若是你想在命令行下運行php,你須要更改下bash shell下的環境變量
# If you use Bash

echo 'export PATH="$(brew --prefix homebrew/php/php55)/sbin:$PATH"' >> ~/.bash_profile && . ~/.bash_profile

# If you use ZSH

echo 'export PATH="$(brew --prefix homebrew/php/php55)/sbin:$PATH"' >> ~/.zshrc && . ~/.zshrc

讓php自動開啓

mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/

運行php-fpm

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

確認php-fpm監聽9000端口

lsof -Pni4 | grep LISTEN | grep php

輸出以下
php-fpm 69659 frdmn 6u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 69660 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 69661 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 69662 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)

Mysql

運行如下命令安裝Mysql

brew install mysql

設置自動重啓

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents

開啓數據庫服務

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

安全設置

運行如下命令刪除匿名用戶,而且禁止root遠程登陸。

mysql_secure_installation

> Enter current password for root (enter for none):

若是沒有設置root密碼,直接回車。

> Change the root password? [Y/n]

回車,輸入你的root密碼。

> Remove anonymous users? [Y/n]

直接回車。

> Disallow root login remotely? [Y/n]

直接回車。

> Remove test database and access to it? [Y/n]

直接回車。

> Reload privilege tables now? [Y/n]

直接回車,刷新權限。

測試鏈接數據庫

mysql -u root -p

輸入root密碼:

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

退出

/q
Bye

phpMyAdmin

首先須要安裝autoconf

brew install autoconf

設置$PHP_AUTOCONF

# If you use Bash
echo 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.bash_profile && . ~/.bash_profile

# If you use ZSH
echo 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.zshrc && . ~/.zshrc

安裝phpMyAdmin

brew install phpmyadmin

Nginx

安裝Nginx

brew install nginx

設置自啓

sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

測試Web服務器

啓動nginx

sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

如今默認監聽8080端口,運行如下命令測試

curl -IL http://127.0.0.1:8080

輸出:

HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Mon, 19 Oct 2014 19:07:47 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 19 Oct 2014 19:01:32 GMT
Connection: keep-alive
ETag: 「5444dea7-264」
Accept-Ranges: bytes

中止Nginx服務

sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

配置

建立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

Load PHP-Fpm

curl -L https://gist.github.com/frdmn/7853158/raw/php-fpm -o /usr/local/etc/nginx/conf.d/php-fpm

Create default virtual hosts

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

設置 SSL

建立文件夾存放ssl證書和ssl key

mkdir -p /usr/local/etc/nginx/ssl

生成4096bit key和證書

openssl req -new -newkey rsa:4096 -days 365 -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 365 -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

Enable virtual hosts

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

Test

http://localhost → "Nginx works" page
http://localhost/info → phpinfo()
http://localhost/nope → " Not Found" page
https://localhost:443 → "Nginx works" page (SSL)
https://localhost:443/info → phpinfo() (SSL)
https://localhost:443/nope → "Not Found" page (SSL)
https://localhost:306 → phpMyAdmin (SSL)

配置命令文件

curl -L https://gist.github.com/frdmn/7853158/raw/bash_aliases -o /tmp/.bash_aliases
cat /tmp/.bash_aliases >> ~/.bash_aliases
# If you use Bash
echo "source ~/.bash_aliases" >> ~/.bash_profile
# If you use ZSH
echo "source ~/.bash_aliases" >> ~/.zshrc

Commands

Nginx

nginx.start
nginx.stop
nginx.restart

快速tail日誌文件

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.start
php-fpm.stop
php-fpm.restart

查看PHP—FPM配置文件

php-fpm -t

Mysql

mysql.start
mysql.stop
mysql.restart
相關文章
相關標籤/搜索