<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Server on Ulis Notizen</title>
    <link>https://wolf-u.li/tag/server/</link>
    <description>Recent content in Server on Ulis Notizen</description>
    <generator>Hugo</generator>
    <language>de</language>
    <copyright>Copyright 2006-CURRENTYEAR Uli Wolf - All rights reserved</copyright>
    <lastBuildDate>Sun, 26 Oct 2014 11:56:27 +2600</lastBuildDate>
    <atom:link href="https://wolf-u.li/tag/server/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Konfiguration von MySQL und lighttpd mit PHP unter FFP 0.7</title>
      
      
      <link>https://wolf-u.li/konfiguration-von-mysql-und-lighttpd-mit-php-unter-ffp-0-7/</link>
      <pubDate>Mon, 05 Nov 2012 10:05:20 +0500</pubDate>
      <guid>https://wolf-u.li/konfiguration-von-mysql-und-lighttpd-mit-php-unter-ffp-0-7/</guid>
      <description>&lt;p&gt;&lt;strong&gt;ACHTUNG&lt;/strong&gt; Dieses Tutorial funktioniert derzeit NUR auf Geräten mit &amp;ldquo;arm&amp;rdquo;-Paketen&lt;/p&gt;
&lt;p&gt;Ich wurde nun mehrmals gebeten ein Tutorial zum Aufsetzen von MySQL und lighttpd mit PHP unter FFP 0.7 zu veröffentlichen. Und hier gehts los. Wenn ihr nicht wisst, was diese Software-Produkte sind, dann rate ich euch zum Besuch der Seiten von &lt;link rel=dns-prefetch href=//www.mysql.com /&gt; &lt;a href=&#34;https://www.mysql.com/&#34;
    title=&#34;MySQL&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  MySQL&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;, &lt;link rel=dns-prefetch href=//www.lighttpd.net /&gt; &lt;a href=&#34;http://www.lighttpd.net/&#34;
    title=&#34;Lighttpd&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Lighttpd&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; und &lt;link rel=dns-prefetch href=//php.net /&gt; &lt;a href=&#34;http://php.net/&#34;
    title=&#34;PHP&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  PHP&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p><strong>ACHTUNG</strong> Dieses Tutorial funktioniert derzeit NUR auf Geräten mit &ldquo;arm&rdquo;-Paketen</p>
<p>Ich wurde nun mehrmals gebeten ein Tutorial zum Aufsetzen von MySQL und lighttpd mit PHP unter FFP 0.7 zu veröffentlichen. Und hier gehts los. Wenn ihr nicht wisst, was diese Software-Produkte sind, dann rate ich euch zum Besuch der Seiten von <link rel=dns-prefetch href=//www.mysql.com /> <a href="https://www.mysql.com/"
    title="MySQL" 
     target="_blank" rel="nofollow noopener noreferrer" >
  MySQL&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>, <link rel=dns-prefetch href=//www.lighttpd.net /> <a href="http://www.lighttpd.net/"
    title="Lighttpd" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Lighttpd&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> und <link rel=dns-prefetch href=//php.net /> <a href="http://php.net/"
    title="PHP" 
     target="_blank" rel="nofollow noopener noreferrer" >
  PHP&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>.</p>
<p>Ein Wort der Warnung noch für alle Besitzer eines DNS-320/DNS-320L/DNS-325/DNS-345: Dieses Tutorial schaltet den internen MySQL-Server aus, sodass dieser nicht mehr aktiv ist. Das kann und wird zu Problemen bei den Zusatz-Applikationen wie Gallery, Blog und co führen. Wenn diese Applikationen nicht genutzt werden, kann das Tutorial gefahrlos verwendet werden.</p>
<p>Los gehts mit dem <a href="/4523/hdd-installation-des-fun_plug-auf-nas-geraeten/"
    title="Einrichten von FFP 0.7" 
   >
  Einrichten von FFP 0.7</a>, dem <a href="/4554/uwsiteloader-tool-zum-download-der-sites-definitionen-fuer-pakete-des-fun_plug-0-7/"
    title="einbinden meines Repository &ldquo;Uli&rdquo;" 
   >
  einbinden meines Repository &ldquo;Uli&rdquo;</a> und anschließend der Installation von meinen Paketen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">slacker -UaA uli:<span class="o">{</span>libtool,php,mysql,lighttpd,curl,libxml2,libmcrypt,libpng,libjpeg-turbo,sqlite<span class="o">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Möglicherweise werden jetzt neue Dateien im Verzeichnis /ffp/start angelegt. Das muss nun erstmal ausgebügelt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="o">[[</span> -f /ffp/start/kickangel.sh.new <span class="o">]]</span> <span class="o">&amp;&amp;</span> mv /ffp/start/kickangel.sh.new /ffp/start/kickangel.sh
