<?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>Christoph Bünte &nbsp;&raquo; Software Entwicklung Berlin</title>
	<atom:link href="http://www.christophbuente.de/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.christophbuente.de</link>
	<description>Software Entwicklung</description>
	<lastBuildDate>Tue, 07 Dec 2010 11:30:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Rails Hosting bei Rocket Rentals &#8211; auch mit Staging Umgebung</title>
		<link>http://www.christophbuente.de/2010-07-20-rails-hosting-bei-rocket-rentals-auch-mit-staging-umgebung/</link>
		<comments>http://www.christophbuente.de/2010-07-20-rails-hosting-bei-rocket-rentals-auch-mit-staging-umgebung/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 09:19:09 +0000</pubDate>
		<dc:creator>Christoph Bünte</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Capistrano]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[staging]]></category>
		<category><![CDATA[Virtualhost]]></category>

		<guid isPermaLink="false">http://www.christophbuente.de/?p=449</guid>
		<description><![CDATA[Mein aktuelles Projekt an dem ich arbeite ist wheelmap.org. Wheelmap.org stellt eine Anwendung für Rollstuhlfahrer bereit, die es ihnen ermöglicht herauszufinden, welche Orte rollstuhlgerecht sind, und welche nicht. So werden Orte aufgezeigt, welche Fahrst&#252;hle, abgesenkte Bordsteinkanten oder auch sogenannte Rollstuhllifte anbieten. Wheelmap wird auf den Server von Rocket Rentals gehostet. Die Jungs von Rocket Rentals [...]]]></description>
			<content:encoded><![CDATA[<p>Mein aktuelles Projekt an dem ich arbeite ist <a title="Rollstuhlgerechte Orte finden" href="http://wheelmap.org">wheelmap.org</a>. Wheelmap.org stellt eine Anwendung für Rollstuhlfahrer bereit, die es ihnen ermöglicht herauszufinden, welche Orte rollstuhlgerecht sind, und welche nicht. So werden Orte aufgezeigt, welche Fahrst&uuml;hle, abgesenkte Bordsteinkanten oder auch <a href="http://www.lifta.de/treppenlift/rollstuhllift.html">sogenannte Rollstuhllifte</a> anbieten. Wheelmap wird auf den Server von <a title="To the web and back" href="http://www.rocket-rentals.de/de/">Rocket Rentals</a> gehostet. Die Jungs von Rocket Rentals bieten neben Rails Hosting auch <a title="CoWorking bei Rocket Rentals" href="http://www.rocket-rentals.de/coworking">Co-Working Space</a> und professionelle Anwendungsentwicklung.<br />
Da ich hauptsächlich in meinem Büro entwickle, besteht die Notwendigkeit in regelmässigen Abständen meinen Fortschritt zu präsentieren. Und das möglichst auf einem Server im Netz und nicht auf meiner Entwicklungsmaschine. Dafür eignet sich die Live Anwendung allerdings schlecht. Kleinere Fehler oder unvollständige Features möchte man nicht auf den echten Benutzer loslassen. Deswegen habe ich eine Staging Umgebung eingerichtet, die jeweils den aktuellen Entwicklungsstand zeigt. Die Live Umgebung läuft weiterhin nur mit einer stabilen Version. Und so gehts:<span id="more-449"></span>Als erstes muss in DNS Konfiguration eine Subdomain eingerichtet werden. Das ist von Rocket Rentals unabhängig und sollte durch den DNS Provider oder auf dessen Weboberfläche vorgenommen werden. In meinem Fall ist die Domain: <a href="http://staging.wheelmap.org">staging.wheelmap.org</a></p>
<p><img class="alignleft size-medium wp-image-460" style="margin: 5px;" title="screenshot_admin_rocket_rentals" src="http://www.christophbuente.de/wp-content/uploads/screenshot_admin_rocket_rentals-300x147.jpg" alt="screenshot_admin_rocket_rentals" width="300" height="147" /> Damit der Rocket Rentals Server richtig auf den Request reagieren kann, muss im Admin Frontend ebenfalls eine Subdmain angelegt werden. Dazu logged man sich unter beim <a title="Rocket Rentals Login" href="https://login.rocket-rentals.de:8080/">Hosting</a> ein. Im oberen Menü wählt man &#8220;Sites&#8221;. Aus dem linken Menü wählt man dann &#8220;Subdomain&#8221; aus. Das Host Feld beinhaltet den Namen der Subdomain. Der Redirect Type ist &#8220;No flag&#8221;. Der Redirect Path ist &#8220;/&lt;subdomain&gt;_&lt;domain&gt;_&lt;tld&gt;&#8221;. Beispiel: &#8220;/staging_wheelmap_org&#8221;. Nach dem Speichern dauert es höchstens 15 Minuten, bis die Änderungen aktiv sind. In der Zwischenzeit können wir aber schon eine neue Datenbank anlegen. Das ist besonders wichtig, da wir nicht die Produktivdatenbank versehentlich verändern wollen, wenn die Auftraggeber die neue Version ausprobieren und dabei Daten manipulieren. Auch das kann auf der Admin Seite des Rocket Rentals Frontend geschehen. Usernamen und Passwort für die Datenbank nicht vergessen!</p>
<p>Dann muss auf dem Rechner, der das deployment durchführt eine Capistrano Erweiterung installiert werden:</p>
<pre lang="bash&quot;">sudo gem install capistrano-ext</pre>
<p>Danach muss die deploy.rb Datei etwas angepasst werden. Füge folgende Zeilen an den Anfang der Datei:</p>
<pre lang="ruby"># config/deploy.rb

set :stages,        ['staging', 'production']
set :default_stage, 'staging'
require 'capistrano/ext/multistage'</pre>
<p>Jetzt werden für jede Umgebung im Rails Projekt unter config/deploy/ eine eigene Datei mit dem Umgebungsnamen angelegt:</p>
<pre lang="bash">mkdir -p config/deploy
touch config/deploy/staging.rb
touch config/deploy/production.rb</pre>
<p>Aus der bisherigen deploy.rb Datei müssen folgende Zeilen in die config/deploy/production.rb kopiert werden:</p>
<pre lang="ruby"># config/deploy/production.rb

set :application, 'domain_tld' # Beispiel: wheelmap_org
set :db_names, :production =&gt; 'prod_db_name'
set :db_user, 'prod_db_username'
set :db_password, 'prod_db_password'
set :rails_env,   'production'</pre>
<p>Anschließend müssen diese Zeilen in der config/deploy.rb auskommentiert oder gelöscht werden.</p>
<p>In der config/deploy/staging.rb Datei müssen jetzt die Angaben für die Staging Umgebung gemacht werden:</p>
<pre lang="ruby"># config/deploy/staging.rb

set :application, 'subdomain_domain_tld' #Beispiel: staging_wheelmap_org
set :db_names, :production =&gt; 'staging_db_name'
set :db_user, 'staging_db_username'
set :db_password, 'staging_db_password'
set :rails_env,   'staging'</pre>
<p>Nun sind alle Vorbereitungen getroffen und wir können die Staging Umgebung einrichten:</p>
<pre>cap staging deploy:setup</pre>
<p>Danach kann die Anwendung deployed werden:</p>
<pre>cap staging deploy:cold</pre>
<p>Will man die Live Version deployen führt man folgenden Befehl aus:</p>
<pre>cap production deploy</pre>
<p>Bei Problemen oder Fragen einfach einen Kommentar hinterlassen.</p>
<div id="crp_related"><h3>Ähnliche Beiträge:</h3><ul><li><a href="http://www.christophbuente.de/2007-11-25-ruby-on-rails-auf-mac-os-x-5-minuten-kurzanleitung/" rel="bookmark" class="crp_title">Ruby on Rails auf Mac OS X &#8211; 5 Minuten Kurzanleitung</a></li><li><a href="http://www.christophbuente.de/2007-11-17-canoo-webtest-web-anwendungen-automatisch-testen/" rel="bookmark" class="crp_title">canoo webtest &#8211; Web-Anwendungen automatisch testen</a></li><li><a href="http://www.christophbuente.de/2007-11-24-advancing-rails-ein-workshop-mit-david-a-black/" rel="bookmark" class="crp_title">Advancing Rails &#8211; Ein Workshop mit David A. Black</a></li><li><a href="http://www.christophbuente.de/2007-12-21-voiceglue-konfiguration-server-fur-sprachanwendungen-einrichten/" rel="bookmark" class="crp_title">VoiceGlue Konfiguration &#8211; Server für Sprachanwendungen einrichten</a></li><li><a href="http://www.christophbuente.de/2008-07-01-mysql-myisam-index-oder-nicht/" rel="bookmark" class="crp_title">MySQL MyISAM &#8211; Index oder nicht?</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.christophbuente.de/2010-07-20-rails-hosting-bei-rocket-rentals-auch-mit-staging-umgebung/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apache startet nach Time Machine Restore nicht mehr</title>
		<link>http://www.christophbuente.de/2009-09-10-apache-startet-nach-time-machine-restore-nicht-mehr/</link>
		<comments>http://www.christophbuente.de/2009-09-10-apache-startet-nach-time-machine-restore-nicht-mehr/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 11:17:34 +0000</pubDate>
		<dc:creator>Christoph Bünte</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[error_log]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[Konsole]]></category>
		<category><![CDATA[MacBook]]></category>
		<category><![CDATA[restore]]></category>
		<category><![CDATA[time machine]]></category>
		<category><![CDATA[Webserver]]></category>

		<guid isPermaLink="false">http://www.christophbuente.de/?p=353</guid>
		<description><![CDATA[Sicherlich hast du gelesen, dass ich vor kurzem mein MacBook von einem Time Machine Backup neu aufsetzen musste, weil der Rechner nicht mehr bootete. Nach dem Restore schien alles gut zu laufen, aber der Apache Webserver startete nicht mehr: $ ps aux &#124; grep httpd christoph 6783 0.0 0,0 599828 504 s000 R+ 1:01pm 0:00.00 [...]]]></description>
			<content:encoded><![CDATA[<p>Sicherlich hast du gelesen, dass ich vor kurzem mein MacBook von einem Time Machine Backup neu aufsetzen musste, weil der Rechner nicht mehr bootete. Nach dem Restore schien alles gut zu laufen, aber der Apache Webserver startete nicht mehr:<br />
<span id="more-353"></span></p>
<pre lang="bash">$ ps aux | grep httpd
christoph  6783   0.0  0,0   599828    504 s000  R+    1:01pm   0:00.00 grep httpd</pre>
<p>In der Konsole fand ich folgende Zeilen:</p>
<pre lang="log">07.09.09 12:21:27 org.apache.httpd[1405] (2)No such file or directory: httpd: could not open error log file /private/var/log/apache2/error_log.
07.09.09 12:21:27 org.apache.httpd[1405] Unable to open logs
07.09.09 12:21:27 com.apple.launchd[1] (org.apache.httpd[1405]) Exited with exit code: 1
07.09.09 12:21:27 com.apple.launchd[1] (org.apache.httpd) Throttling respawn: Will start in 10 seconds
</pre>
<p>Offensichtlich ging das was mit dem Öffnen der Logdatei schief.</p>
<pre lang="bash">$ ls /private/var/log/apache/error_log
/private/var/log/apache/error_log: No such file or directory
</pre>
<p>Das Verzeichnis /private war nicht wieder erstellt worden. Also habe ich ein neues angelegt:</p>
<pre lang="bash">$ sudo mkdir -p /private/var/log/apache2</pre>
<div id="crp_related"><h3>Ähnliche Beiträge:</h3><ul><li><a href="http://www.christophbuente.de/2009-09-09-500-internal-server-error-apache-config-vs-wp-super-cache/" rel="bookmark" class="crp_title">500 Internal Server Error &#8211; Apache config vs. WP-Super-Cache</a></li><li><a href="http://www.christophbuente.de/2007-12-21-voiceglue-konfiguration-server-fur-sprachanwendungen-einrichten/" rel="bookmark" class="crp_title">VoiceGlue Konfiguration &#8211; Server für Sprachanwendungen einrichten</a></li><li><a href="http://www.christophbuente.de/2009-09-08-korruptes-dateisystem-datenrettung-mit-time-machine-und-drobo/" rel="bookmark" class="crp_title">Korruptes Dateisystem &#8211; Datenrettung mit Time Machine und Drobo</a></li><li><a href="http://www.christophbuente.de/2007-06-19-performance-tests/" rel="bookmark" class="crp_title">Performance Tests</a></li><li><a href="http://www.christophbuente.de/2007-11-10-paypal-subscriptions-abonnements-in-java-integrieren/" rel="bookmark" class="crp_title">Paypal subscriptions &#8211; Abonnements in Java integrieren</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.christophbuente.de/2009-09-10-apache-startet-nach-time-machine-restore-nicht-mehr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached (Feed is rejected)
Page Caching using memcached
Database Caching 4/15 queries in 0.023 seconds using memcached
Object Caching 662/688 objects using memcached

Served from: www.christophbuente.de @ 2012-02-07 08:12:02 -->
