一些關於在最新 Macos 下搭建LNMP開發環境的流程建議,直接進入正題:php
Preparing
安裝 Homebrew、Ohmyzsh、開發經常使用包&軟件html
1.1 Homebrewnode
Homebrew又叫Brew,是MacOS上的軟件包管理工具,能在Mac中方便的安裝軟件或者卸載軟件,和linux系統中的yum很是類似,只須要一個命令,很是方便。官方網站:http://brew.shmysql
安裝方法(打開 Terminal 終端,輸入):linux
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
檢驗安裝成功方法(打開 Terminal 終端,輸入):nginx
brew doctor
安裝經常使用軟件包(打開 Terminal 終端,輸入):git
brew install wget brew install autoconf brew install openssl
Brew 經常使用語句(打開 Terminal 終端,輸入):github
#我這裏以操做 php70 爲例 brew update #更新brew可安裝包,建議每次執行一下 brew search php70 #搜索php7.0 brew tap josegonzalez/php #安裝擴展<gihhub_user/repo> brew tap #查看安裝的擴展列表 brew install php70 #安裝php7.0 brew remove php70 #卸載php7.0 brew upgrade php70 #升級php7.0 brew options php70 #查看php7.0安裝選項 brew info php70 #查看php7.0相關信息 brew home php70 #訪問php7.0官方網站
人在天朝的話,極有可能出現安裝速度過於緩慢的狀況,有時候會讓你感受安裝處於假死的狀態,沒必要擔憂,耐心等待便可,切不可心煩意亂的關閉終端窗口(網上有其餘教程說能夠切換 brew 的源到中科大 CDN,本人親測:中科大 CDN 雖然快不少,可是clone 下來的文件和本來源存在必定差別,更新不及時。我的建議仍是耐心等待,使用本來的源)redis
1.2 Oh my zshsql
目前經常使用的 Linux 系統和 Mac OS 系統的默認 Shell 都是 bash,可是真正強大的 Shell 是深藏不露的 zsh,史稱『終極 Shell』,這玩意兒就像「X天 Php 從入門到放棄」系列,但此次是真的神功速成。Github:https://github.com/robbyrusse...
安裝方法(打開 Terminal 終端,輸入):
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
人在天朝的話,極有可能出現安裝速度過於緩慢的狀況,有時候會讓你感受安裝處於假死的狀態,沒必要擔憂,耐心等待便可,切不可心煩意亂的關閉終端窗口(網上有其餘教程說能夠切換 brew 的源到中科大 CDN,本人親測:中科大 CDN 雖然快不少,可是clone 下來的文件和本來源存在必定差別,更新不及時。我的建議仍是耐心等待,使用本來的源)
1.3 Xcode
Xcode 是蘋果出品的包含一系列工具及庫的開發套件。
經過 AppStore 安裝最新版本的 Xcode
咱們通常不會用 Xcode 來開發後端項目。但這一步也是必須的,由於 Xcode 會附帶安裝一些如 Git 等必要的軟件
1.3.1 Command Line Tools for Xcode
這一步會幫你安裝許多常見的基於 Unix 的工具。Xcode 命令行工具做爲 Xcode 的一部分,包含了 GCC 編譯器
安裝方法(打開 Terminal 終端,輸入):
xcode-select --install
當 Xcode 和 Xcode Command Line Tools 安裝完成後,你須要啓動 Xcode,並點擊贊成接受許可協議,而後關閉 Xcode 就能夠了。這一步驟也是必須的,不然 Xcode 包含的一系列開發工具都將不可用。
Working On
安裝 Mysql、Php7二、redis、Nginx、建立虛擬機、配置 SSL
2.1 Mysql
安裝方法(打開 Terminal 終端,輸入):
brew install mysql
MySQL的安裝包相對較大,在這個步驟須要等待一段時間,下載失敗後可屢次嘗試安裝,Brew每次會自動尋找合適的下載源
設置 Mysql 開機啓動方法(打開 Terminal 終端,輸入):
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
初始化、啓動方法(打開 Terminal 終端,輸入):
#正常初始化 /usr/local/opt/mysql/bin/mysql_secure_installation #若出錯請啓動服務 brew services start mysql
安全配置方法(Terminal 終端會提示[EnglishVersion]):
> Enter current password for root (enter for none): #直接 Enter,由於沒有設置過 > Change the root password? [Y/n] #是否更改 root 用戶的密碼 > Remove anonymous users? [Y/n] #不須要,鍵入 Y > Disallow root login remotely? [Y/n] #禁止root遠程登陸,建議鍵入 Y > Remove test database and access to it? [Y/n] #刪除測試數據表,建議鍵入 Y > Reload privilege tables now? [Y/n] #確保設置生效,鍵入 Y
檢驗安裝成功方法(打開 Terminal 終端,輸入):
#查看端口 ps aux | grep mysql #測試 Mysql 鏈接 mysql -uroot -p你設置的密碼 爲了直觀,這裏我以密碼:123456爲例,測試Mysql鏈接時鍵入: mysql -uroot -p123456
安裝 Phpmyadmin 方法(打開 Terminal 終端,輸入):
brew install phpmyadmin
2.2 Php
安裝準備(打開 Terminal 終端,輸入):
brew tap homebrew/dupes brew tap homebrew/versions brew tap homebrew/homebrew-php
安裝 Php72(打開 Terminal 終端,輸入):
brew install php72
配置 Php72 環境變量(打開 Terminal 終端,輸入):
echo 'export PATH="$(brew --prefix php72)/bin:$PATH"' >> ~/.bash_profile echo 'export PATH="$(brew --prefix php72)/sbin:$PATH"' >> ~/.bash_profile echo 'export PATH="/usr/local/bin:/usr/local/sbib:$PATH"' >> ~/.bash_profile source ~/.bash_profile
因爲Mac自帶了php和php-fpm,所以須要添加系統環境變量PATH來替代自帶PHP版本。
驗證 Php72 配置(打開 Terminal 終端,輸入):
#brew安裝的php,正常會顯示 php7.2.0betaX php -v#Mac自帶的Php,正常會顯示 php7.1.7 /usr/bin/php -v#brew安裝的php-fpm,正常會顯示 php7.2.0betaX php-fpm -v#Mac自帶的Php-fpm,正常會顯示 php7.1.7 /usr/bin/php-fpm -
修改php-fpm配置文件(打開 Terminal 終端,輸入):
vim /usr/local/etc/php/7.2/php-fpm.conf /**找到pid相關,去掉pid = run/php-fpm.pid前的「;」, 那麼php-fpm的pid文件就會自動產生在 /usr/local/var/run/php-fpm.pid**/
php-fpm驗證與啓動(打開 Terminal 終端,輸入):
#測試php-fpm配置 php-fpm -t php-fpm -c /usr/local/etc/php/7.2/php.ini -y /usr/local/etc/php/7.2/php-fpm.conf -t #啓動php-fpm php-fpm -D php-fpm -c /usr/local/etc/php/7.2/php.ini -y /usr/local/etc/php/7.2/php-fpm.conf -D #關閉php-fpm kill -INT `cat /usr/local/var/run/php-fpm.pid` #重啓php-fpm kill -USR2 `cat /usr/local/var/run/php-fpm.pid`
若是出現兩個[notice],不用管,除了他們沒有其餘錯誤的花,php-fpm 是能夠正常啓動了。若是出現其餘錯誤,請嘗試百度搜索,或者來聯繫我
php-fpm設置開機啓動(打開 Terminal 終端,輸入):
ln -sfv /usr/local/opt/php72/*.plist ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
安裝 composer(打開 Terminal 終端,輸入):
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer #改成國內源 composer config -g repo.packagist composer https://packagist.phpcomposer.com
2.3 Nginx
安裝 Nginx 方法(打開 Terminal 終端,輸入):
brew install nginx
Nginx的安裝包相對較大,在這個步驟須要等待一段時間,下載失敗後可屢次嘗試安裝,Brew每次會自動尋找合適的下載源
啓動 Nginx 方法(打開 Terminal 終端,輸入):
#測試nginx配置是否有語法錯誤 nginx -t #打開 nginx sudo nginx #從新加載配置|重啓|中止|退出 nginx nginx -s reload|reopen|stop|quit #也可使用Mac的launchctl來啓動|中止 nginx launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
設置 Nginx 開機啓動方法(打開 Terminal 終端,輸入):
ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
設置 Nginx 監聽端口權限(打開 Terminal 終端,輸入):
sudo chown root:wheel /usr/local/Cellar/nginx/1.12.1/bin/nginx sudo chmod u+s /usr/local/Cellar/nginx/1.12.1/bin/nginx
配置Nginx.conf(打開 Terminal 終端,輸入):
#配置須要用到的目錄 mkdir -p /usr/local/var/logs/nginx 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 #使用 vim 編輯器編輯 nginx.conf vim /usr/local/etc/nginx/nginx.conf #nginx.conf 文件中此段內容部分,輸入或修改成如下內容 pid /usr/local/var/run/nginx.pid; events { worker_connections 256; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /usr/local/var/logs/access.log main; sendfile on; keepalive_timeout 65; port_in_redirect off; include /usr/local/etc/nginx/sites-enabled/*; }
vim 編輯器的退出並保存:按 ECS => 按 CAPS LOCK(大寫鍵) => 按兩下 Z
配置php-fpm 配置文件(打開 Terminal 終端,輸入):
#使用 vim 編輯器編輯 php-fpm 配置 vim /usr/local/etc/nginx/conf.d/php-fpm #寫入如下內容 location ~ \.php$ { try_files $uri = 404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_intercept_errors on; include /usr/local/etc/nginx/fastcgi.conf; }
nginx 虛擬機配置(打開 Terminal 終端,輸入):
#建立 info.php index.html 404.html 403.html文件到 /var/www 下面 vi /var/www/info.php //輸入:<?php phpinfo() ?> vi /var/www/index.html //輸入:<html><head><meta charset="UTF-8"><title>Default Page</title></head><body><h1 align="center">Default</h1></body></html> vi /var/www/403.html //輸入:<html><head><meta charset="UTF-8"><title>403 Page</title></head><body><h1 align="center">Default</h1></body></html> vi /var/www/404.html //輸入:<html><head><meta charset="UTF-8"><title>404 Page</title></head><body><h1 align="center">Default</h1></body></html>
配置虛擬主機配置文件(打開 Terminal 終端,輸入):
#使用 vim 編輯器編輯虛擬主機配置 vim /usr/local/etc/nginx/sites-available/default #輸入如下內容 server { listen 80; server_name localhost; root /var/www/; access_log /usr/local/var/logs/nginx/default.access.log main; location / { index index.html index.htm index.php; autoindex on; include /usr/local/etc/nginx/conf.d/php-fpm; } location = /info { allow 127.0.0.1; deny all; rewrite (.*) /.info.php; } error_page 404 /404.html; error_page 403 /403.html; }
配置SSL虛擬主機配置文件(打開 Terminal 終端,輸入):
#使用 vim 編輯器編輯SSL虛擬主機配置 vim /usr/local/etc/nginx/sites-available/default-ssl #輸入如下內容 server { listen 443; server_name localhost; root /var/www/; access_log /usr/local/var/logs/nginx/default-ssl.access.log main; ssl on; ssl_certificate ssl/localhost.crt; ssl_certificate_key ssl/localhost.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { include /usr/local/etc/nginx/conf.d/php-fpm; } location = /info { allow 127.0.0.1; deny all; rewrite (.*) /.info.php; } error_page 404 /404.html; error_page 403 /403.html; }
配置phpmyadmin虛擬主機配置文件(打開 Terminal 終端,輸入):
#使用 vim 編輯器編輯phpmyadmin虛擬主機配置 vim /usr/local/etc/nginx/sites-available/phpmyadmin #輸入如下內容 server { listen 306; server_name localhost; root /usr/local/share/phpmyadmin; error_log /usr/local/var/logs/nginx/phpmyadmin.error.log; access_log /usr/local/var/logs/nginx/phpmyadmin.access.log main; ssl on; ssl_certificate ssl/phpmyadmin.crt; ssl_certificate_key ssl/phpmyadmin.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { index index.html index.htm index.php; include /usr/local/etc/nginx/conf.d/php-fpm; } }
這裏 phpmyadmin 默認設置爲306端口,且開啓 ssl
配置 SSL(打開 Terminal 終端,輸入):
mkdir -p /usr/local/etc/nginx/ssl 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
建立虛擬主機軟鏈接並開啓(打開 Terminal 終端,輸入):
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(打開 Terminal 終端,輸入):
sudo nginx -s reload
可能會要求輸入密碼
測試 nginx 開啓狀況(打開瀏覽器,地址欄輸入):
http://localhost http://localhost/info.php http://localhost/404.html https://localhost/index.html(SSL) https://localhost/info.php(SSL) https://localhost/404.html(SSL) https://localhost:306(SSL)
2.4 Redis
安裝方法(打開 Terminal 終端,輸入):
brew install redis
人在天朝的話,極有可能出現安裝速度過於緩慢的狀況,有時候會讓你感受安裝處於假死的狀態,沒必要擔憂,耐心等待便可,切不可心煩意亂的關閉終端窗口(網上有其餘教程說能夠切換 brew 的源到中科大 CDN,本人親測:中科大 CDN 雖然快不少,可是clone 下來的文件和本來源存在必定差別,更新不及時。我的建議仍是耐心等待,使用本來的源)
開啓 Redis方法(打開 Terminal 終端,輸入):
redis-server
以後進入了管理模式,若是看到Ready to accept connections,說明安裝運行成功,直接關閉終端再打開便可
安裝 Php-Redis方法(打開 Terminal 終端,輸入):
wget https://pecl.php.net/get/redis-3.1.3.tgz tar -zxvf redis-3.1.3.tgz cd redis-3.1.3 phpize ./configure make make install
修改 php.ini方法(打開 Terminal 終端,輸入):
#使用 vim 編輯器編輯 php.ini vi /usr/local/etc/php/7.2/php.ini //在文件最後加入extension=redis.so
#重啓 php-fpm sudo killall php-fpm && sudo php-fpm -D #查看是否安裝成功 php -m |grep redis