</span></span><span class="line"><span class="cl"><span class="o">[[</span> -f /ffp/start/kickwebs.sh.new <span class="o">]]</span> <span class="o">&amp;&amp;</span> mv /ffp/start/kickwebs.sh.new /ffp/start/kickwebs.sh
</span></span><span class="line"><span class="cl"><span class="o">[[</span> -f /ffp/start/mysqld.sh.new <span class="o">]]</span> <span class="o">&amp;&amp;</span> mv /ffp/start/mysqld.sh.new /ffp/start/mysqld.sh
</span></span><span class="line"><span class="cl"><span class="o">[[</span> -f /ffp/start/lighttpd.sh.new <span class="o">]]</span> <span class="o">&amp;&amp;</span> mv /ffp/start/lighttpd.sh.new /ffp/start/lighttpd.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Jetzt werden diese konfiguriert:
Los gehts mit lighttpd:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /ffp/etc/examples/lighttpd/lighttpd.conf /ffp/etc
</span></span><span class="line"><span class="cl">rm /ffp/etc/examples/lighttpd.conf* /ffp/etc/examples/php.ini
</span></span></code></pre></td></tr></table>
</div>
</div><p>Weiter gehts mit MySQL. Zunächst wird die Konfiguration kopiert, dann die Datenbanken installiert und zu guter letzt die Installation abgesichert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sh /ffp/start/mysqld.sh stop
</span></span><span class="line"><span class="cl">cp /ffp/etc/examples/mysql/my.cnf /ffp/etc/
</span></span><span class="line"><span class="cl">ln -snf /ffp/opt/srv /srv
</span></span><span class="line"><span class="cl">mkdir -p /srv/mysql/<span class="o">{</span>innodblogdir,binlog,log,tmp,datadir<span class="o">}</span>
</span></span><span class="line"><span class="cl">mkdir -p /srv/tmp
</span></span><span class="line"><span class="cl">/ffp/bin/mysql_install_db --basedir<span class="o">=</span>/ffp
</span></span><span class="line"><span class="cl">sh /ffp/start/mysqld.sh start
</span></span><span class="line"><span class="cl">/ffp/bin/mysql_secure_installation
</span></span></code></pre></td></tr></table>
</div>
</div><p>Das letzte Kommando wird folgendes ausgeben, ich habe meine Eingaben fett markiert. Das Passwort musst du dir merken!:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span><span class="lnt">57
</span><span class="lnt">58
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl"> NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
</span></span><span class="line"><span class="cl">SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">In order to log into MySQL to secure it, we&#39;ll need the current
</span></span><span class="line"><span class="cl">password for the root user. If you&#39;ve just installed MySQL, and
</span></span><span class="line"><span class="cl">you haven&#39;t set the root password yet, the password will be blank,
</span></span><span class="line"><span class="cl">so you should just press enter here.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Enter current password for root (enter for none):
</span></span><span class="line"><span class="cl">OK, successfully used password, moving on...
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Setting the root password ensures that nobody can log into the MySQL
</span></span><span class="line"><span class="cl">root user without the proper authorisation.
</span></span><span class="line"><span class="cl">Set root password? [Y/n] **Y**
</span></span><span class="line"><span class="cl">New password: **MYVERYSECRETPASSWORD**
</span></span><span class="line"><span class="cl">Re-enter new password: **MYVERYSECRETPASSWORD**
</span></span><span class="line"><span class="cl">Password updated successfully!
</span></span><span class="line"><span class="cl">Reloading privilege tables..
</span></span><span class="line"><span class="cl">... Success!
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">By default, a MySQL installation has an anonymous user, allowing anyone
</span></span><span class="line"><span class="cl">to log into MySQL without having to have a user account created for
</span></span><span class="line"><span class="cl">them. This is intended only for testing, and to make the installation
</span></span><span class="line"><span class="cl">go a bit smoother. You should remove them before moving into a
</span></span><span class="line"><span class="cl">production environment.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Remove anonymous users? [Y/n] **Y**
</span></span><span class="line"><span class="cl">... Success!
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Normally, root should only be allowed to connect from &#39;localhost&#39;. This
</span></span><span class="line"><span class="cl">ensures that someone cannot guess at the root password from the network.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Disallow root login remotely? [Y/n] **Y**
</span></span><span class="line"><span class="cl">... Success!
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">By default, MySQL comes with a database named &#39;test&#39; that anyone can
</span></span><span class="line"><span class="cl">access. This is also intended only for testing, and should be removed
</span></span><span class="line"><span class="cl">before moving into a production environment.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Remove test database and access to it? [Y/n] **Y**
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">- Dropping test database...
</span></span><span class="line"><span class="cl"> ... Success!
</span></span><span class="line"><span class="cl">- Removing privileges on test database...
</span></span><span class="line"><span class="cl"> ... Success!
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Reloading the privilege tables will ensure that all changes made so far
</span></span><span class="line"><span class="cl">will take effect immediately.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Reload privilege tables now? [Y/n] **Y**
</span></span><span class="line"><span class="cl">... Success!
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Cleaning up...
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">All done! If you&#39;ve completed all of the above steps, your MySQL
</span></span><span class="line"><span class="cl">installation should now be secure.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Thanks for using MySQL!
</span></span></code></pre></td></tr></table>
</div>
</div><p>Damit läuft nun MySQL einwandfrei und wir können den rest noch konfigurieren. Bitte merke dir das verwendete Passwort, du wirst es noch für weitere Tutorials brauchen.</p>
<p>Jetzt muss noch PHP konfiguriert werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /ffp/etc/examples/php/php.ini /ffp/etc/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Anschließend kann der Webserver gestartet werden.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /srv/www/<span class="o">{</span>pages,logs,tmp<span class="o">}</span>
</span></span><span class="line"><span class="cl">sh /ffp/start/kickangel.sh start <span class="o">&amp;&amp;</span> sh /ffp/start/kickwebs.sh start <span class="o">&amp;&amp;</span> sh /ffp/start/lighttpd.sh start
</span></span></code></pre></td></tr></table>
</div>
</div><p>Jetzt testen wir, ob es funktioniert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;&#39;</span> &gt; /srv/www/pages/index.php
</span></span></code></pre></td></tr></table>
</div>
</div><p>Gehe nun auf die Adresse deines NAS (z.B. <link rel=dns-prefetch href=//nas /> <a href="http://nas/"
    title="http://nas/" 
     target="_blank" rel="nofollow noopener noreferrer" >
  http://nas/&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> oder die IP-Adresse, also z.b. <link rel=dns-prefetch href=//192.168.133.7 /> <a href="http://192.168.133.7/"
    title="http://192.168.133.7/" 
     target="_blank" rel="nofollow noopener noreferrer" >
  http://192.168.133.7/&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>). Dort sollte der Schriftzug &ldquo;PHP works!&rdquo; wie im Bild erscheinen.</p>
<p><img src="/upload/2012/11/4695-php.webp" alt="PHP works!" loading="lazy" title="PHP works!"></p>
<p>Wenn du das Administrationsinterface deines NAS suchst, ist das nun auf Port 81 erreichbar, also z.B. <link rel=dns-prefetch href=//nas:81 /> <a href="http://nas:81/"
    title="http://nas:81/" 
     target="_blank" rel="nofollow noopener noreferrer" >
  http://nas:81/&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> oder <link rel=dns-prefetch href=//192.168.133.7:81 /> <a href="http://192.168.133.7:81/"
    title="http://192.168.133.7:81/" 
     target="_blank" rel="nofollow noopener noreferrer" >
  http://192.168.133.7:81/&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>.</p>
<p>Wenn das nun alles läuft, können die Dienste nun permanent aktiviert werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod a+x /ffp/start/<span class="o">{</span>kickangel,kickwebs,lighttpd,mysqld<span class="o">}</span>.sh
</span></span><span class="line"><span class="cl">chmod a+x /ffp/start/kickwebs.sh
</span></span><span class="line"><span class="cl">chmod a+x /ffp/start/lighttpd.sh
</span></span><span class="line"><span class="cl">chmod a+x /ffp/start/mysqld.sh
</span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Export in den Webroot des Apache Webservers per Post-Commit von Subversion</title>
      
      
      <link>https://wolf-u.li/export-in-den-webroot-des-apache-webservers-per-post-commit-von-subversion/</link>
      <pubDate>Wed, 21 Jan 2009 19:33:10 +2100</pubDate>
      <guid>https://wolf-u.li/export-in-den-webroot-des-apache-webservers-per-post-commit-von-subversion/</guid>
      <description>&lt;p&gt;Seit ein paar Tagen setze ich mich wieder intensiv mit dem &lt;a href=&#34;https://wolf-u.li/tag/zend-framework/&#34;
    title=&#34;Zend Framework&#34; 
   &gt;
  Zend Framework&lt;/a&gt; auseinander und bastle an einer Applikation. Um meine Änderungen einfach nachzuverfolgen habe ich mir ein &lt;a href=&#34;https://wolf-u.li/tag/subversion/&#34;
    title=&#34;Subversion&#34; 
   &gt;
  Subversion&lt;/a&gt;-Repository auf meinem Server eingerichtet. Um in verschiedenen Testumgebungen die Applikation testen zu können, soll diese automatisch in einen Webroot &amp;ldquo;deployed&amp;rdquo; werden. Hierzu habe ich ein kleines Skript geschrieben, welches sind an den post-commit-Mechanismus von Subversion hängt und darüber den Export steuert.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Seit ein paar Tagen setze ich mich wieder intensiv mit dem <a href="/tag/zend-framework/"
    title="Zend Framework" 
   >
  Zend Framework</a> auseinander und bastle an einer Applikation. Um meine Änderungen einfach nachzuverfolgen habe ich mir ein <a href="/tag/subversion/"
    title="Subversion" 
   >
  Subversion</a>-Repository auf meinem Server eingerichtet. Um in verschiedenen Testumgebungen die Applikation testen zu können, soll diese automatisch in einen Webroot &ldquo;deployed&rdquo; werden. Hierzu habe ich ein kleines Skript geschrieben, welches sind an den post-commit-Mechanismus von Subversion hängt und darüber den Export steuert.</p>
<p>Die Funktionsweise ist simpel, es wird einfach ein Checkout des Repository gemacht and anschließend bei jedem commit ein &ldquo;svn update&rdquo; auf das Checkout-Verzeichnis.
Zunächst wird daher in den Webroot gewechselt, wo das Update hin soll. Dort wird der Checkout ausgeführt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">svn co http://your.reposito.ry/trunk/ .
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dankbarerweise werden die Userdaten im Cache abgelegt, daher sollte man die .svn-Verzeichnisse über eine Direktive schützen, sodass diese nicht für Webserver-Nutzer abrufbar sind. Für den Apache sieht das so aus:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">Order deny,allow
</span></span><span class="line"><span class="cl">Deny from all
</span></span></code></pre></td></tr></table>
</div>
</div><p>Doch nun zum eigentlichen Script. Dieses Skript legt man als &ldquo;post-commit-export.sh&rdquo; im &ldquo;hook&rdquo;-Verzeichnis des SVN-Verzeichnisses auf dem Server ab:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/sh
</span></span></span><span class="line"><span class="cl"><span class="c1">#############################################</span>
</span></span><span class="line"><span class="cl"><span class="c1"># SVN-Deployment-Script for post-commit by: #</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Ulrich Wolf - https://wolf-u.li #</span>
</span></span><span class="line"><span class="cl"><span class="c1">#############################################</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Configure this:</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Where did you checkout your SVN?</span>
</span></span><span class="line"><span class="cl"><span class="nv">EXPORTDIR</span><span class="o">=</span><span class="s2">&#34;/var/www/your/export/webroot/&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c1"># To which user should be chown?</span>
</span></span><span class="line"><span class="cl"><span class="nv">USER</span><span class="o">=</span><span class="s2">&#34;someuser&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">GROUP</span><span class="o">=</span><span class="s2">&#34;somegroup&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Maximum number of tries to update while a lockfile is present?</span>
</span></span><span class="line"><span class="cl"><span class="nv">MAXTRIES</span><span class="o">=</span><span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="c1"># How long should the script wait until the next try?</span>
</span></span><span class="line"><span class="cl"><span class="nv">WAITTIME</span><span class="o">=</span><span class="m">20</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Don&#39;t touch the stuff below!</span>
</span></span><span class="line"><span class="cl"><span class="nv">REPOS</span><span class="o">=</span><span class="s2">&#34;</span><span class="nv">$1</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">REV</span><span class="o">=</span><span class="s2">&#34;</span><span class="nv">$2</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">LOCKFILE</span><span class="o">=</span><span class="s2">&#34;.post-commit.lock&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">T</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="cl"><span class="nv">SUCCESS</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">(</span>
</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="o">[</span> <span class="nv">$T</span> -lt <span class="nv">$MAXTRIES</span> <span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="k">do</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">[</span> ! -e <span class="nv">$LOCKFILE</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nb">trap</span> <span class="s1">&#39;rm -f &#34;$LOCKFILE&#34;; exit $?&#39;</span> INT TERM EXIT
</span></span><span class="line"><span class="cl"> touch <span class="s2">&#34;</span><span class="nv">$LOCKFILE</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="cl"> sleep <span class="m">5</span>
</span></span><span class="line"><span class="cl"> svn update -r <span class="nv">$REV</span> <span class="nv">$EXPORTDIR</span>
</span></span><span class="line"><span class="cl"> chown <span class="nv">$USER</span>:<span class="nv">$GROUP</span> -R <span class="nv">$EXPORTDIR</span>
</span></span><span class="line"><span class="cl"> rm -f <span class="s2">&#34;</span><span class="nv">$LOCKFILE</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="nb">trap</span> - INT TERM EXIT
</span></span><span class="line"><span class="cl"> <span class="nv">SUCCESS</span><span class="o">=</span><span class="m">1</span>
</span></span><span class="line"><span class="cl"> <span class="nb">break</span>
</span></span><span class="line"><span class="cl"> <span class="k">else</span>
</span></span><span class="line"><span class="cl"> sleep <span class="nv">$WAITTIME</span>
</span></span><span class="line"><span class="cl"> <span class="nb">let</span> T++
</span></span><span class="line"><span class="cl"> <span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="k">done</span>
</span></span><span class="line"><span class="cl"><span class="o">)</span> &gt; /dev/null 2&gt;<span class="p">&amp;</span><span class="m">1</span> <span class="p">&amp;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun muss es noch eingebunden werden. Dazu muss in die Datei &ldquo;<code>post-commit</code>&rdquo; folgende Zeile eingetragen werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hooks/post-commit-exporter.sh <span class="nv">$1</span> <span class="nv">$2</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Die Dateien post-commit-exporter.sh und post-commit müssen dann noch mit dem Ausführungsbit gekennzeichnet werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod +x post-commit post-commit-exporter.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Und das wars ;)</p>
]]></content:encoded>
    </item>
    <item>
      <title>nginx: [emerg] duplicate listen options for [::]:443</title>
      
      
      <link>https://wolf-u.li/nginx-emerg-duplicate-listen-options-for-443/</link>
      <pubDate>Fri, 17 Jan 2014 21:45:48 +1700</pubDate>
      <guid>https://wolf-u.li/nginx-emerg-duplicate-listen-options-for-443/</guid>
      <description>&lt;p&gt;Soeben habe ich auf einen zweiten Host SSL konfiguriert. Plattform ist ein nginx webserver gewesen, der mir beim Konfigurationstest folgenden Fehler ausspuckte:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-plaintext&#34; data-lang=&#34;plaintext&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[....] Testing nginx configuration:Configuration test failed!
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx: [emerg] duplicate listen options for [::]:443 in /etc/nginx/sites-enabled/wolf-u.li:3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx: configuration file /etc/nginx/nginx.conf test failed
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Was war passiert? Ich hatte zweimal (in verschiedenen vhosts) bei &amp;ldquo;listen&amp;rdquo; den port 443 mit den optionen, u.a. ssl und spdy, versehen:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vhost 1:&lt;/strong&gt;&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Soeben habe ich auf einen zweiten Host SSL konfiguriert. Plattform ist ein nginx webserver gewesen, der mir beim Konfigurationstest folgenden Fehler ausspuckte:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">[....] Testing nginx configuration:Configuration test failed!
</span></span><span class="line"><span class="cl">nginx: [emerg] duplicate listen options for [::]:443 in /etc/nginx/sites-enabled/wolf-u.li:3
</span></span><span class="line"><span class="cl">nginx: configuration file /etc/nginx/nginx.conf test failed
</span></span></code></pre></td></tr></table>
</div>
</div><p>Was war passiert? Ich hatte zweimal (in verschiedenen vhosts) bei &ldquo;listen&rdquo; den port 443 mit den optionen, u.a. ssl und spdy, versehen:</p>
<p><strong>Vhost 1:</strong></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">listen [::]:443 default_server ssl ipv6only=off spdy;
</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>Vhost 2:</strong></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">server {
</span></span><span class="line"><span class="cl">    listen [::]:443 ssl ipv6only=off;
</span></span><span class="line"><span class="cl">}
</span></span></code></pre></td></tr></table>
</div>
</div><p>Das war dem nginx nicht so recht ;) Abhilfe war also nur einmal die optionen festzulegen (also in vhost 1) und im zweiten nur noch:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">server {
</span></span><span class="line"><span class="cl">    listen [::]:443;
</span></span><span class="line"><span class="cl">}
</span></span></code></pre></td></tr></table>
</div>
</div><p>einzutragen. Schon liefs.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Oracle Database 11.2.0.3 Patchset (10404530) ist erschienen</title>
      
      
      <link>https://wolf-u.li/oracle-database-11-2-0-3-patchset-10404530-ist-erschienen/</link>
      <pubDate>Mon, 26 Sep 2011 08:19:21 +2600</pubDate>
      <guid>https://wolf-u.li/oracle-database-11-2-0-3-patchset-10404530-ist-erschienen/</guid>
      <description>&lt;p&gt;Das neueste Patchset für Oracle Database 11g ist erschienen (derzeit nur für Linux x86 und x86-64) und trägt die Nummer 11.2.0.3. Unter der Nummer 10404530 kann man es finden und es bringt folgende neue Features mit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Oracle ACFS Snapshot Enhancements&lt;/li&gt;
