发生在升级OS X Yosemite后:修复各类开发环境

本博文最初发布于个人我的博客《Jerry的乐园php

终于仍是忍不住升级了,促使我升级的原动力竟然是Alfred的Yosemite theme竟然比初始theme好看不少!在升级前就预想到个人开发环境是必定会被破坏的,因此升级好系统之后仍是赶快看下发生了什么吧!java

问题

一进新系统就发现phpstorm跪了,提示要装jre6才能用。好吧,而后陆陆续续逐渐发现好多东西都跪了。只能一个一个慢慢修复啦。目前可见的发生错误的环境有:node

  1. PhpStorm
  2. Homebrew
  3. node.js
  4. Apache
  5. MySQL

逐个击破

1. PhpStorm

升级了Yosemite之后,按通常的尿性,苹果确定会升级全部运行环境的版本的,其中少不了Java,所以PhpStorm躺枪。确定有同窗要问啊,为何JetBrains这种被誉为史上最屌霸天的IDE厂商所使用的jdk版本这么低!mysql

JetBrains如是说:laravel

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.git

好了,解决方法就是下个jre6嘛!结果我在oracle的网站上找了半天却只能找到提供给OS X的jre7和jre8。好吧,其实直接在苹果官网上就能够找到下载连接:http://support.apple.com/kb/DL1572github

2. Homebrew

Homebrew的运行离不开Ruby,升级后运行不了的缘由其实也就是内置于Yosemite的Ruby版本更新啦:1.8 => 2.0。想要运行brew就会获得以下错误信息:sql

/usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory

而后在网上找到解决办法以下:apache

2.1 更新brew脚本

用你喜欢的编辑器打开/usr/local/bin/brew,而后将brew检测系统的一段代码注释掉,具体以下所示:npm

#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/下已经找到nodenpm却发现是没法打开的,依旧会提示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_mysqlstop_mysql指令就能够开关mysql服务啦!

结语

其实原本还会发上第六条的:git。由于我发现我想把这篇博文发到github的博客上去却失败了!找了半天缘由却摸不着头脑。后来突发奇想在gitcafe上建立了个项目竟然push成功了,说明不是本地的git的问题,而是github的问题。过了一天才成功发上来还真是蛋疼!

以上这些解决方案在我本地都可以解决问题,若是你还有什么疑问,能够在博文下留言,说不定能帮到你。

参考资料:

  1. Homebrew, Ruby, and Rails on OS X 10.10
  2. Fix the PhpStorm Java Error with Yosemite
  3. Error message “Forbidden You don't have permission to access / on this server”
  4. start mySQL server from command line on Mac OS Lion

更新

  • 2014.11.16 添加apache、mysql的恢复
相关文章
相关标签/搜索