<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>cherest (zhang)</title>
    <link>https://ruby-china.org/cherest</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>Mac OS X 10.10.1 部署 Rails + Apache + MySQL 自动运行</title>
      <description>&lt;p&gt;1、ruby 系统自带，安装 Rails（省略），Apache 系统自带，Rails App（省略）
2、安装 passenger&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;passenger   
passenger-install-apache2-module
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;记录输出如下：
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;LoadModule passenger_module /Users/Peter/.rvm/gems/ruby-2.1.1/gems/passenger-4.0.55/buildout/apache2/mod_passenger.so
&amp;lt;IfModule mod_passenger.c&amp;gt;
  PassengerRoot /Users/Peter/.rvm/gems/ruby-2.1.1/gems/passenger-4.0.55
  PassengerDefaultRuby /Users/Peter/.rvm/gems/ruby-2.1.1/wrappers/ruby
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3, Rails App bundle gems&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bundle &lt;span class="nt"&gt;--deployment&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;4、修改 Apache 文件&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;vi /etc/apache2/httpd.conf
此处将VirtualHost的环境设置为development
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;LoadModule passenger_module /Users/Peter/.rvm/gems/ruby-2.1.1/gems/passenger-4.0.55/buildout/apache2/mod_passenger.so
&amp;lt;IfModule mod_passenger.c&amp;gt;
  PassengerRoot /Users/Peter/.rvm/gems/ruby-2.1.1/gems/passenger-4.0.55
  PassengerDefaultRuby /Users/Peter/.rvm/gems/ruby-2.1.1/wrappers/ruby
&amp;lt;/IfModule&amp;gt;

&amp;lt;VirtualHost &lt;span class="k"&gt;*&lt;/span&gt;:80&amp;gt;
     DocumentRoot &lt;span class="s2"&gt;"/Users/Peter/workspace/apps/public"&lt;/span&gt;
     ServerName Peter
     RailsEnv development
     ErrorLog  &lt;span class="s2"&gt;"/private/var/log/apache2/sites-error_log"&lt;/span&gt;
     CustomLog &lt;span class="s2"&gt;"/private/var/log/apache2/sites-access_log"&lt;/span&gt; common
     &amp;lt;Directory /&amp;gt;
                 Options Indexes FollowSymLinks MultiViews
                 AllowOverride None
                 Order deny,allow
                 Require all granted
                 &lt;span class="c"&gt;#去掉随后注释及注释掉Require all granted后，仅允许本地访问&lt;/span&gt;
                 &lt;span class="c"&gt;#Deny from all&lt;/span&gt;
                 &lt;span class="c"&gt;#Allow from 127.0.0.1&lt;/span&gt;
                 &lt;span class="c"&gt;#Allow from ::1&lt;/span&gt;
                 &lt;span class="c"&gt;#Satisfy Any&lt;/span&gt;
       &amp;lt;/Directory&amp;gt;
 &amp;lt;/VirtualHost&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;5、Apache 相关命令&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apachectl &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apachectl start
&lt;span class="nb"&gt;sudo &lt;/span&gt;apachectl stop
&lt;span class="nb"&gt;sudo &lt;/span&gt;apachectl restart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;6、系统自动加载 Apache&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;随系统自动加载
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;launchctl load &lt;span class="nt"&gt;-w&lt;/span&gt; /System/Library/LaunchDaemons/org.apache.httpd.plist
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;停止系统自动加载
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;launchctl unload &lt;span class="nt"&gt;-w&lt;/span&gt; /System/Library/LaunchDaemons/org.apache.httpd.plist
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7、系统自动加载 Mysql&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;因为系统自带的Mysql版本，不能完成系统启动时加载，因此需要下载mysql 5.6.21以上的版本。
下载地址为：http://dev.mysql.com/downloads/mysql/
为了能够自动引导，分为两步来完成工作。
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A、首先，创建一个新文件 /Library/LaunchDaemons/com.mysql.mysql.plist
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;vi /Library/LaunchDaemons/com.mysql.mysql.plist
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;增加如下内容并保存：
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&amp;lt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nt"&gt;--&lt;/span&gt;?xml &lt;span class="nv"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt; &lt;span class="nv"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"UTF-8"&lt;/span&gt;?--&amp;gt;
&amp;lt;plist &lt;span class="nv"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &amp;lt;dict&amp;gt;
    &amp;lt;key&amp;gt;KeepAlive&amp;lt;/key&amp;gt;
    &amp;lt;&lt;span class="nb"&gt;true&lt;/span&gt; /&amp;gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;
    &amp;lt;string&amp;gt;com.mysql.mysqld&amp;lt;/string&amp;gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;
    &amp;lt;array&amp;gt;
      &amp;lt;string&amp;gt;/usr/local/mysql/bin/mysqld_safe&amp;lt;/string&amp;gt;
      &amp;lt;string&amp;gt;--user&lt;span class="o"&gt;=&lt;/span&gt;mysql&amp;lt;/string&amp;gt;
    &amp;lt;/array&amp;gt;       
  &amp;lt;/dict&amp;gt;