&lt;li&gt;Oracle ACFS Security and Encryption Features&lt;/li&gt;
&lt;li&gt;Support for ACFS Replication and Tagging on Windows&lt;/li&gt;
&lt;li&gt;Oracle LogMiner Support for Binary XML&lt;/li&gt;
&lt;li&gt;SQL Apply Support for Binary XML&lt;/li&gt;
&lt;li&gt;Oracle LogMiner Support for Object Relational Model&lt;/li&gt;
&lt;li&gt;SQL Apply Support for Object Relational Model&lt;/li&gt;
&lt;li&gt;Deprecation of Obsolete Oracle XML DB Functions and Packages&lt;/li&gt;
&lt;li&gt;Oracle Warehouse Builder Support for Partition DML&lt;/li&gt;
&lt;li&gt;Enhanced Partitioning Support in Oracle Warehouse Builder&lt;/li&gt;
&lt;li&gt;Oracle Warehouse Builder External Table Data Pump Support&lt;/li&gt;
&lt;li&gt;Oracle Warehouse Builder External Table Preprocessor Support&lt;/li&gt;
&lt;li&gt;Compressed Table and Partition Support in Oracle Warehouse Builder&lt;/li&gt;
&lt;li&gt;Support for PL/SQL Native Compilation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dafür sind einige Features verschwunden oder nicht mehr zugänglich, diese kann man &lt;link rel=dns-prefetch href=//download.oracle.com /&gt; &lt;a href=&#34;http://download.oracle.com/docs/cd/E11882_01/readmes.112/e22488/toc.htm#BABDGGDB#BABDGGDB&#34;
    title=&#34;hier in einer Liste finden&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  hier in einer Liste finden&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Das neueste Patchset für Oracle Database 11g ist erschienen (derzeit nur für Linux x86 und x86-64) und trägt die Nummer 11.2.0.3. Unter der Nummer 10404530 kann man es finden und es bringt folgende neue Features mit:</p>
<ul>
<li>Oracle ACFS Snapshot Enhancements</li>
<li>Oracle ACFS Security and Encryption Features</li>
<li>Support for ACFS Replication and Tagging on Windows</li>
<li>Oracle LogMiner Support for Binary XML</li>
<li>SQL Apply Support for Binary XML</li>
<li>Oracle LogMiner Support for Object Relational Model</li>
<li>SQL Apply Support for Object Relational Model</li>
<li>Deprecation of Obsolete Oracle XML DB Functions and Packages</li>
<li>Oracle Warehouse Builder Support for Partition DML</li>
<li>Enhanced Partitioning Support in Oracle Warehouse Builder</li>
<li>Oracle Warehouse Builder External Table Data Pump Support</li>
<li>Oracle Warehouse Builder External Table Preprocessor Support</li>
<li>Compressed Table and Partition Support in Oracle Warehouse Builder</li>
<li>Support for PL/SQL Native Compilation</li>
</ul>
<p>Dafür sind einige Features verschwunden oder nicht mehr zugänglich, diese kann man <link rel=dns-prefetch href=//download.oracle.com /> <a href="http://download.oracle.com/docs/cd/E11882_01/readmes.112/e22488/toc.htm#BABDGGDB#BABDGGDB"
    title="hier in einer Liste finden" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier in einer Liste finden&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>.</p>
<p>Die genaue Liste der gelösten Bugs findet man dann in Dokument &ldquo;1348303.1: List of Bug Fixes by Problem Type&rdquo;, hier muss man derzeit aber noch warten bis es zugänglich ist. Die Liste der weiterhin offenen Bugs findet man <link rel=dns-prefetch href=//download.oracle.com /> <a href="http://download.oracle.com/docs/cd/E11882_01/readmes.112/e22488/toc.htm#BABJCBCA#BABJCBCA"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>.</p>
<p>Hilfreicher Artikel:</p>
<ul>
<li><link rel=dns-prefetch href=//juliandontcheff.wordpress.com /> <a href="http://juliandontcheff.wordpress.com/2011/09/24/oracle-database-11-2-0-3-new-features/"
    title="Oracle Database 11.2.0.3 new features @ Julian Dontcheff&rsquo;s Database Blog" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Oracle Database 11.2.0.3 new features @ Julian Dontcheff&rsquo;s Database Blog&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Ein sehr interessanter Vortrag zu Infrastruktur- und Softwareskalierung von Google</title>
      
      
      <link>https://wolf-u.li/ein-sehr-interessanter-vortrag-zu-infrastruktur-und-softwareskalierung-von-google/</link>
      <pubDate>Sun, 14 Nov 2010 14:29:54 +1400</pubDate>
      <guid>https://wolf-u.li/ein-sehr-interessanter-vortrag-zu-infrastruktur-und-softwareskalierung-von-google/</guid>
      <description>&lt;p&gt;Vor ein paar Tagen bin ich über einen interessanten Vortrag zu Performance und Skalierung der Infrastruktur von Google gestoßen, den ich meinen Lesern nicht vorenthalten will. &lt;link rel=dns-prefetch href=//research.google.com /&gt; &lt;a href=&#34;http://research.google.com/people/jeff/&#34;
    title=&#34;Jeff Dean&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Jeff Dean&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;, ein Google Mitarbeiter, hat im Rahmen der &lt;link rel=dns-prefetch href=//www.stanford.edu /&gt; &lt;a href=&#34;http://www.stanford.edu/class/ee380/&#34;
    title=&#34;EE380&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  EE380&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; in Standford einen Vortrag gehalten, welcher auf den Namen &amp;ldquo;Building Software Systems at Google and Lessons Learned&amp;rdquo; getauft wurde. Sehr sehenswert, geht jedoch über eine ganze Stunde. Wer dafür keine Zeit hat, kann sich die Slides &lt;link rel=dns-prefetch href=//www.stanford.edu /&gt; &lt;a href=&#34;http://www.stanford.edu/class/ee380/Abstracts/101110-slides.pdf&#34;
    title=&#34;hier&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  hier&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; und eine der Zusammenfassungen &lt;link rel=dns-prefetch href=//doubleclix.wordpress.com /&gt; &lt;a href=&#34;http://doubleclix.wordpress.com/2010/11/11/google-a-study-in-scalability-and-a-little-systems-horse-sense/&#34;
    title=&#34;hier&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  hier&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; ansehen.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Vor ein paar Tagen bin ich über einen interessanten Vortrag zu Performance und Skalierung der Infrastruktur von Google gestoßen, den ich meinen Lesern nicht vorenthalten will. <link rel=dns-prefetch href=//research.google.com /> <a href="http://research.google.com/people/jeff/"
    title="Jeff Dean" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Jeff Dean&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>, ein Google Mitarbeiter, hat im Rahmen der <link rel=dns-prefetch href=//www.stanford.edu /> <a href="http://www.stanford.edu/class/ee380/"
    title="EE380" 
     target="_blank" rel="nofollow noopener noreferrer" >
  EE380&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> in Standford einen Vortrag gehalten, welcher auf den Namen &ldquo;Building Software Systems at Google and Lessons Learned&rdquo; getauft wurde. Sehr sehenswert, geht jedoch über eine ganze Stunde. Wer dafür keine Zeit hat, kann sich die Slides <link rel=dns-prefetch href=//www.stanford.edu /> <a href="http://www.stanford.edu/class/ee380/Abstracts/101110-slides.pdf"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> und eine der Zusammenfassungen <link rel=dns-prefetch href=//doubleclix.wordpress.com /> <a href="http://doubleclix.wordpress.com/2010/11/11/google-a-study-in-scalability-and-a-little-systems-horse-sense/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> ansehen.</p>
