Files
siarp.de/public/node/204/index.html
T
2019-12-08 16:36:45 +01:00

172 lines
9.2 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" version="XHTML+RDFa 1.0" dir="ltr">
<!-- Mirrored from siarp.de/node/204 by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 08 Dec 2019 12:00:36 GMT -->
<head profile="http://www.w3.org/1999/xhtml/vocab">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<title>Ruby on Rails deployen | siarp.de</title>
<link type="text/css" rel="stylesheet" href="../../sites/siarp.de/files/css/css_xE-rWrJf-fncB6ztZfd2huxqgxu4WO-qwma6Xer30m4.css" media="all" />
<link type="text/css" rel="stylesheet" href="../../sites/siarp.de/files/css/css_NdVgz6YKifxQUEsW5xls_zI7Pn2F7E5U5Wb29zcu3vo.css" media="all" />
<link type="text/css" rel="stylesheet" href="../../sites/siarp.de/files/css/css_OAqUol8y_hmU_lCucLyaRX-a1G627sWWbvG_VG1GKnE.css" media="all" />
<link type="text/css" rel="stylesheet" href="../../sites/siarp.de/files/css/css_xPIRNNJGw8EiKyuE5b-xAtWWTQ8U1_huTr4xL09Dq2A.css" media="all" />
<link type="text/css" rel="stylesheet" href="../../sites/siarp.de/files/css/css_k3snrbsthqot7V7ccRZHS9OkCZkwBv4adtNieIVlbEU.css" media="print" />
<!--[if lt IE 7]>
<link type="text/css" rel="stylesheet" href="http://siarp.de/themes/garland/fix-ie.css?q26w7t" media="all" />
<![endif]-->
<script type="text/javascript" src="../../sites/siarp.de/files/js/js_qikmINIYTWe4jcTUn8cKiMr8bmSDiZB9LQqvceZ6wlM.js"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"garland","theme_token":"bolScAj8Xrk6vOX5SfDSBmSd49pMpF4Op25TcshKIfk","js":{"misc\/jquery.js":1,"misc\/jquery-extend-3.4.0.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1},"css":{"modules\/system\/system.base.css":1,"modules\/system\/system.menus.css":1,"modules\/system\/system.messages.css":1,"modules\/system\/system.theme.css":1,"modules\/comment\/comment.css":1,"modules\/field\/theme\/field.css":1,"modules\/node\/node.css":1,"modules\/user\/user.css":1,"sites\/all\/modules\/views\/css\/views.css":1,"sites\/all\/modules\/ctools\/css\/ctools.css":1,"public:\/\/geshi\/geshifilter-languages.css":1,"sites\/siarp.de\/modules\/geshifilter\/geshifilter.css":1,"themes\/garland\/style.css":1,"themes\/garland\/print.css":1,"themes\/garland\/fix-ie.css":1}}});
//--><!]]>
</script>
</head>
<body class="html not-front not-logged-in one-sidebar sidebar-second page-node page-node- page-node-204 node-type-story fluid-width" >
<div id="skip-link">
<a href="#main-content" class="element-invisible element-focusable">Skip to main content</a>
</div>
<div id="wrapper">
<div id="container" class="clearfix">
<div id="header">
<div id="logo-floater">
<div id="branding"><strong><a href="../../">
<span>siarp.de</span> </a></strong></div>
</div>
</div> <!-- /#header -->
<div id="center"><div id="squeeze"><div class="right-corner"><div class="left-corner">
<h2 class="element-invisible">You are here</h2><div class="breadcrumb"><a href="../../">Home</a></div> <a id="main-content"></a>
<div id="tabs-wrapper" class="clearfix"> <h1 class="with-tabs">Ruby on Rails deployen</h1>
</div> <div class="clearfix">
<div class="region region-content">
<div id="block-system-main" class="block block-system clearfix">
<div class="content">
<div id="node-204" class="node node-story node-promoted">
<span class="submitted">27. September 2009 - 15:29 — <span class="username">Martin</span></span>
<div class="content clearfix">
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Das Szenario: Es sollen neben statischen Webseiten und PHP-Anwendungen auch Ruby-on-Rails-Anwendungen auf dem Server laufen. Die klassische Variante ist für jede Rails-Anwendung einen oder mehrere (Load Balancing) <a href="http://mongrel.rubyforge.org/">Mongrel</a>-Server laufen zu lassen und die mittels <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html">Reverse Proxy</a> hinter den Apache zu schalten (Port 80, SSL, Sicherheit). Außerdem gibt es (relativ neu) das Apache-Modul <a href="http://www.modrails.com/">Phusion Passenger (a.k.a. mod_rails / mod_rack)</a>. Passenger empfiehlt Apache mit Worker statt mit Prefork zu nutzen <a href="http://wiki.brightbox.co.uk/docs:phusion-passenger#php_compatibility">[1]</a>, aber das PHP-Modul für den Apache (mod_php) läuft nur mit Prefork. Leider hat das Ubuntu-Paket für Passenger eine Abhängigkeit mir Worker, so dass es nicht eingesetzt werden kann <a href="http://ninajansen.dk/2009/02/14/do-not-use-apt-get-to-install-passenger-on-ubuntu/">[2]</a>. (PHP via CGI laufen zu lassen kommt erstmal nicht in Frage). Allerdings kann man Passenger auch <a href="http://wiki.vpslink.com/HOWTO:_Ubuntu_Intrepid_RubyOnRails_Passenger">mit RubyGems installieren</a> (auch mit Prefork).</p>
<p>Weil es mit <a href="http://getontracks.org/">Tracks</a> 1.7 Probleme gab und außerdem die Mongrel-Variante etwas sparsamer sein soll, haben wir dann die genommen. Es folgen trotzdem für beide Varianten Anleitungen.</p>
<p>Die Rails-Anwendung wird in <span class="geshifilter"><code class="text geshifilter-text">/var/www/rails</code></span> entpackt. Wir gehen davon aus, dass sich Rails selber Teil des Pakets ist.</p>
<h2>Mongrel</h2>
<p>Dateien dem Benutzer zuordnen:</p>
<div class="geshifilter"><div class="text geshifilter-text">$ sudo chmod -R www-data. /var/www/rails/tracks/</div></div>
<p>Server starten:</p>
<div class="geshifilter"><div class="text geshifilter-text">$ sudo mongrel_rails start -c /var/www/rails/tracks -d -p 3001 -e production --prefix /tracks --user www-data --group www-data</div></div>
<p>Server automatisch starten:</p>
<div class="geshifilter"><div class="text geshifilter-text">$ sudo vim /etc/init.d/PROJEKTNAME<br />
#!/bin/bash<br />
mongrel_rails start -c /var/www/rails/tracks -d -p 3001 -e production --prefix /tracks --user www-data --group www-data<br />
<br />
$ sudo chmod +x /etc/init.d/PROJEKTNAME<br />
$ update-rc.d PROJEKTNAME defaults</div></div>
<p>Mongrel regelmäßig neu starten wegen Ressourcen und so...</p>
<div class="geshifilter"><div class="text geshifilter-text">$ sudo crontab -u www-data -e<br />
<br />
# m &nbsp;h &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dom mon dow &nbsp; command<br />
13 5 * * * mongrel_rails restart -c /var/www/rails/tracks</div></div>
<p>Das Ganze jetzt noch hinter den Apache. In der vhost-Konfiguration (Abhängigkeit <span class="geshifilter"><code class="text geshifilter-text">mod_proxy</code></span> und <span class="geshifilter"><code class="text geshifilter-text">mod_proxy_http</code></span>):</p>
<div class="geshifilter"><div class="text geshifilter-text">&lt;Proxy *&gt;<br />
&nbsp; &nbsp; Order Deny,Allow<br />
&nbsp; &nbsp; Allow from all<br />
&lt;/Proxy&gt;<br />
<br />
ProxyPass /tracks http://127.0.0.1:3001/tracks</div></div>
<h2>Passenger</h2>
<p>aptitude install ruby build-essential apache2-mpm-prefork apache2-prefork-dev rake rubygems1.8 ruby1.8-dev libopenssl-ruby1.8 libmysql-ruby1.8</p>
<p>gem install passenger
/var/lib/gems/1.8/bin/passenger-install-apache2-module</p>
<p>/etc/apache2/mods-available/passenger.load:
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so</p>
<p>/etc/apache2/mods-available/passenger.conf:
PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.5
PassengerRuby /usr/bin/ruby1.8</p>
<p>a2enmod passenger</p>
<p>http://www.modrails.com/documentation/Users%20guide.html#deploying_rails_to_sub_uri</p>
<p>cd DocumentRoot
ln -s /var/www/myrailsapp/public myrailsapp</p>
<p>vhost conf:
RailsBaseURI /myrailsapp</p>
<p>/etc/init.d/apache2 restart</p>
</div></div></div> </div>
<div class="clearfix">
<div class="links"><ul class="links inline"><li class="comment_forbidden first last"></li>
</ul></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="region region-footer">
<div id="block-block-3" class="block block-block clearfix">
<div class="content">
<p>Alle Rechte liegen bei siarp.</p>
</div>
</div>
</div>
</div></div></div></div> <!-- /.left-corner, /.right-corner, /#squeeze, /#center -->
<div id="sidebar-second" class="sidebar">
<div class="region region-sidebar-second">
<div id="block-menu-menu-autoren" class="block block-menu clearfix">
<h2 class="title">Written by</h2>
<div class="content">
<ul class="menu"><li class="first leaf"><a href="../../blog/2/">Martin</a></li>
<li class="last leaf"><a href="../../blog/3/">Tilman</a></li>
</ul> </div>
</div>
</div>
</div>
</div> <!-- /#container -->
</div> <!-- /#wrapper -->
</body>
<!-- Mirrored from siarp.de/node/204 by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 08 Dec 2019 12:00:36 GMT -->
</html>