&amp;lt;/plist&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;B、修改权限，并加入自动引导目录中 launchctl:
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chown &lt;/span&gt;root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
&lt;span class="nb"&gt;sudo chmod &lt;/span&gt;644 /Library/LaunchDaemons/com.mysql.mysql.plist
&lt;span class="nb"&gt;sudo &lt;/span&gt;launchctl load &lt;span class="nt"&gt;-w&lt;/span&gt; /Library/LaunchDaemons/com.mysql.mysql.plist
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;停止自动引导命令如下：
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;launchctl unload &lt;span class="nt"&gt;-w&lt;/span&gt; /Library/LaunchDaemons/com.mysql.mysql.plist
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>cherest</author>
      <pubDate>Tue, 16 Dec 2014 23:29:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/23244</link>
      <guid>https://ruby-china.org/topics/23244</guid>
    </item>
    <item>
      <title>生产环境下跑多 Ruby 版本 Apache + Passenger + Capistrano + SVN 小结</title>
      <description>&lt;p&gt;当伸手党久矣，今天做点贡献。&lt;/p&gt;

&lt;p&gt;1、安装 RVM（略去）&lt;/p&gt;

&lt;p&gt;2、安装 ruby 及 rails&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rvm &lt;span class="nb"&gt;install &lt;/span&gt;ruby-1.9.3-p362
rvm &lt;span class="nb"&gt;install &lt;/span&gt;ruby-2.1.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3、安装 rails
      A, ruby ruby-1.9.3-p362&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;rails &lt;span class="nt"&gt;-v&lt;/span&gt; 2.3.6
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;B, ruby ruby-2.1.1&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;rails &lt;span class="nt"&gt;-v&lt;/span&gt; 4.0.3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;4、安装 Passenger
      A, ruby ruby-1.9.3-p362&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rvm ruby-1.9.3-p362
gem &lt;span class="nb"&gt;install &lt;/span&gt;passenger
passenger-install-apache2-module
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;注意，此时会提示完整配置参数与路径，务必记下，同时环境中要求有 GCC 等编译器。
      B, ruby ruby-2.1.1&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rvm ruby-2.1.1
gem &lt;span class="nb"&gt;install &lt;/span&gt;passenger
passenger-install-apache2-module
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;注意，此时会提示完整配置参数与路径，务必记下，同时环境中要求有 GCC 等编译器。&lt;/p&gt;

&lt;p&gt;5、配置 apache
     在全局配置中，A 和 B 任选其一。
     A、配置全局的 passenger&lt;/p&gt;

&lt;p&gt;ruby-1.9.3-p362&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;LoadModule passenger_module /usr/local/rvm/gems/ruby-2.1.1/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so
&amp;lt;IfModule mod_passenger.c&amp;gt;
   PassengerRoot /usr/local/rvm/gems/ruby-2.1.1/gems/passenger-4.0.53
   PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.1.1/wrappers/ruby
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ruby-2.1.1 配置&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p362/gems/passenger-4.0.55/buildout/apache2/mod_passenger.so
&amp;lt;IfModule mod_passenger.c&amp;gt;
   PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p362/gems/passenger-4.0.55
   PassengerDefaultRuby /usr/local/rvm/gems/ruby-1.9.3-p362/wrappers/ruby
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;B、配置某一个具体的 Vhost
           将记录下的 PassengerDefaultRuby+ 内容，修改为 PassengerRuby+ 内容，见后：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&amp;lt;VirtualHost &lt;span class="k"&gt;*&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt;:80&amp;gt;
   PassengerRuby /usr/local/rvm/gems/ruby-2.1.1/wrappers/ruby
   ServerName demo.sample.cn
   DocumentRoot /app/current/public
     &amp;lt;Directory /app/current/public&amp;gt;
        AllowOverride all
        Options &lt;span class="nt"&gt;-MultiViews&lt;/span&gt;
     &amp;lt;/Directory&amp;gt;
 &amp;lt;/VirtualHost&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;6、重新启动
     执行命令：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;service httpd restart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;注意 apache 启动 logs 下的 error_log。
     同时在启动的 App 网页中，注意察看问题。&lt;/p&gt;</description>
      <author>cherest</author>
      <pubDate>Tue, 16 Dec 2014 00:33:15 +0800</pubDate>
      <link>https://ruby-china.org/topics/23216</link>
      <guid>https://ruby-china.org/topics/23216</guid>
    </item>
  </channel>
</rss>