<p>Für mich war einer der interessantesten Sätze der Hinweis, dass man aus der Erfahrung von Google skalierbare Systeme zunächst auf 5-50-faches Wachstum auslegen sollte. Mehr als 100-faches Wachstum bräuchte dann sowieso ein Redesign der Strukturen. Auch sehr interessant waren die Statistiken zu den MapReduce-Jobs über die verschiedenen Jahre. So laufen derzeit 4 Millionen Jobs, welche knapp 1000PB Daten mit 130TB Zwischendaten und 45TB Ausgabedaten doch beachtliche Mengen pro Monat durchschleusen.</p>
<p><img src="/upload/2010/11/3731-mapreducestats.webp" alt="mapreducestats" loading="lazy" title="3731-mapreducestats"></p>
<p>Ansonsten fand ich auch die Zahlen zu den verschiedenen Latenzen sehr interessant. Angefangen vom L1-Cache bis hin zur Übertragung von Daten zwischen zwei Ländern:
<img src="/upload/2010/11/3731-numberseveryoneshouldknow.webp" alt="numberseveryoneshouldknow" loading="lazy" title="3731-numberseveryoneshouldknow"></p>
<p><strong>=&gt; Sehr lesens- und sehenswert!</strong></p>
<p>Quelle der Grafiken: Vortragsslides von Jeff Dean</p>
]]></content:encoded>
    </item>
    <item>
      <title>svnversion: Version mismatch in &#39;svn_wc&#39;: found 1.5.5, expected 1.6.0</title>
      
      
      <link>https://wolf-u.li/svnversion-version-mismatch-in-svn_wc-found-155-expected-160/</link>
      <pubDate>Sun, 05 Apr 2009 15:36:50 +0500</pubDate>
      <guid>https://wolf-u.li/svnversion-version-mismatch-in-svn_wc-found-155-expected-160/</guid>
      <description>&lt;p&gt;Ich wollte heute für das fun_plug das Tool &amp;ldquo;&lt;link rel=dns-prefetch href=//subversion.tigris.org /&gt; &lt;a href=&#34;http://subversion.tigris.org/&#34;
    title=&#34;subversion&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  subversion&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;&amp;rdquo; updaten. Leider trat während des Kompilierens beim &lt;em&gt;make install&lt;/em&gt; der Fehler:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Ich wollte heute für das fun_plug das Tool &ldquo;<link rel=dns-prefetch href=//subversion.tigris.org /> <a href="http://subversion.tigris.org/"
    title="subversion" 
     target="_blank" rel="nofollow noopener noreferrer" >
  subversion&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>&rdquo; updaten. Leider trat während des Kompilierens beim <em>make install</em> der Fehler:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">svnversion: Version mismatch in &#39;svn_wc&#39;: found 1.5.5, expected 1.6.0
</span></span></code></pre></td></tr></table>
</div>
</div><p>auf, welcher sich auf den Vorgang <em>make revision-install</em> eingrenzen lies, welcher laut Subversion-maillingliste von keinem Tool genutzt wird.</p>
<p>Hierfür gibt es zwei Lösungsansätze:</p>
<ul>
<li>Bestehende Subversion-Installation entfernen (inklusive libsvn)</li>
<li>Statt <code>make install</code> einfach <code>make external-install local-install</code> ausführen</li>
</ul>
<p>Ich bin letzteren gegangen, hat hervorragend funktioniert.</p>
]]></content:encoded>
    </item>
    <item>
      <title>MySQL: Spalte einer Tabelle in Kleinbuchstaben umändern</title>
      
      
      <link>https://wolf-u.li/mysql-spalte-einer-tabelle-in-kleinbuchstaben-umaendern/</link>
      <pubDate>Thu, 27 Sep 2012 07:20:27 +2700</pubDate>
      <guid>https://wolf-u.li/mysql-spalte-einer-tabelle-in-kleinbuchstaben-umaendern/</guid>
      <description>&lt;p&gt;Soeben stand ich vor der Frage: Kann man eine Spalte einer MySQL-Tabelle in Kleinbuchstaben umändern? Hintergrund war das Problem, dass die Daten inhomogen eingegeben wurden, jedoch alle in kleinbuchstaben sein sollten. Das geht ganz schnell wenn man weiß wie:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;UPDATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tabelle&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SET&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;spalte&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;LOWER&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;spalte&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Und schon ist die Sache erledigt.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Soeben stand ich vor der Frage: Kann man eine Spalte einer MySQL-Tabelle in Kleinbuchstaben umändern? Hintergrund war das Problem, dass die Daten inhomogen eingegeben wurden, jedoch alle in kleinbuchstaben sein sollten. Das geht ganz schnell wenn man weiß wie:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">UPDATE</span><span class="w"> </span><span class="n">tabelle</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">spalte</span><span class="o">=</span><span class="k">LOWER</span><span class="p">(</span><span class="n">spalte</span><span class="p">);</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Und schon ist die Sache erledigt.</p>
]]></content:encoded>
    </item>
    <item>
      <title>SysCP zieht um</title>
      
      
      <link>https://wolf-u.li/syscp-zieht-um/</link>
      <pubDate>Sun, 24 Feb 2008 11:45:11 +2400</pubDate>
      <guid>https://wolf-u.li/syscp-zieht-um/</guid>
      <description>&lt;p&gt;Die Hauptseite des weit verbreiteten open source Serveradministrations Tools &amp;ldquo;&lt;a href=&#34;https://wolf-u.li/1033/syscp-1219-ist-erschienen/&#34;
    title=&#34;SysCP&#34; 
   &gt;
  SysCP&lt;/a&gt;&amp;rdquo; ist seit heute für ein paar Tage (bis Anfang März) wegen Wartungsarbeiten offline. Hintergrund ist ein Serverumzug von Berlin nach Zweibrücken sowie eine gleichzeitige Performanceoptimierung des Hauptsystems.
Natürlich ist SysCP derweil nicht ganz offline. files.syscp.org, debian.syscp.org, snapshots.syscp.org sowie das svn unter svn.syscp.org sind weiterhin erreichbar.&lt;/p&gt;
&lt;p&gt;Leider ist in dieser Zeit der Support nur beschränkt erreichbar. Wer aber trotzdem weiterhin Support haben möchte, kann den IRC-Channel &lt;a href=&#34;irc://irc.freenode.net/#syscp#syscp&#34;
    title=&#34;#syscp&#34; 
   &gt;
  #syscp&lt;/a&gt; auf freenode besuchen.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Die Hauptseite des weit verbreiteten open source Serveradministrations Tools &ldquo;<a href="/1033/syscp-1219-ist-erschienen/"
    title="SysCP" 
   >
  SysCP</a>&rdquo; ist seit heute für ein paar Tage (bis Anfang März) wegen Wartungsarbeiten offline. Hintergrund ist ein Serverumzug von Berlin nach Zweibrücken sowie eine gleichzeitige Performanceoptimierung des Hauptsystems.
Natürlich ist SysCP derweil nicht ganz offline. files.syscp.org, debian.syscp.org, snapshots.syscp.org sowie das svn unter svn.syscp.org sind weiterhin erreichbar.</p>
<p>Leider ist in dieser Zeit der Support nur beschränkt erreichbar. Wer aber trotzdem weiterhin Support haben möchte, kann den IRC-Channel <a href="irc://irc.freenode.net/#syscp#syscp"
    title="#syscp" 
   >
  #syscp</a> auf freenode besuchen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Bestimmte Mails eines Absenders aus Postfix Queue löschen</title>
      
      
      <link>https://wolf-u.li/bestimmte-mails-eines-absenders-aus-postfix-queue-loeschen/</link>
      <pubDate>Tue, 27 Dec 2011 14:03:31 +2700</pubDate>
      <guid>https://wolf-u.li/bestimmte-mails-eines-absenders-aus-postfix-queue-loeschen/</guid>
      <description>&lt;p&gt;Soeben habe ich meinen Server etwas ent-spammen müssen. Eines meiner Scripte hat sich bisschen vertan und hat wie verrückt Mails rausgeschossen. Da ich wusste wie der Absender (unten ich@example) hieß, konnte ich meine Queue wieder recht einfach bereinigen.&lt;/p&gt;
