<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>по стопам webkill&#039;а &#187; selinux</title>
	<atom:link href="http://blog.lukmus.ru/tag/selinux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lukmus.ru</link>
	<description>это наш химический дом для печальных жителей Земли</description>
	<lastBuildDate>Sat, 21 Oct 2023 19:10:13 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>ROR + Passenger + Apache</title>
		<link>http://blog.lukmus.ru/2011/02/12/ror-passenger-apache/</link>
		<comments>http://blog.lukmus.ru/2011/02/12/ror-passenger-apache/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 08:38:21 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[ruby & ruby on rails]]></category>
		<category><![CDATA[настройка и установка]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[ROR]]></category>
		<category><![CDATA[ROR 3]]></category>
		<category><![CDATA[ruby on rails 3]]></category>
		<category><![CDATA[selinux]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=942</guid>
		<description><![CDATA[После того как рельсовое приложение более-менее готово для его коммерческой эксплуатации необходимо перейти с Webrick&#8217;а на более серьезный сервер. Лично на данный момент выбрал Apache, поэтому и запишу процесс настройки ROR + Apache. Для начала нужно установить сам Apache. В RH-линуксах это делается так: 1 yum install httpd Для полноценности apache&#8217;а можно еще установить PHP: [...]]]></description>
			<content:encoded><![CDATA[<p>После того как рельсовое приложение более-менее готово для его коммерческой эксплуатации необходимо перейти с Webrick&#8217;а на более серьезный сервер. Лично на данный момент выбрал Apache, поэтому и запишу процесс настройки ROR + Apache.<br />
<a href="http://blog.lukmus.ru/wp-content/uploads/2011/02/aor.png"><img class="aligncenter size-full wp-image-943" title="aor" src="http://blog.lukmus.ru/wp-content/uploads/2011/02/aor.png" alt="" width="517" height="424" /></a><span id="more-942"></span>Для начала нужно установить сам Apache. В RH-линуксах это делается так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">yum install httpd</pre></td></tr></table></div>

<p>Для полноценности apache&#8217;а можно еще установить PHP:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">yum install php</pre></td></tr></table></div>

<p>Но я бы этого не делал, на всякий случай, чтобы не один web-shell там не работал т.к. я не видел вебшеллов под unix&#8217;ы кроме как на PHP и CGI Perl.</p>
<h2>установка passenger</h2>
<p>Далее нужно установить такую штуку как Passenger. Этот gem поможет связать Apache с ROR&#8217;ом. Оффициальная инструкция установки Passenger есть тут &#8211; <a rel="nofollow" href="http://" target="_blank">http://wiki.rubyonrails.org/deployment/apache-passenger</a>. В принципе до определенного момента я буду ей следовать.<br />
Устанавливаем сам гем:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># gem install passenger</span></pre></td></tr></table></div>

<p>Запускаем скрипт:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># passenger-install-apache2-module</span></pre></td></tr></table></div>

<p>Здесь скрипт скажет что нужно и что из этого у вас уже установлено. Если что-то не установлено он подскажет как установить, если же все уже есть, то установиться модуль к апачу. В случае если вам придется что-то доустановить, не забудьте после этого опять запустить этот скрипт.</p>
<h2>настройка apache</h2>
<p>Теперь самое сложное &#8211; надо настроить апач. Отворяем <code>/etc/httpd/httpd.conf</code> и колдуем.<br />
В подгружаемые модули дописываем, то что порекомендовал скрипт passenger&#8217;а:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">...</span>bla<span style="color: #339933;">-</span>bla<span style="color: #339933;">-</span>bla<span style="color: #339933;">...</span>
LoadModule disk_cache_module modules<span style="color: #339933;">/</span>mod_disk_cache<span style="color: #339933;">.</span>so
LoadModule cgi_module modules<span style="color: #339933;">/</span>mod_cgi<span style="color: #339933;">.</span>so
&nbsp;
<span style="color: #339933;">&lt;</span>span style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;color: #3366ff;&quot;</span><span style="color: #339933;">&gt;</span>LoadModule passenger_module <span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>local<span style="color: #339933;">/</span>lib<span style="color: #339933;">/</span>ruby<span style="color: #339933;">/</span>gems<span style="color: #339933;">/</span>1<span style="color: #339933;">.</span>9<span style="color: #339933;">.</span>1
<span style="color: #339933;">/</span>gems<span style="color: #339933;">/</span>passenger<span style="color: #339933;">-</span>3<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>2<span style="color: #339933;">/</span>ext<span style="color: #339933;">/</span>apache2<span style="color: #339933;">/</span>mod_passenger<span style="color: #339933;">.</span>so
PassengerRoot <span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>local<span style="color: #339933;">/</span>lib<span style="color: #339933;">/</span>ruby<span style="color: #339933;">/</span>gems<span style="color: #339933;">/</span>1<span style="color: #339933;">.</span>9<span style="color: #339933;">.</span>1<span style="color: #339933;">/</span>gems
<span style="color: #339933;">/</span>passenger<span style="color: #339933;">-</span>3<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>2
PassengerRuby <span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>local<span style="color: #339933;">/</span>bin<span style="color: #339933;">/</span>ruby
<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&lt;</span>span style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;color: #0000ff;&quot;</span><span style="color: #339933;">&gt;</span>PassengerDefaultUser root<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Чтобы наверняка, можно дописать еще строку выделенную темносиним.</p>
<p>Далее надо будет поколдовать с директивой <code>NameVirtualHost</code>. Возможно она и не понадобиться, а быть может и поможет. Раскомментируйте ее:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">NameVirtualHost <span style="color: #339933;">*:</span><span style="color: #cc66cc;">80</span></pre></td></tr></table></div>

<h3>настройка виртуального хостинга</h3>
<p>Для каждого сайта(домена) следует дописать в конец конфига что-то типа:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>VirtualHost <span style="color: #339933;">*:</span><span style="color: #cc66cc;">80</span><span style="color: #339933;">&gt;</span>
    ServerName <span style="color: #339933;">&lt;</span>span style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;color: #800080;&quot;</span><span style="color: #339933;">&gt;</span>mysuperrubyonrailsunderapachesite<span style="color: #339933;">.</span>ru
<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;</span>    ServerAlias <span style="color: #339933;">&lt;</span>span style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;color: #800080;&quot;</span><span style="color: #339933;">&gt;</span>www<span style="color: #339933;">.</span>mysuperrubyonrailsunderapachesite<span style="color: #339933;">.</span>ru
<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;</span>    DocumentRoot <span style="color: #339933;">&lt;</span>span style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;color: #3366ff;&quot;</span><span style="color: #339933;">&gt;/</span><span style="color: #000000; font-weight: bold;">var</span><span style="color: #339933;">/</span>www<span style="color: #339933;">/</span>rails<span style="color: #339933;">&lt;</span>strong<span style="color: #339933;">&gt;/</span>public<span style="color: #339933;">&lt;/</span>strong<span style="color: #339933;">&gt;&lt;/</span>span<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>Directory <span style="color: #339933;">&lt;</span>span style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;color: #3366ff;&quot;</span><span style="color: #339933;">&gt;/</span><span style="color: #000000; font-weight: bold;">var</span><span style="color: #339933;">/</span>www<span style="color: #339933;">/</span>rails<span style="color: #339933;">/&lt;/</span>span<span style="color: #339933;">&gt;&lt;</span>strong<span style="color: #339933;">&gt;&lt;</span>span style<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;color: #3366ff;&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #000000; font-weight: bold;">public</span><span style="color: #339933;">/&lt;/</span>span<span style="color: #339933;">&gt;&lt;/</span>strong<span style="color: #339933;">&gt;&gt;</span>
        Allow from all
    <span style="color: #339933;">&lt;/</span>Directory<span style="color: #339933;">&gt;</span>
    RailsEnv development
    RailsBaseURI <span style="color: #339933;">/</span>
    ErrorLog logs<span style="color: #339933;">/</span>mysuperrubyonrailsunderapachesite<span style="color: #339933;">.</span>ru<span style="color: #339933;">.</span><span style="color: #990000;">log</span>
<span style="color: #339933;">&lt;/</span>VirtualHost<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<div id="_mcePaste" style="position: absolute; left: -10000px; top: 1319px; width: 1px; height: 1px; overflow: hidden;">

<div class="wp_syntax"><table><tr><td class="code"><pre class="php" style="font-family:monospace;">mysuperrubyonrailsunderapachesite<span style="color: #339933;">.</span>ru</pre></td></tr></table></div>

</div>
<p>Эта конфа обозначает, что содержимое директории с рельсовым приложением лежит в <code>/var/www/rails</code>, а папка <code>public</code> &#8211; та самая публичная папка рельсов где лежат CSS, JS, картинки и прочее.</p>
<p>Внимательно посмотрите какие права у каталогов. Признаком нехватки прав у апача, помимо логов,  является <code>Apache Test Page</code>.<br />
Помните, что апач по умолчанию работает под ущербным пользователем <code>apache</code>, поэтому следует дать ему права на чтение и исполнение в каталоге <code>/var/www/rails/</code>.<br />
Вторая типовая, по крайне мере моя, ошибка проявляется в том случае если в  <code>/var/www/rails/</code> лежит не само рельсовое приложение а только ссылка на <code>public</code>. Здесь, если сами рельсы лежат допустим в <code>/home/username/rails</code>, даже если вы настроите права ко всем и всякому 0777 в браузере все равно может появиться Test Page. Виновником тому, например в RH-линуксах, может стать SELinux.<br />
Отключить SELinux можно установив значение параметра <code>SELINUX=disabled</code> в файле <code>/etc/selinux/config</code>, после чего надо перезагрузиться.</p>
<p>На этом грубая настройка Apache под Ruby on Rails закончена. Запускайте Apache как умеете, у меня, например, в Fedora это выглядит так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># service httpd start</span></pre></td></tr></table></div>

<p>Не забудьте настроить iptables, выключить же его можно так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># service iptables stop</span></pre></td></tr></table></div>

<p><meta property="og:image" content="http://blog.lukmus.ru/wp-content/uploads/2011/02/aor.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2011/02/12/ror-passenger-apache/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
