MAMP-Zugriff über Parallels

26. September 2008, 17:16

Um Webseiten, die auf einer lokalen MAMP-Installation auf dem MacBook laufen, auch mit dem Internet Explorer unter Parallels testen zu können, muss man unter Systemeinstellungen > Sharing > Web-Sharing aktivieren.

Nun ist der Webserver unter Parallels über sabu.local:8888 (wobei sabu der Name des Computers ist) zu erreichen.

Update:
Indem man Bonjour für Windows installiert, kann man auf die Einstellung oben verzichten.
Sollte der Rechner unter COMPUTERNAME.local nicht erreichbar sein, so kann man es alternativ auch mit der IP-Adresse versuchen.

Mehrere TYPO3-Seiten mit einer Source auf einem Server mit Plesk

12. August 2008, 17:28

Habe die letzten Tage meine drei TYPO3-Installationen auf dem eigenen Server so verändert, dass sie nun auf die gleiche Source zugreifen.
Dazu fand ich eine große Anzahl von Anleitungen im Netz, doch die meisten waren nicht vollständig oder erwähnten einen entscheidenden Schritt einfach nicht. Deshalb hab ich mir vorgenommen, den Vorgang (eigentlich nur für mich) nochmal schritflich festzuhalten, sollte ich nochmal vor diesem Problem stehen.

Die Serververwaltung erledige ich hauptsächlich über Plesk. Die nachfolgenden Anpassungen muss man aber über die Shell erledigen. Damit mehrere TYPO3-Installationen auf die gleiche Source zugreifen können, müssen nun folgende Anpassungen vorgenommen werden:

Die httpd.include der entsprechenden Domain muss um folgende Einträge erweitert werden (siehe auch hier):

1
2
3
4
<Directory /srv/www/vhosts/domain.de/httpdocs>
php_admin_value open_basedir "/srv/www/vhosts/domain.de/httpdocs:/tmp:/PFAD_ZU_TYPO3_SRC"
Options FollowSymLinks
</Directory>

Danach muss man im httpdocs-Verzeichnis der Domain ein paar Links anlegen:

1
2
3
4
5
ln -s /PFAD_ZU_TYPO3_SRC typo3_src
ln -s typo3_src/typo3/ typo3
ln -s typo3_src/t3lib/ t3lib
ln -s typo3_src/index.php index.php
ln -s typo3_src/misc misc

Der erste Link vereinfacht die ganze Sache im Falle eines Updates, da nicht alle Links geändert werden müssen. Es reicht den Pfad zu PFAD_ZU_TYPO3_SRC anzupassen, alle anderen Links behalten ihre Gültigkeit.
Der letzte Befehl ist optional.

Plesk Tricks

18. Juni 2008, 14:39

Um abweichende Einstellungen für einen bestimmten virtuellen Host vorzunehmen kann man wie folgt vorgehen:

  • unter /var/www/vhosts/systemfehler.net/conf die Datei vhost.conf anlegen
  • in der angelegten Datei die gewünschten Konfigurationen vornehmen
    1
    2
    3
    4
    5
    <Directory /srv/www/vhosts/domain.de/httpdocs>
    php_admin_value open_basedir none
    php_admin_flag safe_mode off
    # usw.
    </Directory>
  • durch folgenden Befehl wird die vhost.conf an das Ende des virtuellen Hosts in der Datei httpd.include eingefügt:
    /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=domain.de
  • damit die Änderungen dann auch wirksam werden, muss Apache neu gestartet werden (rcapache2 reload oder rcapache2 restart). Davor würde ich aber mit rcapache2 configtest üeberprüfen, ob die Syntax der Konfigurationsdatei stimmt

Stoppen bzw. starten des Plesk-Dienstes (PSA) über die Shell mit folgenden Befehlen:

  • /etc/init.d/psa stop bzw.
  • /etc/init.d/psa start

Ordner schützen mit .htaccess

13. Dezember 2007, 14:46

Erzeugt eine .htaccess und eine .htpasswd in dem Ordner, in dem das Script ausgeführt wird.
PHP-Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function createHtpasswd($name, $user, $passwd) {
  $nl = "\n";

  $path = explode('/', $_SERVER['SCRIPT_FILENAME']);
  array_pop($path);
  $path = implode('/', $path);

  $handle = fopen('.htaccess', 'w');
  fputs($handle, 'AuthType Basic' . $nl);
  fputs($handle, 'AuthName "' . $name . '"' . $nl);
  fputs($handle, 'AuthUserFile ' . $path . '/.htpasswd' . $nl);
  fputs($handle, 'require user ' . $user . $nl);
  fclose($handle);
 
  $handle = fopen('.htpasswd', 'w');
  fputs($handle, $user . ':' . crypt($passwd, 21));
  fclose($handle);
}

if(isset($_POST['generate']))
  createHtpasswd($_POST['name'], $_POST['user'], $_POST['passwd']);

HTML-Formular:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table cellpadding="3" cellspacing="0">
  <tr>
    <td>AuthName:</td>
    <td><input type="text" name="name" value="" size="40" /></td>
  </tr>
  <tr>
    <td>User:</td>
    <td><input type="text" name="user" value="" size="40" /></td>
  </tr>
  <tr>
    <td>Passwd:</td>
    <td><input type="text" name="passwd" value="" size="40" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="generate" value="Generate" /></td>
  </tr>
</table>
</form>

Domainumleitung um Mehrfachcontent zu vermeiden

7. November 2007, 10:19

Hiermit lassen sich alle Domains, die auf den gleichen Inhalt zeigen, auf eine Domain weiterleiten.

1
2
3
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.systemfehler\.net [NC]
RewriteRule ^(.*)$ http://www.systemfehler.net/$1 [R=301,L]

Hiermit lässt sich eine Eingabe der Domain ohne www, auf die Domain mit www weiterleiten.

1
2
3
RewriteEngine On
RewriteCond %{HTTP_HOST} ^systemfehler\.net$ [NC]
RewriteRule ^(.*)$ http://www.systemfehler.net/$1 [R=301,L]

Apache-Direktiven

30. August 2007, 16:58
1
2
3
4
5
6
# direkter Aufruf von php-Dateien
# in einem Ordner verhindern
<Files *.php>
Order Deny,Allow
Deny from all
</Files>
1
2
# directory listing bei Apache > 1.3.x  erlauben
Options +Indexes
1
2
3
4
5
6
# verschiedene Werte in der php.ini ueberschreiben
<IfModule mod_php4.c>
php_value session.use_trans_sid On
php_admin_flag safe_mode Off
php_admin_value open_basedir None
</IfModule>
1
2
3
4
# teilt dem browser den zeichensatz mit,
# in dem die inhalte geliefert werden
AddDefaultCharset ISO-8859-1
AddCharset ISO-8859-1 .iso8859-1 .latin1