&lt;p&gt;Die Durchführung der folgenden Kommandos erfolgt auf eigene Gefahr! Du solltest wissen was du tust!&lt;/p&gt;
&lt;p&gt;Tausche im folgenden &amp;ldquo;ich@example&amp;rdquo; durch die Absenderadresse aus:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mailq&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;grep &lt;span class=&#34;s1&#34;&gt;&amp;#39;ich@example&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;awk &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;print $1&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;grep -v &lt;span class=&#34;s2&#34;&gt;&amp;#34;(host&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;tr -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;*!&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;postsuper -d -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      
         <content:encoded><![CDATA[<p>Soeben habe ich meinen Server etwas ent-spammen müssen. Eines meiner Scripte hat sich bisschen vertan und hat wie verrückt Mails rausgeschossen. Da ich wusste wie der Absender (unten ich@example) hieß, konnte ich meine Queue wieder recht einfach bereinigen.</p>
<p>Die Durchführung der folgenden Kommandos erfolgt auf eigene Gefahr! Du solltest wissen was du tust!</p>
<p>Tausche im folgenden &ldquo;ich@example&rdquo; durch die Absenderadresse aus:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mailq<span class="p">|</span>grep <span class="s1">&#39;ich@example&#39;</span><span class="p">|</span>awk <span class="o">{</span><span class="s1">&#39;print $1&#39;</span><span class="o">}</span><span class="p">|</span>grep -v <span class="s2">&#34;(host&#34;</span><span class="p">|</span>tr -d <span class="s1">&#39;*!&#39;</span><span class="p">|</span>postsuper -d -
</span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Nutzung des NAS als Remote Installation System (RIS) mittels TFTP</title>
      
      
      <link>https://wolf-u.li/nutzung-des-nas-als-remote-installation-system-ris-mittels-tftp/</link>
      <pubDate>Sun, 27 Mar 2011 18:57:49 +2700</pubDate>
      <guid>https://wolf-u.li/nutzung-des-nas-als-remote-installation-system-ris-mittels-tftp/</guid>
      <description>&lt;p&gt;Dieser Artikel wurde von Andreas als &lt;a href=&#34;https://wolf-u.li/3688/suche-gastautoren-fuer-nas-geraete/&#34;
    title=&#34;Gastartikel&#34; 
   &gt;
  Gastartikel&lt;/a&gt; eingereicht! Danke!
Hallo,&lt;/p&gt;
&lt;p&gt;Ich möchte hier meine Projekte mit meinen &amp;ldquo;Würfeln&amp;rdquo; vorstellen, welche ich nun seit mehr als einem Jahr am Laufen habe.&lt;/p&gt;
&lt;p&gt;Da ich nebenberuflich Kunden mit Ihren IT-Problemen betreue und es dort ab und an vorkommt, dass ich komplette Systeme neu aufsetzen bzw. installieren muss, kommt man sehr oft in die Bedrängnis, mit CDs und DVD’s zu jonglieren.&lt;/p&gt;
&lt;p&gt;Ich habe meist mit folgende Betriebssystemen Kontakt: XP (Home, Pro), SUSE als Server, ab und an ne alte Windows 2K &amp;hellip;.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Dieser Artikel wurde von Andreas als <a href="/3688/suche-gastautoren-fuer-nas-geraete/"
    title="Gastartikel" 
   >
  Gastartikel</a> eingereicht! Danke!
Hallo,</p>
<p>Ich möchte hier meine Projekte mit meinen &ldquo;Würfeln&rdquo; vorstellen, welche ich nun seit mehr als einem Jahr am Laufen habe.</p>
<p>Da ich nebenberuflich Kunden mit Ihren IT-Problemen betreue und es dort ab und an vorkommt, dass ich komplette Systeme neu aufsetzen bzw. installieren muss, kommt man sehr oft in die Bedrängnis, mit CDs und DVD’s zu jonglieren.</p>
<p>Ich habe meist mit folgende Betriebssystemen Kontakt: XP (Home, Pro), SUSE als Server, ab und an ne alte Windows 2K &hellip;.</p>
<p>Nun haben Datenträger die Eigenart Beine zu bekommen oder sie verstecken sich sehr gerne (Falsch eingelegt in den Ordner, oder manchmal auch gar nicht &hellip;.. ohne Worte)</p>
<p>Nun hatte ich in meiner hauptberuflichen Laufbahn mal nebenbei (wie bei Administratoren immer so vorausgesetzt) mit einem Projekt zu tun, bei welchem ich mal eben schnell knapp 40 Rechner installieren sollte und oben drauf noch einen Windows weiß nicht was für einen Server.
Das imponierende an diesem Server war, ich hatte innerhalb kürzester Zeit (glaube knapp ne Woche oder so) einen Windows-Server am Laufen und auch heraus bekommen, dass man wohl angeblich damit in der Lage sein soll zig PCs parallel zu installieren. Auch dieses hatte ich innerhalb von wenigen Stunden zum laufen bekommen (INET sei Dank, für all die vielen und schönen Informationen)</p>
<p>Jetzt kommt der Teil, der mir die Schuhe aus zog. Die oben erwähnten 40 Rechner hatte ich innerhalb von einem Tag samt benötigter MS-Software (also Office und Co.) mal so eben schnell installiert und war quasi dem Zeitplan um tagen Voraus. Ich habe nicht einmal für all diese PC’s, nach dem Vorbereiten des Servers, eine CD in die PCs stecken müssen. Diese Funktion im Windows Server nannte sich RIS ( Remote Installation System). Da ich danach nie wieder mit einem Windows-Server zu tun hatte, war ich irgendwie traurig, bei jedem Mal, wenn ich eine CD oder DVD zur Installation benutzen musste.</p>
<p>Nun habe ich Berufsbedingt (Netzwerkadministrator von ca. 600 schicken CISCO Geräten und zig Linux-Firewalls, Mail- und andere Server) weiterhin nicht viel mit Windows am Hut und bin eher aus der Linux Ecke.</p>
<p>Ich habe immer mal versucht über Boot-Images etc. eine Art RIS zurecht zu biegen, es aber nie in der Art und Weise geschafft, wie ich es damals auf dem Windows-Server sah. Es war damals schon egal, welche Hardware drin steckte, welche Netzwerkkarten benötigt wurden, einfach die Treiber hinterher kopieren, den neuen Rechner Booten, XP installieren das war’s. Wie auch immer, es verging ne Menge Zeit. Seit ich nun VDSL habe, habe ich auch einen PC-Basierenden Router am Laufen.</p>
<p>Das hat verschiedene Gründe:</p>
<ol>
<li>brauche ich unbedingt VPN</li>
<li>VPN auf fertigen Routern welche auch noch VDSL beherrschen (also VLAN-Taging von PPPoE-Paketen) kosten schon fast ein Vermögen.</li>
<li>hatte ich noch ein P4-Board von Asrock, ein 19&quot;-Schrank (Jepp, ich habe in meinem Haus eine strukturierte CAT7/CAT5 Verkabelung) und darin leer stehend ein PC-Gehäuse (6HE)</li>
</ol>
<p>Nun schnell den PC zusammen gebastelt, IPCOP drauf und schon hatte ich alles was ich brauchte. In diesem Schrank stehen auch 3 Conceptronic CH3SNAS &ldquo;gepimpt&rdquo; mit einem dicken Kondensator am Einschalter, damit die (von mir lieblich Würfel genannt) NAS, wenn sie über die Zeitschaltuhr eingeschaltet werden automatisch starten. Normalerweise müsste man beim Einschalten der Stromzufuhr jeden Würfel einzeln einschalten &hellip; Daher der Kondensator und die Zeitschaltuhren. Ein &ldquo;Würfel&rdquo; dient als Media-Streamer für meine Tochter, die anderen beiden sind einfach nur Backup-Server für ein entferntes Backup vom Kunden.</p>
<p><strong>Da dieses Backup sehr von den Würfeln abhängt, hier eine kurze Beschreibung</strong>:</p>
<p>Die Funktion sieht aus wie folgt: Da Bänderschreiben zu lange dauert und ab einer bestimmten Größe auch sehr teuer ist, habe ich mit meinen Kunden folgendes Konzept vorgeschlagen:</p>
<ul>
<li>Backup 1. Stufe: Ein NAS steht vor Ort, auf welchem entweder automatisiert (wenn ein Linux-File-Server vorhanden) eine DaSi erfolgt oder manuell auf einer Windows-Kiste angestossen.</li>
<li>Backup 2. Stufe: per VPN-Tunnel durchs Internet hindurch wird ein RSYNC angestoßen, welches nur die veränderten Dateien auf einem bei mir im Serverschrank stehenden &ldquo;Würfel&rdquo; schreibt.</li>
</ul>
<p>Wenn kein Linux-Server vor Ort steht, kommt ein Programm zur Ausführen welches ich mit <link rel=dns-prefetch href=//www.autoitscript.com /> <a href="http://www.autoitscript.com"
    title="AutoIt" 
     target="_blank" rel="nofollow noopener noreferrer" >
  AutoIt&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> geschrieben habe. Ich habe dort sehr einfach die Möglichkeit Abläufe zu programmieren. Abhängig von den Ergebnissen, lasse ich mir Emails mit entsprechender Wichtigkeitsstufe schicken. Das Ganze eingepackt in einer schönen und informativen Oberfläche freut den Kunden über die Einsparung von Zeit und Geld und erhöhter Sicherheit. Wenn , als kleines Plus, sich der Server/PC auch noch selber ausschaltet ist die Freude beim Kunden sehr groß.</p>
<p>Unter Linux ist das Ganze weniger optisch aufbereitet am Arbeiten und für den Kunden unsichtbar sowie komplett automatisch. Aber auch hier erhalte ich meine wichtigen Mails mit entweder dem blauen Ausrufezeichen (alles OK) oder dem roten Ausrufezeichen (da ist was schief gelaufen).</p>
<p>Es gibt, in Perl geschrieben, ein Programm, dass nennt sich &ldquo;mime-construct&rdquo; <link rel=dns-prefetch href=//search.cpan.org /> <a href="http://search.cpan.org/~rosch/mime-construct-1.9/mime-construct"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>. Vorausgesetzt, auf dem ausführenden Server (egal ob Liunx, unser schöner Würfel oder IPCOP/IPFIRE) ist der MTA (Mail Transfer Agent) meist Postfix, sendmail o.ä. schon soweit konfiguriert, dass Mails verschickt werden können, ist dieses Perl-Programm eine kleine Erleichterung, wenn es darum geht HTML-Mails per Script zu generieren und zu versenden. Zu installieren ganz einfach mit dem kleinen Perl-Helfer cpan &hellip;.</p>
<p>Nun hatte ich aus den oben genannten Gründen einige &ldquo;Würfel&rdquo; am Laufen. Alle, wie schon oben beschrieben, mit einem Kondensator gepimpt, zur automatischen Einschaltung zusammen mit dem Einschalten der Stromversorgung per 3,- € Schaltuhr, zum Stromsparen.</p>
<p><strong>Zu meinem Router</strong>:</p>
<p>Zu erst hatte ich eine Zeitlang <link rel=dns-prefetch href=//www.ipcop.org /> <a href="http://www.ipcop.org"
    title="IPCop" 
     target="_blank" rel="nofollow noopener noreferrer" >
  IPCop&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> installiert jetzt fahre ich IPFire, da letztere Distri mehr Funktionen zu bieten hatte, ist dies meine aktuelle Distri, welche ich gern benutze, da auch super stabil. IPFire &amp; IPCop haben beide eine sehr komfortable grafische Oberfläche welche per Browser sehr gut zu bedienen ist. Eine Funktion die mir von Anfang an ins Auge stach ist der DHCP-Teil. Im DHCP Server von beiden Systemen hat man nicht nur die Möglichkeit statische IP-Adressen zu vergeben und zu verwalten. Als kleines Plus so zu sagen, kann man hier noch TFTP-Funktionen konfigurieren. (Ich hatte ähnliches mal selber hingebogen mit einem Projekt was sich DIXIE nannte, an welchem ich auch eine Zeitlang aktiv mit programmiert hatte)</p>
<p>Was bedeutet:</p>
<p>Bootet ein PC mit aktivierter Bootfunktion der Netzwerkkarte über das Netzwerk, kann DHCP nicht nur eine IP-Adresse, Netzwerkmaske, Router-Adresse etc. übermitteln, sondern auch noch einen TFTP-Server mit angeben, welchen das bootende Gerät dann nach einer Bootbaren aber per DHCP vorgegebenen Datei befragt.</p>
<p>Wichtig ist, die Geräte müssen in der Lage sein und PXE (Pre-Boot Execution Environment) verstehen. Die neueren Rechner mit LAN-On-Board sowie einzelne Netzwerkkarten von den üblichen Herstellern können dieses in der Regel. Meist ist es nur eine kleine Einstellung im Bios, welches diese Funktion aktiviert (Achtung bei Aktivierung auch an die Boot-Reihenfolge der aktiven eingebauten Geräte im PC denken)</p>
<p>Im Falle von extra eingebauten Netzwerkkarten, bekommt man in der Regel für kurze Zeit während des Bootens eine Nachricht zu sehen, worin steht, wie man die Boot-Einstellungen der Netzwerkkarte erreichen kann. Meist wie beim BIOS-Setup irgend eine abenteuerliche Tasten-Kombination die simultan gedrückt werden muss. Ist die Lan-Boot Funktion per PXE aktiviert, steht einer Remote-Installation per RIS schon fast nichts mehr im Wege.</p>
<p>Nun wird es interessant! Durch Zufall bin ich auf folgende Adresse gestoßen: <link rel=dns-prefetch href=//oss.netfarm.it /> <a href="http://oss.netfarm.it/guides/"
    title="http://oss.netfarm.it/guides/" 
     target="_blank" rel="nofollow noopener noreferrer" >
  http://oss.netfarm.it/guides/&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></p>
<p>Dort steht beschrieben, wie man unter Linux einen von mir sehr lang ersehnten RIS-Server zum Laufen bringt. Auf allen Würfeln habe ich selbstverständlich das fun_plug nach der <a href="/nas/tutorials/ffp/"
    title="Anleitung von Uli" 
   >
  Anleitung von Uli</a> am Laufen. Da ich nie im Voraus weiß, was ich später einmal brauchen könnte, installiere ich meist alles, was ich so finden kann, so auch geschehen mit dem fun_plug!</p>
<p><strong>Nun habe ich alles, was ich so brauchen könnte um die RIS-Tools zu kompilieren und zu installieren</strong>. Nach dem ich alles laut den Anleitungen kompiliert, installiert und eingerichtet hatte, kann ich nun per grafischer Oberfläche mittels GFX-PXE-Boot mir quasi aussuchen, was ich auf dem nächsten PC installieren möchte. Ich habe zur Auswahl XP Pro, XP Home, W2K-Pro, Linux diverse Versionen. Wie schon beschrieben, DHCP + grafischer Oberfläche wird mir vom IPCOP / IPFIRE zur Verfügung gestellt.</p>
<p>Folgende Einträge sind dort sehr wichtig:</p>
<ol>
<li>MAC-Adresse vom PC</li>
<li>IP-Adresse vom PC</li>
<li>Ein Häkchen in &ldquo;Aktiviert&rdquo; setzen</li>
<li>Eventuell das Feld Anmerkung ausfüllen bei IPCOP hat man noch ein Feld für den PC-Namen, das wurde bei IPFIRE weggelassen und durch fortlaufende Standardeinträge ersetzt.</li>
<li>next-Server: hier kommt die IP-Adresse vom Würfel eingetragen</li>
<li>Filename: entweder &ldquo;pxelinux.0&rdquo; oder &ldquo;gpxelinux.0&rdquo; je nach belieben, welche Oberfläche einem besser gefällt.</li>
<li>root path: in meinem Falle: /mnt/HD_a2/REMINST</li>
</ol>
<p>Damit wäre der erste Schritt getan. Jetzt muss nur noch der Würfel entsprechend vorbereitet werden. IPCOP und IPFIRE, muss nicht unbedingt als Router eingesetzt werden, wenn man eine kleine stromsparende Intel kompatible Büchse hat, einfach Boot-CD herunter laden und halt nur die grüne Karte aktivieren und als rot irgend was auswählen. Wer sich selber herantraut, kann das Ganze auch auf dem Würfel zum Laufen bringen, nur warne ich davor, so eine passende dhcpd.conf Datei hat es in sich, nachträgliche Änderungen per Editor und ein Schreibfehler&hellip;. man sucht manchmal einige Zeit nach dem kleinen Fehler.</p>
<p>Meinen TFTP-Boot-Kram habe ich das Verzeichnis <code>/mnt/HD_a2/REMINST</code> auf dem Würfel angelegt. Für PXE-Infos und Tar-Balls, Wiki etc besucht mal <link rel=dns-prefetch href=//syslinux.zytor.com /> <a href="http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project"
    title="diese Seite" 
     target="_blank" rel="nofollow noopener noreferrer" >
  diese Seite&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>. Unter dem Verzeichnis <code>/mnt/HD_a2/REMINST</code> sind folgende Dateien:</p>
<ul>
<li><code>pxelinux.0</code> (PXE-Bootdatei, ASCII-Menu-Oberfläche)</li>
<li><code>gpxelinux.0</code> (PXE-Bootdatei, teils grafische Menu-Oberfläche)</li>
</ul>
<p>Dazu das Verzeichnis <em>pxelinux.conf</em> mit der Datei <em>default</em></p>
<p>Der Inhalt könnte wie folgt aussehen (im Falle von gpxelinux.0):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">DEFAULT vesamenu.c32
</span></span><span class="line"><span class="cl">PROMPT 0
</span></span><span class="line"><span class="cl"># Menu Configuration
</span></span><span class="line"><span class="cl">MENU WIDTH 80
</span></span><span class="line"><span class="cl">MENU MARGIN 10
</span></span><span class="line"><span class="cl">MENU PASSWORDMARGIN 3
</span></span><span class="line"><span class="cl">MENU ROWS 12
</span></span><span class="line"><span class="cl">MENU TABMSGROW 18
</span></span><span class="line"><span class="cl">MENU CMDLINEROW 18
</span></span><span class="line"><span class="cl">MENU ENDROW 24
</span></span><span class="line"><span class="cl">MENU PASSWORDROW 11
</span></span><span class="line"><span class="cl">MENU TIMEOUTROW 20
</span></span><span class="line"><span class="cl">MENU TITLE -=*[ Mein Remote Boot Menu per PXE ]*=-
</span></span><span class="line"><span class="cl">TIMEOUT 1000
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">LABEL bootlocal
</span></span><span class="line"><span class="cl"> MENU DEFAULT
</span></span><span class="line"><span class="cl"> MENU LABEL von eigener Festplatte booten
</span></span><span class="line"><span class="cl"> LOCALBOOT 0
</span></span><span class="line"><span class="cl">LABEL rescue
</span></span><span class="line"><span class="cl"> MENU LABEL Rescuedisc
</span></span><span class="line"><span class="cl"> KERNEL kernel32
</span></span><span class="line"><span class="cl"> APPEND vga=normal initrd=rootfs.cgz root=/dev/ram0 rw
</span></span><span class="line"><span class="cl">LABEL win2k
</span></span><span class="line"><span class="cl"> MENU LABEL Windows 2000
</span></span><span class="line"><span class="cl"> KERNEL w2k.0
</span></span><span class="line"><span class="cl">LABEL winxp
</span></span><span class="line"><span class="cl"> MENU LABEL Windows XP Professional
</span></span><span class="line"><span class="cl"> KERNEL winxp.0
</span></span><span class="line"><span class="cl">LABEL winhp
</span></span><span class="line"><span class="cl"> MENU LABEL Windows XP Home
</span></span><span class="line"><span class="cl"> KERNEL winxh.0
</span></span><span class="line"><span class="cl">LABEL win2k3
</span></span><span class="line"><span class="cl"> MENU LABEL Windows 2003
</span></span><span class="line"><span class="cl"> KERNEL w2k3.0
</span></span><span class="line"><span class="cl">LABEL suse-11.3-32bit
</span></span><span class="line"><span class="cl"> MENU LABEL Open SuSE 11.3 32Bit
</span></span><span class="line"><span class="cl"> KERNEL suse-11.3-linux
</span></span><span class="line"><span class="cl"> APPEND VGA=ask initrd=suse-11.3-initrd install=ftp://192.168.9.99
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun unter <code>/mnt/HD_a2/REMINST</code> den RIS-Kram von <link rel=dns-prefetch href=//oss.netfarm.it /> <a href="http://oss.netfarm.it/guides/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> kompilieren und nach <em>/mnt/HD_a2/REMINST/binlsrv</em> installieren. Achtung, es wird auch der Python-Interpreter aus dem fun_plug benötigt!</p>
<p>Unter <code>/mnt/HD_a2/REMINST</code> liegen meine Verzeichnisse wie folgt:</p>
<ul>
<li><strong>inf</strong>: hier kommen alle benötigten .inf Dateien von den Netzwerkkarten hinein</li>
<li><strong>sys-files</strong>: hier kommen von den Treibern alle .sys, .cat, .com, .dll etc. Dateien rein</li>
</ul>
<p>Nun das Programm infparser.py aus dem binlsrv-Verzeichniss den Cache nach Anleitung vom Programm aufbauen lassen.</p>
<p>Ich lasse per /ffp/start/tftp den TFTP-Server als auch den binlsrv (die kompilierte binäre Version) auf dem Würfel laufen und habe das Start-Script wie folgt angepasst:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/ffp/bin/sh
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># PROVIDE: in.tftpd</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">. /ffp/etc/ffp.subr
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">name</span><span class="o">=</span><span class="s2">&#34;in.tftpd&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">command</span><span class="o">=</span><span class="s2">&#34;/ffp/sbin/in.tftpd&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">tftpd_flags</span><span class="o">=</span><span class="s2">&#34;-l -s /mnt/HD_a2/REMINST&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">in_tftpd_flags</span><span class="o">=</span><span class="s2">&#34;-l -s /mnt/HD_a2/REMINST&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">tftpd_flags</span><span class="o">=</span><span class="s2">&#34;-l -s /nfsroot&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">in_tftpd_flags</span><span class="o">=</span><span class="s2">&#34;-l -s /nfsroot&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /mnt/HD_a2/REMINST/binlsrv
</span></span><span class="line"><span class="cl">./binlsrv <span class="p">&amp;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">run_rc_command <span class="s2">&#34;</span><span class="nv">$1</span><span class="s2">&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Gestripped ist der Server nur knappe 12Kb groß und frist nicht zuviel RAM und Ressourcen, daher hatte ich mich entschieden, die binäre Variante laufen zu lassen an Stelle der Python basierenden Variante. Na klar hätte ich ein eigenes Script schreiben können, aber die Nervosität, ob so etwas denn wirklich funktionieren könnte, hat mich zu einer noch heute anhaltenden &ldquo;quick and dirty&rdquo; Lösung hinreißen lassen. Wie heißt es so schön: Ein Provisorium hat meist länger Bestand als &hellip;&hellip;.</p>
<p>Dann der Test &hellip;. es funktioniert. Ich kann nun selbst PCs ohne irgendwelche Wechselträger Laufwerke wie CD’s oder DVD’s mit der Installation von XP oder W2K, Linux beglücken. Beim Kunden vor Ort, erspart man sich sehr viel Zeit mit so einer RIS-Umgebung! Zusätzlich kann man .sif Dateien nach seinen Bedürfnissen anpassen.</p>
<p>Um nicht jedes Mal die Windows-Update Dateien aus dem Internet wo möglich noch mit einer &ldquo;Klecker-Leitung&rdquo; herunter zu laden, gibt es die Möglichkeit von der Zeitschrift CT das Programm ctupdate zu installieren. Das Programm kann für alle Windows-Versionen, alle Office-Versionen in jeder Sprache und für jede Plattform (32bit, 64bit) alle benötigten Patche herunterladen und in einem Verzeichnis zur Verfügung stellen. Früher von &lsquo;CT und dem Autor zusammen entwickelt, jetzt vom Autor Torsten Wittrock in Eigenregie weiter entwickelt kann man sich das Paket <link rel=dns-prefetch href=//www.wsusoffline.net /> <a href="http://www.wsusoffline.net/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> herunterladen und installieren. Im ausgepackten Archiv unter sh findet man die entsprechenden Scripts für die nächtlichen Downloads.</p>
<p>Etwas ist hier zu beachten: Office 6 wird von der aktuellen Version nicht mehr unterstützt. Man kann sich aber noch die ältere Version (6.2) vom CT bzw. Heise Server besorgen in ein eigenes Verzeichnis installieren und nur den älteren kram einmal herunter laden und dann aufheben, z.B.: für Installationsarbeiten an älteren Office-Versionen.
Da hier keine weiteren Sicherheitsupdates von Microsoft zur Verfügung gestellt werden.</p>
<p>Die aktuelle Version von ctupdate bzw. heute wsusoffline schließt auch aktuelle Windows Versionen mit ein. Bisheriger Nachteil: leider lässt das Programm keine Installationen von einem Netzlaufwerk zu. Sprich man muss sich aus dem Archiv und den herunter geladenen Patches das komplette Verzeichnis &ldquo;client&rdquo; auf den PC Kopieren. Mit einem Giga-Netzwerk dauert es nur einpaar Minuten. Das Programm UpdateInstaller.exe bietet eine grafische Oberfläche wo man automatische Reboots und einiges mehr einstellen kann. Ansonsten stellt das Programm selber fest, welche Patches schon installiert wurde und installiert nur die Benötigten nach.</p>
<p>Es ist schon sehr zeitsparend, als jedes Mal auf den Autoinstaller von Windows zu warten, oder per Web-Interface sich den kram mühsam herunter zu laden. Zu den Patches zählen übrigens auch die Service-Packs &hellip;.. Und das für Windows als auch Office! Einige Programme und so weit ich mich erinnere auch ctupdate bzw. wsusoffline brauchen kleinere Module welche nachinstalliert werden müssen. Diese Module werden meist im Zusammenhang mit den Interpretern Perl oder php benötigt und lassen sich per cpan für perl bzw. pear für php sehr einfach nach installieren. Auch erkennen diese &ldquo;Modul-Verwalter&rdquo; für php oder perl fehlende Abhängigkeiten und teilen einem dies entweder mit oder fragen gleich danach ob diese auch gleich installiert werden sollen.</p>
<p>Die Wiki Seiten der von mir benutzten Programme und Projekte sind alle sehr gut beschrieben. Zwar in Englisch, aber trotz dem sehr gut. Die meisten Projekte bieten für weitere Fragen oder Probleme auch Foren oder Mailinglisten an. Wie schon eingangs beschrieben, habe ich von dem fun_plug alle Pakete installiert und daher nur wenig zu tun gehabt mit Nachinstallationen für alle oben genannten Programme und Projekte.</p>
<p><strong>Alles in Allem</strong>, kann man sagen, dass so ein keiner Würfel, einem &ldquo;Kleinkrauter&rdquo; das Leben doch sehr vereinfachen und im IT-Alltag sehr behilflich sein kann.</p>
<p>Unter dem schwarzen Deckel steckt weit aus mehr als &ldquo;nur&rdquo; ein Datei- und Streaming-Server !</p>
<p>Er, der kleine Schwarze Würfel, kann zu Hause oder auch in einer kleinen Firma die Anschaffung von teurem Equipment ersparen. Ich habe den Kauf bis heute nicht bereut und möchte an dieser Stelle allen Projektteilnehmern, Programmierern und ganz speziell Uli meinen Dank aussprechen ohne Derer es solch tolle Möglichkeiten nie geben würde!</p>
]]></content:encoded>
    </item>
    <item>
      <title>SysCP 1.4.2 und 1.4.2.1 wurden released</title>
      
      
      <link>https://wolf-u.li/syscp-142-und-1421-wurden-released/</link>
      <pubDate>Tue, 21 Apr 2009 13:49:14 +2100</pubDate>
      <guid>https://wolf-u.li/syscp-142-und-1421-wurden-released/</guid>
      <description>&lt;p&gt;Für das Administrationstool &lt;a href=&#34;https://wolf-u.li/tag/syscp/&#34;
    title=&#34;SysCP&#34; 
   &gt;
  SysCP&lt;/a&gt; ist im letzten Monat die neue Version 1.4.2 und kurz später mit ein paar weiteren Bugfixes 1.4.2.1 erschienen. Leider hat in der Zwischenzeit ein Teammitglied das Projekt verlassen, weshalb der, mit 1.4 eingeführte, Installer für den Application Packaging Standard, leider derzeit ohne Maintainer ist.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die konkreten Änderungen für 1.4.2:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Double menuentries for Billing was shown (bug 1003)&lt;/li&gt;
