macOS High Sierra 10.13.3全新搭建PHP開發環境
用了快三年的Mac Pro出現問題,蘋果公司幫忙換了一臺全新的,所以沒辦法,只能重新裝環境,裝平時開發所需的各種軟體,本著樂於助人的雷鋒精神也把這次搭建寫出來,希望可以幫助更多人。
廢話不多說進入正題
macOS Sierra 已經幫我們預裝了 Ruby、PHP、Perl、Python 等常用的指令碼語言,以及 Apache 伺服器等等。
1.安裝 Xcode
Xcode 是蘋果出品的包含一系列工具及庫的開發軟體。 通過 App Store 安裝最新版本的 Xcode。(如果你的Xcode是8.2之前的版本的話,在你編譯PHP7.0+的時候會提示你“更新Xcode”版本) 我們一般不會用 Xcode 來開發 PHP 專案。但這一步也是必需的,因為 Xcode 會幫你附帶安裝一些如 Git 等必要的軟體。當然你也可以通過原始碼包安裝 Git N多軟體包都基於Xcode,既然必須要安裝,所以我就把這個安裝放在第一步。
安裝成功,哎公司網路比較差,只能晚上回家安裝,大概等了2小時吧,size 5G左右,所以網路不好就提前安裝一下吧。
2.安裝 Xcode Command Line Tools
這一步會幫你安裝許多常見的基於 Unix 的工具。Xcode 命令列工具作為 Xcode 的一部分,包含了 GCC 編譯器。在命令列中執行以下命令即可安裝:
xcode-select --install
複製程式碼
直接點選install,然後等待安裝完成就好,哎等待總是漫長的。 Verify that you’ve successfully installed Xcode Command Line Tools:
xcode-select -p
返回以下表示安裝成功
/Applications/Xcode.app/Contents/Developer
複製程式碼
3.安裝 Homebrew
HomeBrew
是macOS 軟體包管理器,用來安裝、升級以及解除安裝常用的軟體
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
複製程式碼
及時按回車鍵然後輸入開機密碼,等待安裝完成
有時homebrew核心倉庫沒有我們所要的安裝包,但在其他倉庫中有,那我們可以自己新增
homebrew擴充套件倉庫
* 列出已有倉庫:` brew tap`
* 新增倉庫:` brew tap 倉庫名 `
* 刪除倉庫:` brew untap 倉庫名`
複製程式碼
安裝完成後,我們可以考慮更改下 Homebrew 源,因為國外源一直不是很給力,這裡我們將 Homebrew 源改為中國科學技術大學開源軟體映象:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
複製程式碼
4. 安裝iTerm2
iTerm2 是 MAC 下最好的終端工具(沒有之一)以及配合oh-my-zsh 及其外掛,將是強大的神器 下載iTerm2,開啟會提示移動到application,或者在 Finder 中,將 iTerm 拖拽進入 Application 資料夾中。這樣,你可以在 Launchpad 中啟動 iTerm2。
4.1 安裝 oh-my-zsh
接下來安裝配合iTerm2使用的oh-my-zsh
首先檢視系統支援的shell列表,Mac 系統自帶了 zsh ,Linux上得安裝
cat /etc/shells
zsh --version //檢視版本
複製程式碼
雖然Mac自帶了zsh,如果你想要最新版的zsh,那麼你用 brew install zsh
安裝一個最新的吧(問題不大)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
複製程式碼
哇哦,iTerm2的介面瞬間舒服多了,有沒有、有沒有、有沒有?(哈哈哈哈哈哈)
不過預設的theme主題”robbyrussell”用起來感覺還是差了那麼一點點,大多數coder都比較喜歡 agnoster.zsh-theme
這個主題
vim ~/.zshrc //開啟這個配置檔案
ZSH_THEME="robbyrussell" 找到這行主題配置
更換成以下的主題名就好
ZSH_THEME="agnoster" # (this is one of the fancy ones)
# see https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster
複製程式碼
開啟一個新終端看看目前是什麼樣的一個主題,不過貌似有一點不對,有一些字元不能正常顯示,so我們來安裝一個字型 Powerline fonts
# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts
複製程式碼
然後到iterm2的preferences > profiles > colors 配色設定選擇一個(我比較喜歡這種型別的顏色) ethanschoonover.com/solarized 配色主題 繼續修改字型,改成剛安裝成功的字型
然後重開一個終端,發現會帶上自己mac的使用者名稱什麼的,個人感覺挺多餘的,so我自己來改變一下 首先進到存放主題的資料夾》複製agnoster.zsh-theme > myagnoster.zsh-theme
cd ~/.oh-my-zsh/themes //進入主題資料夾
cp agnoster.zsh-theme myagnoster.zsh-theme //複製一份
vim myagnoster.zsh-theme 開啟
## Main prompt
build_prompt() {
RETVAL=$?
prompt_status
prompt_virtualenv
#prompt_context
prompt_dir
prompt_git
prompt_hg
prompt_end
}
只需把prompt_context用#註釋掉即可
然後開啟.zshrc
ZSH_THEME="agnoster" 》 ZSH_THEME="myagnoster" 改成這樣就可以了
這樣做的原因是避免升級有衝突
複製程式碼
4.2 外掛
oh my zsh
自帶外掛
Oh My Zsh 本身自帶了很多外掛,比如說: git,autojump osx,不過基本都沒有啟用,外掛目錄: ~/.oh-my-zsh/plugins
4.2.1 安裝 zsh-syntax-highlighting
這個自動高亮效果的外掛也是配合oh-my-zsh使用
Oh-my-zsh外掛形式的安裝,還有更多安裝方式大家可以去探索一下
- Clone this repository in oh-my-zsh's plugins directory:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
複製程式碼
- Activate the plugin in ~/.zshrc:
plugins=( [plugins...] zsh-syntax-highlighting)
複製程式碼
- Source ~/.zshrc to take changes into account:
source ~/.zshrc
複製程式碼
命令可以正確高亮顯示咯,這樣可以避免命令輸錯的情況,是不是很智慧
4.2.2 安裝 zsh-autosuggestions
Oh My Zsh 外掛形式安裝
- Clone this repository into
$ZSH_CUSTOM/plugins
(by default~/.oh-my-zsh/custom/plugins
)
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
複製程式碼
- Add the plugin to the list of plugins for Oh My Zsh to load:
plugins=(zsh-autosuggestions)
複製程式碼
- Source ~/.zshrc
source ~/.zshrc
複製程式碼
4.2.3 安裝 autojump
autojump是一個命令列工具,它可以使用快捷命令,直接跳轉到配置好的目錄,而不用管現在身在何處,依賴zsh。 OS X Homebrew is the recommended installation method for Mac OS X:(之前已經安裝homebrew)
brew install autojump
vim ~/.zshrc
plugins=( [plugins...] autojump) 新增autojump到.zshrc的plugins
新新增一行
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh
檢視權重
j --stat
複製程式碼
然後新開一個終端就已經可以使用啦
4.3 iterm快捷鍵
open . 在當前目錄下開啟finder
⌘ + return 全屏
⌘ + f 所查詢的內容會被自動複製
⌘ + d 橫著分屏 / ⌘ + shift + d 豎著分屏令
⌘ + / 遊標位置
⌘ + r 只是換到新一屏,不會像 clear 一樣建立一個空屏
ctrl + u 清除當前行
ctrl + a 到行首
ctrl + e 到行尾
ctrl + w 刪除遊標之前的單詞
ctrl + k 刪除到文字末尾
⌘ + alt + 方向鍵 切換螢幕(用於hotkey window)
⌘ + 方向鍵 切換tab
ctrl + _ Undo
ctrl + y Paste the last thing to be cut
複製程式碼
4.4 oh-my-zsh git外掛別名
alias ga='git add'
alias gb='git branch'
alias gba='git branch -a'
alias gbd='git branch -d'
alias gcam='git commit -a -m'
alias gcb='git checkout -b'
alias gco='git checkout'
alias gcm='git checkout master'
alias gcp='git cherry-pick'
alias gd='git diff'
alias gfo='git fetch origin'
alias ggpush='git push origin $(git_current_branch)'
alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)'
alias glgp='git log --stat -p'
alias gm='git merge'
alias gp='git push'
alias gst='git status'
alias gsta='git stash save'
alias gstp='git stash pop'
alias gl='git pull'
alias glg='git log --stat'
alias glgp='git log --stat -p'
複製程式碼
5. 安裝 PHP
Mac最新的系統已經自帶php,個人比較喜歡安裝最新的,所以這邊升級一下
brew search php // 先搜尋一下
brew install php // 安裝,等待安裝完成
新開一個tab輸入php -v就可以看到最新版本了
加入開機自啟
ln -sfv /usr/local/opt/php/*.plist ~/Library/LaunchAgents
複製程式碼
6. 安裝 Composer
Dependency Manager for PHP,PHP 的一個依賴管理工具
brew search composer
brew install composer
複製程式碼
安裝成功啦,之後我們就可以通過composer來安裝PHP的一些擴充套件包
7. 安裝 Mysql
brew install mysql //安裝
安裝成功如下:
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
MySQL is configured to only allow connections from localhost by default
To connect run:
mysql -uroot
To have launchd start mysql now and restart at login:
brew services start mysql
Or,if you don't want/need a background service you can just run:
mysql.server start
啟動:
mysql.server start
加入開機自啟
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
複製程式碼
執行密碼配置 //執行mysql_secure_installation
mysql_secure_installation
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD PLUGIN can be used to test passwords //密碼驗證外掛,為了提高安全性,需要驗證密碼
and improve security. It checks the strength of password // 它會檢查密碼的強度
and allows the users to set only those passwords which are //只允許使用者設定足夠安全的密碼
secure enough. Would you like to setup VALIDATE PASSWORD plugin? //你確定要安裝驗證密碼外掛嗎?
Press y|Y for Yes,any other key for No: y //確定安裝
There are three levels of password validation policy: //三個等級的驗證策略
LOW Length >= 8 //最小長度大於等於8個字元
MEDIUM Length >= 8,numeric,mixed case,and special characters //數字,字母,特殊字元 混合,具體的應該是至少1個數字,1個字母,1個特殊字元,長度不超過32個字元
STRONG Length >= 8,special characters and dictionary file // 最嚴格,加上了,字典檔案
Please enter 0 = LOW,1 = MEDIUM and 2 = STRONG: 0 //這裡我選擇0最簡單的,
Please set the password for root here.
New password: //輸入密碼
Re-enter new password: //重複輸入密碼
Estimated strength of the password: 50 //密碼強度的評級
Do you wish to continue with the password provided?(Press y|Y for Yes,any other key for No) : y //是否使用剛輸入的密碼?
By default,a MySQL installation has an anonymous user,//預設情況下,MySQL有一個匿名使用者,
allowing anyone to log into MySQL without having to have //這個匿名使用者,不必有一個使用者為他們建立,匿名使用者允許任何人登入到MySQL,
a user account created for them. This is intended only for //這只是為了方便測試使用
testing,and to make the installation go a bit smoother.
You should remove them before moving into a production //在正式環境使用的時候,建議你移除它
environment.
Remove anonymous users? (Press y|Y for Yes,any other key for No) : y //提示移除匿名使用者
Success.
Normally,root should only be allowed to connect from //一般情況下,root使用者只允許使用"localhost"方式登入,
'localhost'. This ensures that someone cannot guess at
the root password from the network. // 以此確保,不能被某些人通過網路的方式訪問
Disallow root login remotely? (Press y|Y for Yes,any other key for No) : no //不允許root遠端登陸?
... skipping.
By default,MySQL comes with a database named 'test' that //預設情況下,MySQL資料庫中
anyone can access. This is also intended only for testing,//這也僅僅是為了測試
and should be removed before moving into a production // 在正式環境下,應該移除掉
environment.
Remove test database and access to it? (Press y|Y for Yes,any other key for No) : y //確認刪除test資料庫?
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately. //重新整理許可權表,以確保所有的修改可以立刻生效
Reload privilege tables now? (Press y|Y for Yes,any other key for No) : y //確認重新整理
Success.
All done!
複製程式碼
8. 安裝 Laravel Valet
這邊我說明一下,本該安裝 NGINX
,因為我所接觸的專案都是 laravel
或者 lumen
,所以我這邊安裝這個 laravel
官方支援的 valet
開發環境,這個其實本身就是運用的 nginx
,只是使用這個開發環境,開發 laravel
的很多專案就非常方便,我個人也比較建議使用,目前支援 Mac 和 linux 系統。
前面已經安裝php和composer,這邊就可以直接安裝
composer global require laravel/valet //先獲取專案
valet install //然後安裝
ping foobar.test //ping一下是否通
複製程式碼
在家目錄建立Sites資料夾,之後所有專案都放在這個資料夾中,訪問的話也是資料夾名+.test就可以了
mkdir ~/Sites
cd ~/Sites
valet park //將這個目錄設定為專案倉庫
valet path //檢視valet 倉庫路徑
這樣就可以以這樣的 http://blog.test 域名訪問了
複製程式碼
如果有切換PHP版本需求的使用者,我覺得這個 brew-php-switcher 可能會比較適合
9. 安裝 Redis
brew search redis
brew install redis
預設配置在/usr/local/etc/redis.conf
redis-server
設定開機啟動
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
使用launchctl啟動redis server
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
複製程式碼
最基本的PHP開發環境已經搭建完成,可以創造世界了!哈哈