Ursache für Fehler 500 nach dem Serverupdate

Sollten Sie nach dem Serverupdate einen Fehler 500 beim Aufruf Ihrer Webseite erhalten, ist häufig eine alte Schreibnweise in der .htaccess für Zugriffsschutz auf Daten die Ursache.

Alte Schreibweise:

AuthType Basic
AuthName "Geschütztes Verzeichnis"
AuthUserFile /kunden/123456_54321/Pfad/.htpasswd
AuthPGAuthoritative Off
‹Files datei.endung›
Require user USER
‹/Files›

 

Neue Schreibweise:

‹Files datei.endung›
AuthType Basic
AuthName "Geschütztes Verzeichnis"
AuthUserFile /kunden/123456_54321/Pfad/.htpasswd
AuthPGAuthoritative Off
Require user USER
‹/Files›

Identischen Schadcode entfernen mit gn2clean

gn2clean kann PHP-Tags entfernen, die bestimmte Zeichenketten enthalten. Um das Skript ausführen zu können muss man eine passende Zeichenkette auswählen, die nur in dem der Schadcode vorkommt.

image_manager__picsize_bigger_gn2clean1

Nachdem eine passende Zeichenkette gefunden wurde, sollte man diese in zwei Teilen trennen und in gn2clean.php einpflegen:

image_manager__picsize_bigger_gn2clean2

und anschliessend gn2clean.php aufrufen. Voraussetzung für eine erfolgreiche Bereinigung einer Datei: der Schadcode muss sich innerhalb von einem eigenen PHP-Tag befinden.

?php

exec('find . -type f -name "*.php"', $list);

foreach ($list as $file) {
$contents = file_get_contents($file);
if (strpos($contents, 'x782f20'.'QUUI7jsv') !== false) {

echo 'INFIZIERT: ';
$contents = preg_replace("/\<\?php.*x782f2"."0QUUI7jsv.*\?\>/", '', $contents);
$oldSha = sha1_file($file);
file_put_contents($file, $contents);
$newSha = sha1_file($file);
echo basename($file).' - ['.$oldSha.']......PATCHING..... - ['.$newSha.']'."\n";
}
}

?

 

 

Quickinstallationen mit gn2 Tools

gn2-tools

Um die Installationen von oft eingesetzter Software zu vereinfachen, verwenden wir schon länger intern ein eigenes Skript. Dieses stellen wir jetzt öffentlich auf Github zur Verfügung und freuen uns über Pullrequests für weitere Skripte und bei Aktualisierungen der Versionen. Einfach das Skript ins gewünschte Verzeichnis laden und im Browser aufrufen. Wichtig ist bei Installation von phpMyAdmin der zusätzliche Passwortschutz per .htaccess um unberechtigten Zugriff zu verhindern. Nach der Installation die Datei __gn2tools.php wieder löschen.

https://github.com/gn2netwerk/gn2tools

Übertragung großer Datenmengen beim Hostingumzug

Wenn man nur eine kleine Webseite transferiert, ist der Download vom alten Server und anschließender Upload auf den neuen Server per FTP-Programm kein Problem. Wenn man aber eine große Installation umziehen möchte, dauert das viel zu lange und außerdem besteht immer die Gefahr, das zwischendurch die FTP-Verbindung abbricht und man die Übertragung erneut starten muß. Wenn auf dem neuen Server SSH zur Verfügung steht, kann man mit folgendem Terminalbefehl direkt von Server zu Server transferieren (kopiert alle Dateien von ftp.alteseite.de/pfad in den aktuellen Ordner):

Schnellere Ladezeiten durch mod_deflate

Performance von Webseiten wird immer wichtiger. Zum einen warten Webseitenbesucher nicht gern, bis sich eine Seite aufgebaut hat, außerdem wertet Google seit längerem schnelle Ladezeiten als positiven Rankingfaktor. Eine simple Methode, um Ladezeiten zu Beschleunigen ist die Nutzung von mode_deflate, dafür muß man nur folgende Zeilen in der .htaccess im Hauptverzeichnis der Installation ergänzen (zusätzlich sollte man bei Nutzung von PHP 5.4 oder 5.5 fastcgi aktivieren, dann ist automatisch APCbzw. OPcache aktiv und man hat damit schon eine gute Grundoptimierung durchgeführt):

# compress javascript, css:
<IfModule mod_gzip.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE image/gif
AddOutputFilterByType DEFLATE image/png
AddOutputFilterByType DEFLATE image/jpg
AddOutputFilterByType DEFLATE image/jpeg
AddOutputFilterByType DEFLATE image/pjpeg
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
# expirations
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType image/x-icon A2592000
</IfModule>