&lt;li&gt;APS menu now shows up again (bug 1002)&lt;/li&gt;
&lt;li&gt;PHPMyAdmin/WebMail/WebFTP links in menu now show up again (bug 1061)&lt;/li&gt;
&lt;li&gt;PHP Configuration is again editable (bugs 1024, 1029, 1031)&lt;/li&gt;
&lt;li&gt;Several language mistakes in english language file were corrected (bug 1070)&lt;/li&gt;
&lt;li&gt;Protected areas with lighttpd work again (bug 1050)&lt;/li&gt;
&lt;li&gt;Awstats configuration page show all configs (bug 1001)&lt;/li&gt;
&lt;li&gt;Added missing line break to nss-mysql.cnf (bug 1026)&lt;/li&gt;
&lt;li&gt;Database query error by searching for ticket on categories page (bug 1073)&lt;/li&gt;
&lt;li&gt;Resellers weren&amp;rsquo;t able to manage instances of their customers (bug 1088)&lt;/li&gt;
&lt;li&gt;Autoresponder cron script didn&amp;rsquo;t ran because of short tags (bug 1045)&lt;/li&gt;
&lt;li&gt;Autoresponder didn&amp;rsquo;t remove the cron lockfile if module was disabled (bug 1091)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Die Änderungen für 1.4.2.1:&lt;/strong&gt;&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Für das Administrationstool <a href="/tag/syscp/"
    title="SysCP" 
   >
  SysCP</a> ist im letzten Monat die neue Version 1.4.2 und kurz später mit ein paar weiteren Bugfixes 1.4.2.1 erschienen. Leider hat in der Zwischenzeit ein Teammitglied das Projekt verlassen, weshalb der, mit 1.4 eingeführte, Installer für den Application Packaging Standard, leider derzeit ohne Maintainer ist.</p>
