<?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>niebegeg.net &#187; Modul</title>
	<atom:link href="http://niebegeg.net/tags/modul/feed/" rel="self" type="application/rss+xml" />
	<link>http://niebegeg.net</link>
	<description>Mein Leben im Entwicklerland</description>
	<lastBuildDate>Thu, 03 May 2012 18:41:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Aktive Drupal-Website auf den PC spiegeln</title>
		<link>http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/</link>
		<comments>http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 20:03:06 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Modul]]></category>
		<category><![CDATA[Website development]]></category>

		<guid isPermaLink="false">http://wp.niebegeg.net/?p=375</guid>
		<description><![CDATA[Anmerkung: Dieser Post erschien ursprünglich im PartMaster-Blog. In Drupal lässt sich ja mit drush site-aliases und den drush-Kommandos rsync und sql-sync elegant ein Setup mit Staging-Site und Live-Site auf einem Server umsetzen, wie kürzlich hier beschrieben. Ziel war dabei, schnell eine Kopie einer Drupal-Website zu erstellen, um daran z.B. Modul-Updates zu testen oder neue Konfigurationen, [...]]]></description>
			<content:encoded><![CDATA[<p><em>Anmerkung: Dieser Post erschien ursprünglich im <a href="http://www.partmaster.de/blog/">PartMaster-Blog</a>.</em></p>

<p>In Drupal lässt sich ja mit <a href="http://drush.ws/#site-alias">drush site-aliases</a> und den drush-Kommandos <a href="http://drush.ws/#rsync">rsync</a> und <a href="http://drush.ws/#sql-sync">sql-sync</a> elegant ein Setup mit Staging-Site und Live-Site auf einem Server umsetzen, wie <a href="/blog/drush-site-alias-ein-sicherheitsnetz-fuer-die-drupal-website-entwicklung">kürzlich hier beschrieben</a>. Ziel war dabei, schnell eine Kopie einer Drupal-Website zu erstellen, um daran z.B. Modul-Updates zu testen oder neue Konfigurationen, Module und Themes auszuprobieren.</p>

<p>Das Prinzip lässt sich nun leicht auf den eigenen Rechner ausdehnen. Ich habe z.B. viele meiner aktiv zu entwickelnden Website-Projekte auf meinem Notebook dabei und kann unabhängig von Internet-Verbindung und ssh-Latenz daran weiter arbeiten.</p>

<p><a href="http://mearra.com/blogs/vesa-palmu">Vesa Palmu</a> hat sehr gut und umfassend beschrieben, wie man sich unter Mac OS eine <a href="http://mearra.com/blogs/vesa-palmu/how-setup-mac-os-x-106-drupal-environment">Drupal-Entwicklungsumgebung einrichtet</a>. Er nutzt die nativen Werkzeuge des OS, eine Alternative ist MAMP. Linux-Benutzer haben auch meist alle Dienste installiert und müssen evtl. lediglich MySQL nach installieren. Windows-Anwender sollten wohl auch XAMPP setzen, um damit zum Erfolg zu kommen.
Acquia bietet für alle genannten Betriebssysteme den <a href="http://acquia.com/documentation/acquia-drupal-stack/">Acquia Drupal Stack-Installer</a>, der sicher auch eine sehr gute Wahl ist. Ich mag es nativ und habe den erstgenannten Weg gewählt.<br />
<em>Anmerkung</em>: Drush soll auch <a href="http://drupal.org/node/594744">unter Windows lauffähig sein</a>. Ich habe das nicht getestet.</p>

<p>Nun legt man im Heimatordner den Ordner <code>.drush</code> an und installiert dort drush. Vorzugsweise via Git, weil damit die Aktualisierung der Drush-Installation am einfachsten ist.</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>.drush
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>git.drupalcode.org<span style="color: #000000; font-weight: bold;">/</span>project<span style="color: #000000; font-weight: bold;">/</span>drush.git
<span style="color: #7a0874; font-weight: bold;">cd</span> drush
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout <span style="color: #000000;">6</span>.x-<span style="color: #000000;">4.0</span>-rc3</pre>

<p>Der letzte Befehl aktiviert die derzeit neueste drush-Version. Alle verfügbaren Versionen in einem Projekt werden getaggt und können so leicht ermittelt werden:</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> tag</pre>

<p>Nun noch die Datei <code>aliases.drushrc.php</code> vom im Ordner <code>~/.drush</code> anlegen (oder vom Server kopieren). Dort werden die beiden Drupal-Installationen auf dem Server eingetragen, in den  Feldern <code>remote-host</code> und <code>remote-user</code> die ssh-Zugangsdaten zum Server ergänzen und einen  Eintrag für die lokale Installation auf dem Notebook hinzugefügt.</p>

<pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'test'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'test.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/var/www/test.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'remote-host'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'www.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'remote-user'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ich'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'live'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/var/www/beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'remote-host'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'www.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'remote-user'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ich'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dev'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'l.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/Users/drue/Sites/test.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'db-url'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'mysql://web1:MySecret@localhost/usr_web1_3'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>

<p>Ich definiere für jede meiner lokalen Projekt-Websites als Domainname den ursprünglichen Domainname mit einem vorangestellten &#8220;l.&#8221;. Der Domainname, hier <code>l.beispiel.de</code> wird in <code>/etc/hosts</code> (bei Mac OS und Linux, Windows-User müssen die Datei <code>hosts</code> irgendwo unter <code>c:\windows</code> suchen) eingetragen.<br />
Der Datenbank auf dem lokalen Rechner gebe ich üblicherweise den selben Namen und das selbe Passwort wie auf dem Originalsystem. Da es auf dem lokalen Rechner noch keine Drupal-Installation und damit keine Datei <code>settings.php</code> gibt, muss die Datenbank-URL hier angegeben werden und wird dann in die Datei <code>settings.php</code> übernommen. Die Datenbank muss im MySQL-Server angelegt werden und die Zugriffsberechtigungen korrekt eingestellt werden.</p>

<p>Nun muss dem Apache noch gesagt werden, was er bei Aufrufen der Domain <code>l.beispiel.de</code> ausliefern soll (hier als Minimalversion).</p>

<pre class="ini" style="font-family:monospace;">&lt;VirtualHost *:<span style="">80</span>&gt;
  ServerAdmin dirk@rueweb.de
  DocumentRoot /Users/drue/Sites/l.beispiel.de
  ServerName l.beispiel.de
&lt;/VirtualHost&gt;</pre>

<p>Nun kann der Transfer der Drupal-Site starten:</p>

<pre class="bash" style="font-family:monospace;">drush rsync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span>dev
drush sql-sync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span>dev</pre>

<p>Fertig. Nun kann man immer an einer Website arbeiten, ohne immer Verbindung zur Server haben zu müssen.</p>

<p>Achja, nochwas: Wenn das Server-OS nicht gleich lokalen OS ist, bei mir Linux und Mac OS, dann kann es zu einem <a href="http://drupal.org/node/994702">Problem beim <code>sql-sync</code> kommen</a>, da die Pfade zum Ordner für temporäre Dateien kommen, bei Linux <code>/tmp</code> und bei Mac OS <code>/private/tmp</code>.</p>

<pre class="bash" style="font-family:monospace;">mysqldump: Can<span style="color: #ff0000;">'t create/write to file '</span><span style="color: #000000; font-weight: bold;">/</span>private<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>beispiel.de_usr_web1_3.sql.TjyIrx<span style="color: #ff0000;">' (Errcode: 2)</span></pre>

<p>Ich habe das nur so lösen können, indem ich auf dem Server das Verzeichnis angelegt habe, welches auf dem Client für temporäre Dateien genutzt wird.</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>private<span style="color: #000000; font-weight: bold;">/</span>tmp
<span style="color: #c20cb9; font-weight: bold;">chmod</span> 0777 <span style="color: #000000; font-weight: bold;">/</span>private<span style="color: #000000; font-weight: bold;">/</span>tmp</pre>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a>  </li>
<li> <a href="http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/" title="Permanent link to Multisites mit Drupal &#8211; schön wars">Multisites mit Drupal &#8211; schön wars</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
<li> <a href="http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/" title="Permanent link to Meine gesammelten Drush-Sessions">Meine gesammelten Drush-Sessions</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=375&amp;md5=bfaad92ffbd1993dac782f72024a953a" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F12%2F12%2Faktive-drupal-website-auf-den-pc-spiegeln%2F&amp;language=de_DE&amp;category=text&amp;title=Aktive+Drupal-Website+auf+den+PC+spiegeln&amp;description=Anmerkung%3A+Dieser+Post+erschien+urspr%C3%BCnglich+im+PartMaster-Blog.+In+Drupal+l%C3%A4sst+sich+ja+mit+drush+site-aliases+und+den+drush-Kommandos+rsync+und+sql-sync+elegant+ein+Setup+mit+Staging-Site+und+Live-Site+auf+einem...&amp;tags=Drupal%2CDrush%2CModul%2CWebsite+development%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</title>
		<link>http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/</link>
		<comments>http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 22:42:08 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Modul]]></category>

		<guid isPermaLink="false">http://wp.niebegeg.net/?p=381</guid>
		<description><![CDATA[Anmerkung: Dieser Post erschien ursprünglich im PartMaster-Blog. Drush ist erste Wahl bei der Administration einer Drupal-Website. Und seit Drush auch Site-Aliases kennt, kann man auch &#8220;Server voller Drupal-Sites&#8221; entspannt verwalten. Bei den Lullabots  ist eine sehr gute Beschreibung zu site-aliases zu finden. Nun lassen sich diese Site-Aliases nutzen, um zu einer vorhandenen Website eine Testversion [...]]]></description>
			<content:encoded><![CDATA[<p><em>Anmerkung: Dieser Post erschien ursprünglich im <a href="http://www.partmaster.de/blog/">PartMaster-Blog</a>.</em></p>

<p><a href="http://drupal.org/project/drush">Drush</a> ist erste Wahl bei der Administration einer Drupal-Website. Und seit Drush auch Site-Aliases kennt, kann man auch &#8220;Server voller Drupal-Sites&#8221; entspannt verwalten. Bei den Lullabots  ist eine <a href="http://www.lullabot.com/articles/new-features-drush-3">sehr gute Beschreibung zu site-aliases</a> zu finden.</p>

<p>Nun lassen sich diese Site-Aliases nutzen, um zu einer vorhandenen Website eine Testversion anzulegen. Das Ziel ist dabei, eine Kopie einer Website anzulegen, an der man neue Module ausprobieren, Themes überarbeiten oder Konfigurationen
testweise ändern kann (und ich könnte hier noch viele andere Gründe nennen&#8230;).</p>

<p>Anmerkung: Bei dieser Beschreibung nehme ich an, dass die Live-Website unter der Domain &#8220;beispiel.de&#8221; erreichbar ist und die Staging-Website unter &#8220;test.beispiel.de&#8221; aufrufbar sein soll.   
Für dieses Setup nutze ich nicht Drupals Multisite-Funktion, sondern zwei getrennte Verzeichnisse. So kann man auf der Staging-Site leicht Module aktualisieren oder austauschen, ohne die Funktion der Live-Site zu gefährden.</p>

<p>Die Einrichtung dieses Setups ist recht einfach. 
Zuerst erstellt man die Datei <code>$HOME/.drush/aliases.drushrc.php</code> und beschreibt dort
die beiden Websites.</p>

<pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>   
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'test'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>   
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'test.beispiel.de'</span><span style="color: #339933;">,</span>   
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/var/www/test.beispiel.de'</span><span style="color: #339933;">,</span>   
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'live'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>   
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'beispiel.de'</span><span style="color: #339933;">,</span>   
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/var/www/beispiel.de'</span><span style="color: #339933;">,</span>   
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>

<p>Die Schlüsselwerte des Arrays <code>$aliases</code> sind die Site-Aliases, in unserem Fall
&#8220;live&#8221; und &#8220;test&#8221;. Diese werden mit vorangestelltem <code>@</code> als Drush-Argumente
angewendet.</p>

<p>Nun legt man eine weitere Datenbank in MySQL (oder PostgreSQL) an, kopiert mit
Drush den Ordner mit der Live-Installation in ein anderes Verzeichnis und passt
in der Datei <code>settings.php</code> die <code>$db_url</code> an.</p>

<pre class="bash" style="font-family:monospace;">drush rsync <span style="color: #660033;">--include-conf</span> <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span>   
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>test.beispiel.de<span style="color: #000000; font-weight: bold;">/</span>   
<span style="color: #c20cb9; font-weight: bold;">vim</span> sites<span style="color: #000000; font-weight: bold;">/</span>beispiel.de<span style="color: #000000; font-weight: bold;">/</span>settings.php</pre>

<p>Als Nächstes muss die Datenbank aus der Live-Site noch mittels Drush in die
Datenbank der Test-Site kopiert werden.</p>

<pre class="bash" style="font-family:monospace;">drush sql-sync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span></pre>

<p>Jetzt muss man noch dafür sorgen, dass die Test-Website von draußen erreichbar
ist und dafür <a href="http://httpd.apache.org/docs/2.0/vhosts/examples.html">den Webserver
anpassen</a>, und ggf. auch
den Nameserver.</p>

<p>Nun kann die Test-Website aufgerufen und bearbeitet werden. Um nicht die
Übersicht zu verlieren, bietet sich das
<a href="http://drupal.org/project/environment_indicator">environment_indicator.module</a>
an. Mit dessen Hilfe wird auf der Website eine unaufdringliche Kennzeichnung der
Live- und Test-Website an.</p>

<p>Das sieht für die Test-Site so:</p>

<pre class="ini" style="font-family:monospace;">$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_text'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 'TEST SITE'</span><span style="color: #666666; font-style: italic;">;   </span>
$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_color'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 'dark-red'</span><span style="color: #666666; font-style: italic;">;   </span>
$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_enabled'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> TRUE</span><span style="color: #666666; font-style: italic;">;</span></pre>

<p>und für die Live-Site so:</p>

<pre class="ini" style="font-family:monospace;">$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_text'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 'LIVE SITE'</span><span style="color: #666666; font-style: italic;">;   </span>
$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_color'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 'green'</span><span style="color: #666666; font-style: italic;">;   </span>
$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_enabled'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> TRUE</span><span style="color: #666666; font-style: italic;">;</span></pre>

<p>aus.</p>

<p>Sollen nun neue Module, Themes oder Konfigurationsänderungen an der Test-Site
ausprobiert werden, so kopiert man &#8220;mal eben&#8221; die Datenbank und das Verzeichnis
der Live-Site in die Test-Site und kann loslegen.</p>

<pre class="bash" style="font-family:monospace;">drush sql-sync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span>   
drush rsync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span></pre>

<p>Drush kopiert dabei alle Dateien, schließt jedoch die <code>settings.php</code> aus, so
dass die Datenbank-Zuordnung der Test-Site erhalten bleibt. Das Verhalten von
<code>drush rsync</code> kann umfangreich angepasst werden, Details dazu bietet die
<a href="http://drush.ws/#rsync">umfangreiche Drush-Hilfe</a>.</p>

<p>Unbedenklich ist das Kopieren der Live-Site in die Test-Site. In der umgekehrten
Richtung muss man  vorsichtig sein, es werden ja alle Dateien im Verzeichnis und
die Datenbank überschrieben. Im einfachsten Fall verliert man die Watchdog-,
Session-  und Statistikdaten seit dem letzten Kopieren der Live- in die
Test-Site. Sollten jedoch zwischenzeitlich auch Inhalte auf der Live-Site
erstellt oder aktualisiet worden sein, oder wurden Kommentare eingegeben, dann
gehen diese beim Kopieren der Test-Site auf die Live-Site verloren.    Möglich
wäre es, diese Inhaltsdaten vor dem Kopieren mit <a href="/blog/mal-eben-ein-drupal-backup">Backup_migrate und einem
angepassten Backup-Profil sichern</a> und nach
dem Kopieren wieder in die Datenbank zu importieren. Aber dass setzt
detaillierte Kenntnisse der Drupal-Tabellenstruktur voraus &#8211; man ganz genau
wissen, welche Datenbanktabellen gesichert und wieder hergestellt werden müssen.
Ich habe das so noch nicht angewendet, bleibt also Raum für zukünftige Tests.</p>

<p><strong>Update:</strong> Nach dem Kopieren der Seite müssen evtl. noch Konfigurationswerte angepasst werden. So speichert z.B. das Modul <a href="http://drupal.org/project/securepages">Secure Pages</a> die Basis-URL für die http- und https-Version.</p>

<pre class="bash" style="font-family:monospace;">drush <span style="color: #000000; font-weight: bold;">@</span>live vget securepages_basepath   
securepages_basepath: <span style="color: #ff0000;">&quot;http://beispiel.de&quot;</span>   
securepages_basepath_ssl: <span style="color: #ff0000;">&quot;https://beispiel.de&quot;</span></pre>

<p>Auch das Modul <a href="http://drupal.org/project/mobile_tools">Mobile Tools</a> speichert URLs für Mobil- und Desktop-Version einer Website als Variablen. Solche Variablen müssen für die Test-Website angepasst werden.</p>

<pre class="bash" style="font-family:monospace;">drush <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span> vset securepages_basepath http:<span style="color: #000000; font-weight: bold;">//</span>test.beispiel.de   
drush <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span> vset securepages_basepath_ssl https:<span style="color: #000000; font-weight: bold;">//</span>test.beispiel.de</pre>

<p>Einen Schnelltest bietet:</p>

<pre class="bash" style="font-family:monospace;">drush <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span> vget <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> beispiel.de</pre>

<p>Man sollte sich jedoch nicht ausschließlich auf diesen Schnelltest verlassen.</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/" title="Permanent link to Aktive Drupal-Website auf den PC spiegeln">Aktive Drupal-Website auf den PC spiegeln</a>  </li>
<li> <a href="http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/" title="Permanent link to Multisites mit Drupal &#8211; schön wars">Multisites mit Drupal &#8211; schön wars</a>  </li>
<li> <a href="http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/" title="Permanent link to Mal eben ein Drupal-Backup!">Mal eben ein Drupal-Backup!</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
<li> <a href="http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/" title="Permanent link to Meine gesammelten Drush-Sessions">Meine gesammelten Drush-Sessions</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=381&amp;md5=9ead57c9cd82119e21d1ed901f67e154" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F11%2F24%2Fdrush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung%2F&amp;language=de_DE&amp;category=text&amp;title=Drush+site-alias+%26%238211%3B+ein+Sicherheitsnetz+f%C3%BCr+die+Drupal-Website-Entwicklung&amp;description=Anmerkung%3A+Dieser+Post+erschien+urspr%C3%BCnglich+im+PartMaster-Blog.+Drush+ist+erste+Wahl+bei+der+Administration+einer+Drupal-Website.+Und+seit+Drush+auch+Site-Aliases+kennt%2C+kann+man+auch+%26%238220%3BServer+voller+Drupal-Sites%26%238221%3B+entspannt+verwalten....&amp;tags=Backup%2CDrupal%2CDrush%2CModul%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Mal eben ein Drupal-Backup!</title>
		<link>http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/</link>
		<comments>http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 21:37:29 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Intranet]]></category>
		<category><![CDATA[Modul]]></category>

		<guid isPermaLink="false">http://wp.niebegeg.net/?p=372</guid>
		<description><![CDATA[Anmerkung: Dieser Post erschien ursprünglich im PartMaster-Blog. Beim Entwickeln einer Drupal-Website gehören bei mir ein paar Module immer auf die Liste der unbedingt zu installierenden Verwaltungsmodule. Neben dem Admin-Modul und den Themes Tao und Rubik ist da vor allem das Backup and Migrate-Modul zu nennen. Ich installiere es auf nahezu allen Drupal-Websites, egal ob die [...]]]></description>
			<content:encoded><![CDATA[<p><em>Anmerkung: Dieser Post erschien ursprünglich im <a href="http://www.partmaster.de/blog">PartMaster-Blog</a>.</em></p>

<p>Beim Entwickeln einer Drupal-Website gehören bei mir ein paar Module immer auf die Liste der unbedingt zu installierenden Verwaltungsmodule. Neben dem <a href="http://drupal.org/project/admin">Admin</a>-Modul und den Themes <a href="http://drupal.org/project/tao">Tao</a> und 
<a href="http://drupal.org/project/rubik">Rubik</a> ist da vor allem das <a href="http://drupal.org/project/backup_migrate">Backup and Migrate</a>-Modul zu nennen. Ich installiere es auf nahezu allen Drupal-Websites, egal ob die Installation in einem shared Webhosting erfolgt oder auf meinen eigenen Servern.</p>

<p>Zur Funktion des Moduls: <em>Backup and Migrate</em> erstellt manuell oder zeitgesteuert einen Abzug (Dump) der Drupal-Datenbank in eine Datei. Man kann einzelne Datenbanktabellen komplett vom Backup ausgeklammern oder nur deren Struktur sichern. Diese Datei kann beim Backup gleich noch komprimiert werden. Ein solcher Datenbank-Dump wird bei Bedarf per Mausklick wieder in die Datenbank importiert und ersetzt dabei den vorhandenen Datenbankinhalt. Man kann mehrere Profile anlegen und so bei Bedarf verschiedene Sets von Datenbanktabellen sichern, z.B. bei manuellen Backups keine Watchdog-, Session- und Cache-Tabellen, wohl aber bei der täglichen Sicherung.<br />
Das Modul bringt vorbildliche drush-Integration mit, so dass ein Backup oder Restore mal schnell von der Kommandozeile erledigt werden kann.</p>

<p>Mein aktueller Fall: Gerade übertrage ich unser Intranet-Portal von einer seit Jahren produktiven Eigenbau-Drupal-Instanz in eine <a href="http://openatrium.com">OpenAtrium</a>-Installation. Auf der bisherigen Site haben sich eine Vielzahl selbstgebauter Inhaltstypen, Ansichten und jede Menge Beiträge (Nodes) angesammelt, die möglichst auf das in OpenAtrium vorgegebene Repertoire an Inhaltstypen (Buchseiten, Blogpost, Projekte und Aufgaben) abgebildet und in die jeweils passende Gruppe einsortiert werden sollen. Details zu der Migration werde ich später beschreiben, aber es sind verschiedene Strategien am Start und es hat viel mit Probieren und Testen zu tun.</p>

<p>Bei dieser Aufgabe unterstützt mich <em>Backup and Migrate</em> bestens, in dem ich nach jeder erfolgreichen Übertragung von Inhalten oder Konfigurations&#8221;orgien&#8221; ein manuelles Backup erstelle, ähnlich einem Wiederherstellungspunkt bei Windows, oder, um ein besseres Beispiel zu finden: einem git-commit ;)<br />
Schlägt beim nächsten Arbeitsgang ein Node-Import fehl oder haben die importierten Inhalte noch nicht die erwartete Güte, dann wird das letzte Backup mit einem Klick wieder eingespielt, und ein die Importstrategie kann verbessert nochmals angewendet werden.</p>

<p><em>Backup and Migrate</em> bietet auch die Möglichkeit, zeitgesteuert und automatisch beim Cron-Lauf eine Datenbanksicherung durchzuführen. Üblicherweise stelle ich als Zeitplan eine Datensicherung alle 24 Stunden ein und erhalte mir die drei letzten Backups. So kann man leicht auf aus Drupal heraus auf einen früheren Stand zurückgreifen, ohne die Datenbankdatei aus dem Serverbackup wieder herstellen zu müssen.</p>

<p>Es ist natürlich auch möglich, mal schnell Veränderungen an der Drupal-Site mittels Vergleich von zwei Datenbank-Dumps herauszufinden:</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> files<span style="color: #000000; font-weight: bold;">/</span>backup_migrate
<span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #660033;">-d</span> scheduled<span style="color: #000000; font-weight: bold;">/</span>bak-<span style="color: #000000;">2010</span>-<span style="color: #000000;">11</span>-12T00-<span style="color: #000000;">21</span>-<span style="color: #000000;">25</span>.mysql \\   
      manual<span style="color: #000000; font-weight: bold;">/</span>bak-<span style="color: #000000;">2010</span>-<span style="color: #000000;">11</span>-12T21-<span style="color: #000000;">22</span>-<span style="color: #000000;">41</span>.mysql</pre>

<p>Das Modul ersetzt jedoch keine Datensicherung auf Serverebene, sondern bildet eine sinnvolle Ergänzung dazu. Auch werden mit dem Modul keine Dateien gesichert, der Schnappschuss ist also nicht vollständig. Mit <a href="http://git-scm.com">Git</a> hat man jedoch einen guten Helfer für gleichzeitige Snapshots des Dateisystems.</p>

<p>So hat mir <em>Backup and Migrate</em> schon manche Stunde Arbeitszeit gespart.</p>

<p>Und noch eine Anmerkung: Bei größeren Projekten und komplexeren Setups mit Development-, Staging- und Live Sites ist man mit <a href="http://git-scm.com">Git</a>, <a href="http://drupal.org/project/drush_make">Drush make</a> und <a href="http://drupal.org/project/features">Features</a> natürlich besser aufgestellt. Aber auch das ist eine andere Geschichte, die ich für später aufhebe. ;)</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a>  </li>
<li> <a href="http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/" title="Permanent link to backup_migrate + drush = happy days :)">backup_migrate + drush = happy days :)</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/" title="Permanent link to Aktive Drupal-Website auf den PC spiegeln">Aktive Drupal-Website auf den PC spiegeln</a>  </li>
<li> <a href="http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/" title="Permanent link to Multisites mit Drupal &#8211; schön wars">Multisites mit Drupal &#8211; schön wars</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=372&amp;md5=c49218bf3c64325b44d438a5d94e236d" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F11%2F13%2Fmal-eben-ein-drupal-backup%2F&amp;language=de_DE&amp;category=text&amp;title=Mal+eben+ein+Drupal-Backup%21&amp;description=Anmerkung%3A+Dieser+Post+erschien+urspr%C3%BCnglich+im+PartMaster-Blog.+Beim+Entwickeln+einer+Drupal-Website+geh%C3%B6ren+bei+mir+ein+paar+Module+immer+auf+die+Liste+der+unbedingt+zu+installierenden+Verwaltungsmodule.+Neben+dem+Admin-Modul+und...&amp;tags=Backup%2CDrupal%2CDrush%2CIntranet%2CModul%2Cblog" type="text/html" />
	</item>
		<item>
		<title>&#8220;Context&#8221; gehört in meinen Drupal-Modul-Kanon!</title>
		<link>http://niebegeg.net/2010/06/29/context-gehoert-in-meinen-drupal-modul-kanon/</link>
		<comments>http://niebegeg.net/2010/06/29/context-gehoert-in-meinen-drupal-modul-kanon/#comments</comments>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Project of the month]]></category>
		<category><![CDATA[Modul]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ich habe mir ja schon lange vorgenommen, mich mal mit dem context.module zu beschäftigen. Seit ich Bobs Podcast zum Thema gesehen habe. Heute nun war es soweit &#8230; pure Begeisterung! Context ist das neue admin/build/block. Mehr brauche ich dazu nicht schreiben, seht Euch einfach das Video an: http://mustardseedmedia.com/podcast/episode38 Update: Hätte ich fast vergessen zu erwähnen: [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mir ja schon lange vorgenommen, mich mal mit dem <a href="http://dgo.to/context">context.module</a> zu beschäftigen. Seit ich <a href="http://mustardseedmedia.com/podcast/episode38">Bobs Podcast zum Thema</a> gesehen habe. Heute nun war es soweit &#8230; pure Begeisterung! Context ist das neue <em>admin/build/block</em>.</p>

<p>Mehr brauche ich dazu nicht schreiben, seht Euch einfach das Video an: <a href="http://mustardseedmedia.com/podcast/episode38" title="http://mustardseedmedia.com/podcast/episode38">http://mustardseedmedia.com/podcast/episode38</a></p>

<p><strong>Update:</strong>
Hätte ich fast vergessen zu erwähnen: Und warum das alles? Mit dem  <a href="http://dgo.to/context">context.module</a> kann man sehr komfortabel die Anzeigeeinstellungen für Blocks in einer Seite konfigurieren. Also so ähnlich wie die Zurdnung der Blöcke zu regionen und ihre jeweiligen rollenbasierten, benutzerbasierten und seitenbasierten Einstellungen im Block-Konfigurationsformular. Nur eben mit mehr Einstellungsmöglichkeiten, flexiblerer Konfiguration und extrem viel Komfort.</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/01/04/drupal-7-schnelltest-das-rockt/" title="Permanent link to Drupal 7 Schnelltest &#8211; das rockt!">Drupal 7 Schnelltest &#8211; das rockt!</a>  </li>
<li> <a href="http://niebegeg.net/2009/12/17/suchen-auf-drupal-sites-macht-spass-mit-apache-solr/" title="Permanent link to Suchen auf Drupal-Sites macht Spaß mit Apache Solr!">Suchen auf Drupal-Sites macht Spaß mit Apache Solr!</a>  </li>
<li> <a href="http://niebegeg.net/2010/09/30/quickstart-drupal/" title="Permanent link to Quickstart Drupal">Quickstart Drupal</a>  </li>
<li> <a href="http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/" title="Permanent link to Multisites mit Drupal &#8211; schön wars">Multisites mit Drupal &#8211; schön wars</a>  </li>
<li> <a href="http://niebegeg.net/2008/08/18/mein-zukuenftiger-drupal-lieblingseditor-textile/" title="Permanent link to Mein zukünftiger Drupal-Lieblingseditor: Textile">Mein zukünftiger Drupal-Lieblingseditor: Textile</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=291&amp;md5=25e7b423c40dd8d8b7590070a25bb630" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/06/29/context-gehoert-in-meinen-drupal-modul-kanon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F06%2F29%2Fcontext-gehoert-in-meinen-drupal-modul-kanon%2F&amp;language=de_DE&amp;category=text&amp;title=%26%238220%3BContext%26%238221%3B+geh%C3%B6rt+in+meinen+Drupal-Modul-Kanon%21&amp;description=Ich+habe+mir+ja+schon+lange+vorgenommen%2C+mich+mal+mit+dem+context.module+zu+besch%C3%A4ftigen.+Seit+ich+Bobs+Podcast+zum+Thema+gesehen+habe.+Heute+nun+war+es+soweit+%26%238230%3B+pure+Begeisterung%21...&amp;tags=Drupal%2CModul%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Wenn Pathredirect mit Pathauto  kollidiert &#8230; ein Patch</title>
		<link>http://niebegeg.net/2010/01/08/wenn-pathredirect-mit-pathauto-kollidiert-ein-patch/</link>
		<comments>http://niebegeg.net/2010/01/08/wenn-pathredirect-mit-pathauto-kollidiert-ein-patch/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 21:35:48 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Modul]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Wenn man auf seiner Website das pathauto.module und das path_redirect.module betreibt, dann bekam man seit dem Update auf _path_redirect-6.x-1.0-beta6_ die folgende Fehlermeldung: user warning: Unknown column &#39;path&#39; in &#39;where clause&#39; query: SELECT rid FROM path_redirect WHERE path = &#39;&#60;...&#62;&#39; LIMIT 0, 1 in /sites/all/modules/pathauto/pathauto.inc on line 74. Der Modulautor hat bei dem Update das Tabellenfeld [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man auf seiner Website das <a href="http://drupal.org/project/pathauto">pathauto.module</a> und das  <a href="http://drupal.org/project/path_redirect">path_redirect.module</a> betreibt, dann bekam man seit dem Update auf _path_redirect-6.x-1.0-beta6_ die folgende Fehlermeldung:</p>

<pre>user warning: Unknown column &#39;path&#39; in &#39;where clause&#39; query: 
SELECT rid FROM path_redirect WHERE path = &#39;&#60;...&#62;&#39; LIMIT 0, 1
in /sites/all/modules/pathauto/pathauto.inc on line 74.
</pre>

<p>Der Modulautor hat bei dem Update das Tabellenfeld <code>path</code> in <code>source</code> umbenannt. Davon weiß aber das <em>pathauto.module</em> nichts und nimmt weiterhin das Feld <code>path</code> an. Der Modulautor empfiehlt nun, auf die Entwicklerversion des <em>pathauto.module</em> auszuweichen:</p>

<blockquote><p>There is currently an incompatibility between Path redirect 6.x-1.0-beta6 and Pathauto 6.x-1.2. You must upgrade to Pathauto 6.x-1.x-dev version. Also, make sure to test before using on a production site. This module still is in beta after all.</p>
</blockquote>

<p>Das wollte ich nun auch nicht tun, ich weiß ja nicht, was sich in der Entwicklerversion noch so geändert hat. Also habe ich mit die Fehlermeldung vor genommen und drei Zeilen in der Datei <code>/sites/all/modules/pathauto/pathauto.inc</code> geändert. Hier der Patch (leicht angepasst für die Webseitenbreite): </p>

<pre>diff -u pathauto.inc{,.orig} 
--- pathauto.inc        2010-01-08 22:14:57.000000000 +0100
+++ pathauto.inc.orig   2010-01-08 22:10:44.000000000 +0100
@@ -68,10 +68,10 @@
   $alias_pid = db_result(db_query_range(&#34;SELECT pid FROM {url_alias}
      WHERE dst = &#39;%s&#39; AND src &#60;&#62; &#39;%s&#39; AND language = &#39;%s&#39;&#34;, array($alias, $src, $language), 0, 1));
   if (function_exists(&#39;path_redirect_delete&#39;)) {
     // Delete from path_redirect the exact same alias to the same node.
-    path_redirect_delete(array(&#39;source&#39; =&#62; $alias, &#39;redirect&#39; =&#62; $src));
+    path_redirect_delete(array(&#39;path&#39; =&#62; $alias, &#39;redirect&#39; =&#62; $src));
     // If there still is this alias used in path_redirect, then create a different alias
-    $redirect_rid = db_result(db_query_range(&#34;SELECT rid FROM {path_redirect} WHERE source = &#39;%s&#39;&#34;, $alias, 0, 1));
+    $redirect_rid = db_result(db_query_range(&#34;SELECT rid FROM {path_redirect} WHERE path = &#39;%s&#39;&#34;, $alias, 0, 1));
   }
   if ($alias_pid || !empty($redirect_rid)) {
     return TRUE;
@@ -405,7 +405,7 @@
     if (variable_get(&#39;pathauto_update_action&#39;, 2) == 3 &#38;&#38; function_exists(&#39;path_redirect_save&#39;)) {
       if (!empty($old_alias)) {
         $redirect = array(
-          &#39;source&#39; =&#62; $old_alias,
+          &#39;path&#39; =&#62; $old_alias,
           &#39;redirect&#39; =&#62; $src,
         );
         path_redirect_save($redirect);
</pre>

<p>Ich hoffe das Problem wird sich von offizieller Seite schnell lösen. 1-2 Modulupdates werden erwartet. ;-)</p>
 <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=269&amp;md5=92cfee1cb942b1892120bf74cd4020c5" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/01/08/wenn-pathredirect-mit-pathauto-kollidiert-ein-patch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F01%2F08%2Fwenn-pathredirect-mit-pathauto-kollidiert-ein-patch%2F&amp;language=de_DE&amp;category=text&amp;title=Wenn+Pathredirect+mit+Pathauto++kollidiert+%26%238230%3B+ein+Patch&amp;description=Wenn+man+auf+seiner+Website+das+pathauto.module+und+das+path_redirect.module+betreibt%2C+dann+bekam+man+seit+dem+Update+auf+_path_redirect-6.x-1.0-beta6_+die+folgende+Fehlermeldung%3A+user+warning%3A+Unknown+column+%26%2339%3Bpath%26%2339%3B+in+%26%2339%3Bwhere+clause%26%2339%3B...&amp;tags=Drupal%2CHacking%2CModul%2Cblog" type="text/html" />
	</item>
		<item>
		<title>backup_migrate + drush = happy days :)</title>
		<link>http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/</link>
		<comments>http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 15:06:20 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Modul]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Das backup_migrate.module gehört bei allen von mir administrierten Websites zu den Modulen, die gleich nach der Drupal-Installation installiert und aktiviert werden, selbst wenn ich tägliche Backups der MySQL-DB und des gesamten Rechners erstelle. Was mir noch fehlte, war die Einbindung in drush, um “mal eben” einen DB-Schnappschuss erstellen zu können. So hatte ich mir für [...]]]></description>
			<content:encoded><![CDATA[<p>Das <a href="http://drupal.org/project/backup_migrate">backup_migrate.module</a> gehört bei allen von mir administrierten Websites zu den Modulen, die gleich nach der Drupal-Installation installiert und aktiviert werden, selbst wenn ich tägliche Backups der MySQL-DB und des gesamten Rechners erstelle.</p>

<p>Was mir noch fehlte, war die Einbindung in <a href="http://drupal.org/project/drush">drush</a>, um “mal eben” einen DB-Schnappschuss erstellen zu können. So hatte ich mir für die erste Januarwoche vorgenommen, ein kleines Modul zu bauen, welches genau dies implementiert. Und siehe da: Die <a href="http://drupal.org/node/652370">2.x-Linie</a> des Moduls bringt die Funktionalität schon mit!</p>

<pre class="bash" style="font-family:monospace;">bam backup           <span style="color: #666666; font-style: italic;"># Backup the site's database with Backup and Migrate.</span>
bam restore          <span style="color: #666666; font-style: italic;"># Restore the site's database with Backup and Migrate.</span>
bam destinations     <span style="color: #666666; font-style: italic;"># Get a list of available destinations.</span>
bam sources          <span style="color: #666666; font-style: italic;"># Get a list of available sources.</span>
bam profiles         <span style="color: #666666; font-style: italic;"># Get a list of available settings profiles.</span>
bam backups          <span style="color: #666666; font-style: italic;"># Get a list of previously created backup files.</span></pre>

<p>Ein kurzes</p>

<pre class="bash" style="font-family:monospace;">drush dl backup_migrate
drush <span style="color: #c20cb9; font-weight: bold;">updatedb</span></pre>

<p>erledigte das Update von der bisherigen Version 1.2 auf 2.2. Danke <a href="http://drupal.org/user/72815">Ronan</a>!</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/" title="Permanent link to Mal eben ein Drupal-Backup!">Mal eben ein Drupal-Backup!</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
<li> <a href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/23/konfektionierte-drupal-installation-mit-git/" title="Permanent link to Konfektionierte Drupal-Installation mit git">Konfektionierte Drupal-Installation mit git</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=268&amp;md5=15324f796c5d978bdc5e93074e523f44" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F01%2F08%2Fbackup_migrate-drush-happy-days%2F&amp;language=de_DE&amp;category=text&amp;title=backup_migrate+%2B+drush+%3D+happy+days+%3A%29&amp;description=Das+backup_migrate.module+geh%C3%B6rt+bei+allen+von+mir+administrierten+Websites+zu+den+Modulen%2C+die+gleich+nach+der+Drupal-Installation+installiert+und+aktiviert+werden%2C+selbst+wenn+ich+t%C3%A4gliche+Backups+der+MySQL-DB+und+des...&amp;tags=Backup%2CDrupal%2CDrush%2CModul%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Meine große Drupal-Wunschliste</title>
		<link>http://niebegeg.net/2009/07/10/meine-grosse-drupal-wunschliste/</link>
		<comments>http://niebegeg.net/2009/07/10/meine-grosse-drupal-wunschliste/#comments</comments>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Modul]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[SyncML]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[Wunsch]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Gerade hatte ich Gelegenheit einer MS Sharepoint-Demo beizuwohnen. Anfangs war ich gelangweilt, als solche Dinge wie Forum, Blog, Wiki, Workspaces als Segnungen der modernen &#8220;Enterprise Collaboration&#8221; (!) angepriesen wurden. Das konnte mich als Drupaler nicht wirklich beeindrucken. Aber dann kam das Gespräch zu Workflows und der Integration mit den Office-Werkzeugen (natürlich die aus dem Hause [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade hatte ich Gelegenheit einer <em>MS Sharepoint</em>-Demo beizuwohnen. Anfangs war ich gelangweilt, als solche Dinge wie Forum, Blog, Wiki, Workspaces als Segnungen der modernen &#8220;Enterprise Collaboration&#8221; (!) angepriesen wurden. Das konnte mich als Drupaler nicht wirklich beeindrucken.</p>

<p>Aber dann kam das Gespräch zu Workflows und der Integration mit den Office-Werkzeugen (natürlich die aus dem Hause Microsoft). Und da gefiel mir sehr, wie eine Aufgabe im <em>Sharepoint</em> im <em>Outlook</em> weiter bearbeitet/verwaltet werden konnte, wie Office-Dokumente im Sharepoint eingebettet, weiterbearbeitet, versioniert und freigegeben werden können. Gute Arbeit.</p>

<p>Dann ist mir als administrationserfahrenem Microsoft-Anwender (Server 2003, Exchange, &#8230;) durch den Kopf gegangen, das für die Demo auf Server- und Clientseite neueste Hardware im Einsatz sein musste, um die Demo so flüssig hinzubekommen. Und dass man all diese schöne neue Welt nur hinbekommt, wenn man sich voll auf den Softwarestack aus Redmond verlässt: Windows OS, Exchange, Sharepoint, Office (komplett). Und dass man die Daten da nie wieder ohne Schmerzen rausbekommt, wenn es mal ein besseres System geben sollte. Und dass man bei der einfachsten Installation locker einen ganztagsadmin dafür einplanen kann.</p>

<p>Aber einiges ist nach der Demo denn doch auf meinem Drupal-Wunschzettel gelandet:</p>

<ul>
<li>Intuitivere UI (was sicher mit dem <a href="http://www.d7ux.org/" title="D7UX">Drupal 7 User Experience Project</a> geschafft wird),</li>
<li>Bessere Integration mit externen Office-Werkzeugen</li>
<li>Bessere Suche im Drupal</li>
</ul>

<ul>
<li>Besseres Dokumentenmanagement (bzw. &#8220;nahtlose&#8221; Integration eines <span class="caps">DMS</span>)</li>
</ul>

<p>Und was kann ich dafür tun?</p>

<ul>
<li>Ich werde mich in den nächsten Tagen intensiver mit D7UX beschäftigen und mal sehen, wie ich mich da einbringen kann.
        </li>
<li>Ich werde mir aktiv zwei Projekte auf den Schreibtisch holen
<ul>
<li><a href="http://trac.edgewall.com/">trac</a> -Support für das <a href="http://drupal.org/project/project">project.module</a></li>
</ul>
</li>
<ul>
<li>SyncML-Unterstützung für Drupal (um Kalender, Aufgaben und Kontakte zwischen Drupal und meinem Nokiafon zu synchronisieren. Andere Synchronisationsprotokolle können gern folgen.</li>
</ul>
</ul>

<ul>
<li>Mehr Übersetzungen an die Projekte zurückliefern</li>
</ul>

<p>Also los!</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2009/08/21/neuigkeiten-an-der-drupal-trac-front/" title="Permanent link to Neuigkeiten an der Drupal-Trac-Front">Neuigkeiten an der Drupal-Trac-Front</a>  </li>
<li> <a href="http://niebegeg.net/2008/09/21/beinahe-d6-versuchtes-drupal-update/" title="Permanent link to Beinahe D6: Versuchtes Drupal-Update">Beinahe D6: Versuchtes Drupal-Update</a>  </li>
<li> <a href="http://niebegeg.net/2010/01/04/drupal-7-schnelltest-das-rockt/" title="Permanent link to Drupal 7 Schnelltest &#8211; das rockt!">Drupal 7 Schnelltest &#8211; das rockt!</a>  </li>
<li> <a href="http://niebegeg.net/2009/12/17/suchen-auf-drupal-sites-macht-spass-mit-apache-solr/" title="Permanent link to Suchen auf Drupal-Sites macht Spaß mit Apache Solr!">Suchen auf Drupal-Sites macht Spaß mit Apache Solr!</a>  </li>
<li> <a href="http://niebegeg.net/2009/11/18/git-on-drupal-org/" title="Permanent link to Git on Drupal.org?">Git on Drupal.org?</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=151&amp;md5=bc159a583d133a91dbb916874c682081" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2009/07/10/meine-grosse-drupal-wunschliste/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2009%2F07%2F10%2Fmeine-grosse-drupal-wunschliste%2F&amp;language=de_DE&amp;category=text&amp;title=Meine+gro%C3%9Fe+Drupal-Wunschliste&amp;description=Gerade+hatte+ich+Gelegenheit+einer+MS+Sharepoint-Demo+beizuwohnen.+Anfangs+war+ich+gelangweilt%2C+als+solche+Dinge+wie+Forum%2C+Blog%2C+Wiki%2C+Workspaces+als+Segnungen+der+modernen+%26%238220%3BEnterprise+Collaboration%26%238221%3B+%28%21%29+angepriesen+wurden.+Das...&amp;tags=Drupal%2CMicrosoft%2CModul%2CSharepoint%2CSoftware%2CSyncML%2CTrac%2CWunsch%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Drupal für Admins: Drush</title>
		<link>http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/</link>
		<comments>http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 21:43:34 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Modul]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vor einem Monat wurde Drush in Version 2.0 freigegeben. Für alle, die sich jetzt fragen, was drush ist: ein erstklassiges Drupal-Werkzeug für die Kommandozeile. Und da ich einige Server mit Drupal-Websites betreibe, war ich schnell dabei, mir das Werkzeug mal anzusehen. Ein kleiner Urlaub brachte mir auch genug Arbeit nach der Rückkehr1 und erstklassige Anwendungsfälle. [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einem Monat wurde <a href="http://www.developmentseed.org/blog/2009/jun/09/building-drupal-faster-drush-20">Drush</a> in Version 2.0 freigegeben. Für alle, die sich jetzt fragen, was <em>drush</em> ist: ein erstklassiges Drupal-Werkzeug für die Kommandozeile.
Und da ich einige Server mit Drupal-Websites betreibe, war ich schnell dabei, mir das Werkzeug mal anzusehen. Ein kleiner Urlaub brachte mir auch genug Arbeit nach der Rückkehr<sup class="footnote"><a href="#fn2959671924deabded2c6e6">1</a></sup> und erstklassige Anwendungsfälle.</p>

<p>Ich habe <a href="http:/drupal.org/project/drush">drush</a> unter <em>/usr/local/share</em> installiert und ein paar Shell-Aliase definiert:</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">drush</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>drush<span style="color: #000000; font-weight: bold;">/</span>drush
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">bdrush</span>=<span style="color: #ff0000;">'drush -r ~/html/d6/ -l http://beispiel.de'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">edrush</span>=<span style="color: #ff0000;">'drush -r ~/html/d6/ -l http://example.org'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">ddrush</span>=<span style="color: #ff0000;">'drush -r ~/html/d6/ -l http://demo.example.org'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">pdrush</span>=<span style="color: #ff0000;">'drush -r ~/html/d6/ -l http://projects.example.org'</span></pre>

<p>Drupal ist im Verzeichnis <em>~/html/d6/</em> installiert. Die Parameter <em>-r</em> und <em>-l</em> helfen drush, die gwünschte Website zu finden.</p>

<p>Und dann ist die Installation eines Modules so einfach wie:</p>

<pre class="bash" style="font-family:monospace;">drush dl support       <span style="color: #666666; font-style: italic;"># herunterladen nach sites/all/modules/</span>
drush <span style="color: #7a0874; font-weight: bold;">enable</span> support   <span style="color: #666666; font-style: italic;"># Aktivieren des Moduls</span></pre>

<p>Das Update einer Website wird mit</p>

<pre class="bash" style="font-family:monospace;">drush update</pre>

<p>erledigt. Und an das Datenbankprompt bringt mich</p>

<pre class="bash" style="font-family:monospace;">drush sql cli</pre>

<p>Den Rest findet Ihr selbst heraus. ;)</p>

<p>Nun wollte ich auf einfach Weise den Cron-Lauf für alle Websites zentralisieren. Und habe mir mit einem knappen Mehrzeiler geholfen:</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># Script to run the cron task on all installed Drupal sites.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># (C) 2009 Dirk Ruediger &amp;lt;dirk@niebegeg.net&amp;gt;</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># This script depends on an Drupal installation, shell access to the</span>
<span style="color: #666666; font-style: italic;"># server and drush installed.</span>
<span style="color: #666666; font-style: italic;">#</span>
;
<span style="color: #666666; font-style: italic;"># Where is the drush script located on my disk</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #007800;">DRUSH</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>drush
;
<span style="color: #666666; font-style: italic;"># Any custom options for drush</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #007800;">OPTS</span>=
;
<span style="color: #666666; font-style: italic;"># A listing of installation directories for drupal sites.</span>
<span style="color: #666666; font-style: italic;"># On a confixx managed host Drupal is installed in an html/ subfolder in</span>
<span style="color: #666666; font-style: italic;"># the client's home folder. The home folders are in /var/www.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #007800;">ROOTS</span>=<span style="color: #ff0000;">'/var/www/web*/html'</span>
;
<span style="color: #000000; font-weight: bold;">for</span> s <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #007800;">$ROOTS</span> <span style="color: #660033;">-name</span> settings.php<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #007800;">DIR</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$s</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s@/sites/.*@@'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
  <span style="color: #007800;">SITE</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$s</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s@.*/sites/\([^/]*\)/.*@\1@'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
  <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$SITE</span> == <span style="color: #ff0000;">'default'</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
  <span style="color: #000000; font-weight: bold;">then</span>
      <span style="color: #007800;">$DRUSH</span> <span style="color: #007800;">$OPTS</span>  <span style="color: #660033;">-r</span> <span style="color: #007800;">$DIR</span> cron
  <span style="color: #000000; font-weight: bold;">else</span>
      <span style="color: #007800;">$DRUSH</span> <span style="color: #007800;">$OPTS</span> <span style="color: #660033;">-r</span> <span style="color: #007800;">$DIR</span> <span style="color: #660033;">-l</span> http:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #007800;">$SITE</span> cron
  <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">done</span></pre>

<p>Das Skript such in allen <em>htdocs/</em>-Verzeichnissen aller User eines onfixx-Hosts nach Drupal-Installationen und führt <em>drush cron</em> für alle Websites einer Installation aus. So macht Administration Spaß!</p>

<p>—</p>

<p id="fn2959671924deabded2c6e6" class="footnote"><sup>1</sup> Wer ist nicht genervt, wenn im Drei-Tage-Takt irgend ein Modul bei irgendeiner Installation eine Sicherheitsaktualisierung benötigt, man das tar.gz-Paket herunterlädt, auspackt, das FTP-Programm anwirft und die Dateien auf den Webserver zu laden und anschließend noch <em>update.php</em> auszuführen. Und immer in kleinen Chargen, um dem <a href="http://drupal.org/node/158043">White screen of death</a> wegen eines zu knapp bemessenen _memory_limit_ auszuweichen…</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a>  </li>
<li> <a href="http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/" title="Permanent link to backup_migrate + drush = happy days :)">backup_migrate + drush = happy days :)</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/" title="Permanent link to Aktive Drupal-Website auf den PC spiegeln">Aktive Drupal-Website auf den PC spiegeln</a>  </li>
<li> <a href="http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/" title="Permanent link to Meine gesammelten Drush-Sessions">Meine gesammelten Drush-Sessions</a>  </li>
<li> <a href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=149&amp;md5=abef65bddc7384c91c4fe73e18ddbab7" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2009%2F07%2F09%2Fdrupal-fuer-admins-drush%2F&amp;language=de_DE&amp;category=text&amp;title=Drupal+f%C3%BCr+Admins%3A+Drush&amp;description=Vor+einem+Monat+wurde+Drush+in+Version+2.0+freigegeben.+F%C3%BCr+alle%2C+die+sich+jetzt+fragen%2C+was+drush+ist%3A+ein+erstklassiges+Drupal-Werkzeug+f%C3%BCr+die+Kommandozeile.+Und+da+ich+einige+Server+mit...&amp;tags=Administration%2CDrupal%2CKonsole%2CModul%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

