本博文最初發布於我的個人博客《Jerry的樂園》
終於還是忍不住升級了,促使我升級的原動力居然是Alfred
的Yosemite theme居然比初始theme好看很多!在升級前就預想到我的開發環境是一定會被破壞的,所以升級好系統以后還是趕快看下發生了什么吧!
問題
一進新系統就發現phpstorm
跪了,提示要裝jre6
才能用。好吧,然后陸陸續續逐漸發現好多東西都跪了。只能一個一個慢慢修復啦。目前可見的發生錯誤的環境有:
- PhpStorm
- Homebrew
- node.js
- Apache
- MySQL
逐個擊破
1. PhpStorm
升級了Yosemite以后,按一般的尿性,蘋果肯定會升級所有運行環境的版本的,其中少不了Java,因此PhpStorm躺槍。肯定有同學要問啊,為什么JetBrains
這種被譽為史上最屌霸天的IDE廠商所使用的jdk版本這么低!
JetBrains
如是說:
Current JDK 1.7 and 1.8 versions have several critical issues. We can’t default to the new JDK version until these issues are resolved.
好了,解決方法就是下個jre6嘛!結果我在oracle的網站上找了半天卻只能找到提供給OS X的jre7和jre8。好吧,其實直接在蘋果官網上就可以找到下載鏈接:http://support.apple.com/kb/DL1572
2. Homebrew
Homebrew的運行離不開Ruby,升級后運行不了的原因其實也就是內置於Yosemite的Ruby版本更新啦:1.8 => 2.0
。想要運行brew就會得到如下錯誤信息:
/usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
然后在網上找到解決辦法如下:
2.1 更新brew
腳本
用你喜歡的編輯器打開/usr/local/bin/brew
,然后將brew
檢測系統的一段代碼注釋掉,具體如下所示:
#BREW_SYSTEM=$(uname -s | tr "[:upper:]" "[:lower:]") #if [ "$BREW_SYSTEM" = "darwin" ] #then # exec "$BREW_LIBRARY_DIRECTORY/brew.rb" "$@" #else exec ruby -W0 "$BREW_LIBRARY_DIRECTORY/brew.rb" "$@" #fi
2.2 創建軟鏈接
Homebrew會通過Ruby 1.8
的路徑去找Ruby的運行環境,可惜在Yosemite里它再也找不到了。所以在Homebrew做出一定的改變以前,我們需要騙騙它,建立一個假的Ruby 1.8
的地址,其實指向系統的Ruby 2.0
運行環境。
sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin sudo ln -s /usr/bin/ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
3. node.js
好吧,其實寫這篇博客的時候只發現前面兩個問題。可是當我用grunt
來自動生成我的博客時,卻收到了env: node: No such file or directory
這樣的錯誤信息。看來node也在這次升級中慘烈犧牲了啊。
在/usr/local/bin/
下已經找到node
和npm
卻發現是無法打開的,依舊會提示No such file or directory
。目前還是不太清楚是什么原因造成的,最后解決的辦法也比較暴力:直接到node官網上下了個最新的pkg直接重新安裝一下就好了。
4. Apache
要本地調試代碼的時候發現Apache
也不能幸免地跪了。執行apachectl -v
發現Apache已經更新到2.4.9
版本了。一定又是因為版本更新出了什么差錯。
4.1 修改httpd.conf
首先打開/private/etc/apache2/httpd.conf
發現似乎恢復默認的設置了。重新將以下兩行代碼解注:
Include /private/etc/apache2/extra/httpd-vhosts.conf ... LoadModule php5_module libexec/apache2/libphp5.so
4.2 修改httpd-vhosts.conf
打開private/etc/apache2/extra/httpd-vhosts.conf
發現之前設好的虛擬主機似乎沒有被修改掉嘛!但因為升級到Apache 2.4
以上設置需要一定的調整,不然就會得到403 Forbidden You don't have permission to access / on this server
錯誤啦。
將原本的
<VirtualHost *:80>
ServerAdmin zry656565@gmail.com DocumentRoot "/Users/Jerry/Dev/apache/php_tester" ServerName php_tester ErrorLog "/Users/Jerry/Dev/apache/php_tester/log/sites-error_log" CustomLog "/Users/Jerry/Dev/apache/php_tester/log/sites-access_log" common <Directory /> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Order deny,allow Allow from all </Directory> </VirtualHost>
改成
<VirtualHost *:80>
ServerAdmin zry656565@gmail.com DocumentRoot "/Users/Jerry/Dev/apache/php_tester" ServerName php_tester ErrorLog "/Users/Jerry/Dev/apache/php_tester/log/sites-error_log" CustomLog "/Users/Jerry/Dev/apache/php_tester/log/sites-access_log" common <Directory /> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Require all granted </Directory> </VirtualHost>
其實就是將Order deny,allow, Allow from all
改成Require all granted
。
5. MySQL
MySQL目前還沒有正式支持OS X Yosemite,所以在升級系統后會發現,MySQL的服務居然沒有在后台啟動。要解決這個問題只有手動啟動MySQL的服務,建議在~/.bash_profile
中加入如下腳本,然后用source ~/.bash_profile
啟用腳本。
export MYSQL_HOME=/usr/local/mysql/bin alias start_mysql='sudo $MYSQL_HOME/mysqld_safe &' alias stop_mysql='sudo $MYSQL_HOME/mysqladmin shutdown'
接下來,你只需要使用start_mysql
和stop_mysql
指令就可以開關mysql服務啦!
結語
其實本來還會發上第六條的:git。因為我發現我想把這篇博文發到github的博客上去卻失敗了!找了半天原因卻摸不着頭腦。后來突發奇想在gitcafe上創建了個項目居然push成功了,說明不是本地的git的問題,而是github的問題。過了一天才成功發上來還真是蛋疼!
以上這些解決方案在我本地都能夠解決問題,如果你還有什么疑問,可以在博文下留言,說不定能幫到你。
參考資料
- Homebrew, Ruby, and Rails on OS X 10.10
- Fix the PhpStorm Java Error with Yosemite
- Error message “Forbidden You don't have permission to access / on this server”
- start mySQL server from command line on Mac OS Lion
更新
- 2014.11.16 添加apache、mysql的恢復