<p><strong>Die konkreten Änderungen für 1.4.2:</strong></p>
<ul>
<li>Double menuentries for Billing was shown (bug 1003)</li>
<li>APS menu now shows up again (bug 1002)</li>
<li>PHPMyAdmin/WebMail/WebFTP links in menu now show up again (bug 1061)</li>
<li>PHP Configuration is again editable (bugs 1024, 1029, 1031)</li>
<li>Several language mistakes in english language file were corrected (bug 1070)</li>
<li>Protected areas with lighttpd work again (bug 1050)</li>
<li>Awstats configuration page show all configs (bug 1001)</li>
<li>Added missing line break to nss-mysql.cnf (bug 1026)</li>
<li>Database query error by searching for ticket on categories page (bug 1073)</li>
<li>Resellers weren&rsquo;t able to manage instances of their customers (bug 1088)</li>
<li>Autoresponder cron script didn&rsquo;t ran because of short tags (bug 1045)</li>
<li>Autoresponder didn&rsquo;t remove the cron lockfile if module was disabled (bug 1091)</li>
</ul>
<p><strong>Die Änderungen für 1.4.2.1:</strong></p>
<ul>
<li>Domain adding was case-insensitive, allowing same domain to be added multiple times (1057)</li>
<li>Domain panel pagination is faulty, shows too many pages (bug 1157)</li>
<li>Adding one-letter-subdomains didn&rsquo;t work (bug 1064)</li>
<li>Wildcards are agin allowed in IP/Port configuration (bug 1115)</li>
<li>When adding IP/Port combination: Listen Statement not set (bug 1190)</li>
<li>Added Debian Lenny 5.0 Configfiles</li>
<li>Unable to add one-letter-subdomains (bug 1064)</li>
<li>It is not possible to add a forward as subdomain (bug 1015)</li>
<li>Admin messages always bounced because of switched email/name (bug 1160, 1040)</li>
<li>E-Mail-Accounts with IDN-Domains now work again (you have to change your configuration) (bug 1170)</li>
<li>Mail qouta in &ldquo;email_quota_used&rdquo; is not changed if mail account is deleted (bug 1107)</li>
<li>Customer can disable mail quota (bug 1100)</li>
<li>Number for email forwarders for customers not possible to set to unlimited (bug 1158)</li>
<li>Fixed lots of warnings in php code (bug 1044, 1048, 1141)</li>
<li>In new installations default dir for customers is now /var/customers (bug 1191)</li>
<li>Dropdown list of path is not sorted alphabetically (bug 1008)</li>
<li>Updated languagefiles (bug 1124, 1153, 1099)</li>
<li>Many alias fixes in awstats/webalizer (bug 1077, 1076, 1155, 1118, 1121)</li>
<li>Many fixes in the configfiles (bug 1167, 1164, 1192, 1069, 1085, 1161, 1030, 1103)</li>
<li>Keep default language when changed by user (bug 1119)</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Beispiel für ein AuthzSVNAccessFile von Subversion</title>
      
      
      <link>https://wolf-u.li/beispiel-fuer-ein-authzsvnaccessfile-von-subversion/</link>
      <pubDate>Wed, 13 May 2009 12:56:23 +1300</pubDate>
      <guid>https://wolf-u.li/beispiel-fuer-ein-authzsvnaccessfile-von-subversion/</guid>
      <description>&lt;p&gt;Soeben habe ich bei einem Kollegen dessen Subversion-Repositories konfiguriert. Da er mehrere Repositories über eine Domain mit verschiedenen Zugriffsrechten im Web nutzen möchte, haben wir uns für das dav_svn-Modul von Apache entschieden. Zur Absicherung sollte ein AuthzSVNAccessFile genutzt werden. Da ich ihm ein Beispiel für dieses AuthzSVNAccessFile geschrieben habe, möchte dieses hier kurz präsentieren.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;## Gruppen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#[groups]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;## Gruppenzuordnungen von Nutzern&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#groupname = user1,user2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;## Repositories&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#[reposname:/]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;## Lese/Schreibzugriff für jeden Nutzer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#* = rw&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;## Kein Zugriff für diese Gruppe&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#@groupname =&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;## Lesezugriff für diesen Nutzer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#user1 = r&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#[reposname:/trunk/]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;## Lese/Schreibzugriff für Nutzer user1 auf /trunk/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#user1 = rw&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      
         <content:encoded><![CDATA[<p>Soeben habe ich bei einem Kollegen dessen Subversion-Repositories konfiguriert. Da er mehrere Repositories über eine Domain mit verschiedenen Zugriffsrechten im Web nutzen möchte, haben wir uns für das dav_svn-Modul von Apache entschieden. Zur Absicherung sollte ein AuthzSVNAccessFile genutzt werden. Da ich ihm ein Beispiel für dieses AuthzSVNAccessFile geschrieben habe, möchte dieses hier kurz präsentieren.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1">## Gruppen</span>
</span></span><span class="line"><span class="cl"><span class="c1">#[groups]</span>
</span></span><span class="line"><span class="cl"><span class="c1">## Gruppenzuordnungen von Nutzern</span>
</span></span><span class="line"><span class="cl"><span class="c1">#groupname = user1,user2</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">## Repositories</span>
</span></span><span class="line"><span class="cl"><span class="c1">#[reposname:/]</span>
</span></span><span class="line"><span class="cl"><span class="c1">## Lese/Schreibzugriff für jeden Nutzer</span>
</span></span><span class="line"><span class="cl"><span class="c1">#* = rw</span>
</span></span><span class="line"><span class="cl"><span class="c1">## Kein Zugriff für diese Gruppe</span>
</span></span><span class="line"><span class="cl"><span class="c1">#@groupname =</span>
</span></span><span class="line"><span class="cl"><span class="c1">## Lesezugriff für diesen Nutzer</span>
</span></span><span class="line"><span class="cl"><span class="c1">#user1 = r</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">#[reposname:/trunk/]</span>
</span></span><span class="line"><span class="cl"><span class="c1">## Lese/Schreibzugriff für Nutzer user1 auf /trunk/</span>
</span></span><span class="line"><span class="cl"><span class="c1">#user1 = rw</span>
</span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Backup von Sonatype Nexus</title>
      
      
      <link>https://wolf-u.li/backup-von-sonatype-nexus/</link>
      <pubDate>Wed, 08 Apr 2009 18:34:39 +0800</pubDate>
      <guid>https://wolf-u.li/backup-von-sonatype-nexus/</guid>
      <description>&lt;p&gt;Nach der &lt;a href=&#34;https://wolf-u.li/2167/einrichtung-eines-maven-repository-bzw-maven-proxy-sonatype-nexus/&#34;
    title=&#34;Einrichtung&#34; 
   &gt;
  Einrichtung&lt;/a&gt; von &lt;link rel=dns-prefetch href=//nexus.sonatype.org /&gt; &lt;a href=&#34;http://nexus.sonatype.org/&#34;
    title=&#34;Sonatype Nexus&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Sonatype Nexus&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; fragt sich der gute Systemadministrator wie man das ganze am besten sichern kann. Nexus ist grundlegend ersteinmal aufgeteilt in zwei Teile, die Applikation (&lt;em&gt;nexus-webapp-X.X.X.X&lt;/em&gt;) und die Datenhaltung (&lt;em&gt;sonatype-work&lt;/em&gt;), was eine Sicherung deutlich vereinfacht.
Im Grund genommen führt man einfach nur ein Backup des Verzeichnisses &lt;strong&gt;sonatype-work/nexus&lt;/strong&gt; durch.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Nach der <a href="/2167/einrichtung-eines-maven-repository-bzw-maven-proxy-sonatype-nexus/"
    title="Einrichtung" 
   >
  Einrichtung</a> von <link rel=dns-prefetch href=//nexus.sonatype.org /> <a href="http://nexus.sonatype.org/"
    title="Sonatype Nexus" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Sonatype Nexus&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> fragt sich der gute Systemadministrator wie man das ganze am besten sichern kann. Nexus ist grundlegend ersteinmal aufgeteilt in zwei Teile, die Applikation (<em>nexus-webapp-X.X.X.X</em>) und die Datenhaltung (<em>sonatype-work</em>), was eine Sicherung deutlich vereinfacht.
Im Grund genommen führt man einfach nur ein Backup des Verzeichnisses <strong>sonatype-work/nexus</strong> durch.</p>
<p>Wenn man das ganze etwas genauer betrachtet, kann man folgende Verzeichnisse noch ausschließen, die ohne Probleme in einer neuen Installation wiederhergestellt werden können:</p>
<ul>
<li><strong>sonatype-work/nexus/indexer</strong> - Lucene index</li>
<li><strong>sonatype-work/nexus/proxy</strong> - Metadaten und Dateiattribute</li>
<li><strong>sonatype-work/nexus/logs</strong> - Logs</li>
</ul>
<p>Noch ein Hinweis: Hat man Modifikationen im Verzeichnis <strong>nexus-webapp-X.X.X.X/conf</strong> vorgenommen (z.B. das Binding auf 127.0.0.1), so sollte man diese natürlich sichern&hellip;
<link rel=dns-prefetch href=//stackoverflow.com /> <a href="http://stackoverflow.com/questions/710596/how-do-i-backup-a-nexus-repo"
    title="Quelle" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Quelle&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Kabelwahnsinn in Rechenzentren - Salat oder Kunst?</title>
      
      
      <link>https://wolf-u.li/kabelwahnsinn-in-rechenzentren-salat-oder-kunst/</link>
      <pubDate>Sun, 03 Feb 2008 19:17:40 +0300</pubDate>
      <guid>https://wolf-u.li/kabelwahnsinn-in-rechenzentren-salat-oder-kunst/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://wolf-u.li/upload/2008/02/1034-kabelsalat.webp&#34; alt=&#34;1034-kabelsalat.webp&#34; loading=&#34;lazy&#34;&gt;
&lt;img src=&#34;https://wolf-u.li/upload/2008/02/1034-kabelkunst.webp&#34; alt=&#34;1034-kabelkunst.webp&#34; loading=&#34;lazy&#34;&gt;&lt;/p&gt;
&lt;p&gt;Letztens war ich in der Arbeit mal wieder im Rechenzentrum. Saubere Verkabelung, wenn auch noch nicht perfekt (angesichts des rechten Bildes). Ich bin heute über zwei Webseiten gestolpert, die die krassen Gegenteile der Verkabelung zeigen&amp;hellip; Ich tendiere stark zur rechten Seite, wenn ich mir mein Zimmer ansehe ;) Allerdings nicht ganz so extrem. Bewundernswert.&lt;/p&gt;
&lt;p&gt;Nun zu den Bilderseiten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;link rel=dns-prefetch href=//royal.pingdom.com /&gt; &lt;a href=&#34;http://royal.pingdom.com/?p=240&#34;
    title=&#34;Kabelkunst&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Kabelkunst&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;link rel=dns-prefetch href=//www.vibrant.com /&gt; &lt;a href=&#34;http://www.vibrant.com/cable-messes.php&#34;
    title=&#34;Kabelsalat&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Kabelsalat&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die obenstehenden Bilder sind von &lt;link rel=dns-prefetch href=//www.flickr.com /&gt; &lt;a href=&#34;http://www.flickr.com/photos/mbm3290/120563181/&#34;
    title=&#34;hier&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  hier&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; und &lt;link rel=dns-prefetch href=//www.flickr.com /&gt; &lt;a href=&#34;http://www.flickr.com/photos/andrewmckaskill/&#34;
    title=&#34;hier&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  hier&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p><img src="/upload/2008/02/1034-kabelsalat.webp" alt="1034-kabelsalat.webp" loading="lazy">
<img src="/upload/2008/02/1034-kabelkunst.webp" alt="1034-kabelkunst.webp" loading="lazy"></p>
<p>Letztens war ich in der Arbeit mal wieder im Rechenzentrum. Saubere Verkabelung, wenn auch noch nicht perfekt (angesichts des rechten Bildes). Ich bin heute über zwei Webseiten gestolpert, die die krassen Gegenteile der Verkabelung zeigen&hellip; Ich tendiere stark zur rechten Seite, wenn ich mir mein Zimmer ansehe ;) Allerdings nicht ganz so extrem. Bewundernswert.</p>
<p>Nun zu den Bilderseiten:</p>
<ul>
<li><link rel=dns-prefetch href=//royal.pingdom.com /> <a href="http://royal.pingdom.com/?p=240"
    title="Kabelkunst" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Kabelkunst&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
<li><link rel=dns-prefetch href=//www.vibrant.com /> <a href="http://www.vibrant.com/cable-messes.php"
    title="Kabelsalat" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Kabelsalat&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
<p>Die obenstehenden Bilder sind von <link rel=dns-prefetch href=//www.flickr.com /> <a href="http://www.flickr.com/photos/mbm3290/120563181/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> und <link rel=dns-prefetch href=//www.flickr.com /> <a href="http://www.flickr.com/photos/andrewmckaskill/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>.</p>
]]></content:encoded>
    </item>
    <item>
      <title>PHP4.4.8 erschienen und Support eingestellt</title>
      
      
      <link>https://wolf-u.li/php448-erschienen-und-support-eingestellt/</link>
      <pubDate>Fri, 04 Jan 2008 09:49:20 +0400</pubDate>
      <guid>https://wolf-u.li/php448-erschienen-und-support-eingestellt/</guid>
      <description>&lt;p&gt;Soeben habe ich &lt;link rel=dns-prefetch href=//www.heise.de /&gt; &lt;a href=&#34;http://www.heise.de/newsticker/meldung/101271&#34;
    title=&#34;gelesen&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  gelesen&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;, dass PHP4.4.8 erschienen ist und gleichzeitig (endlich!) der Support dafür eingestellt wurde. Auf meinem Server sind noch 16% aller Domaineinträge mit PHP4 eingestellt, was spätestens 08.08.08 vom Server entfernt wird. PHP5.2 bietet sowieso die besseren Funktionen ;)&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Soeben habe ich <link rel=dns-prefetch href=//www.heise.de /> <a href="http://www.heise.de/newsticker/meldung/101271"
    title="gelesen" 
     target="_blank" rel="nofollow noopener noreferrer" >
  gelesen&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>, dass PHP4.4.8 erschienen ist und gleichzeitig (endlich!) der Support dafür eingestellt wurde. Auf meinem Server sind noch 16% aller Domaineinträge mit PHP4 eingestellt, was spätestens 08.08.08 vom Server entfernt wird. PHP5.2 bietet sowieso die besseren Funktionen ;)</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
