Plesk
Inhaltsverzeichnis |
Lange Antwortzeiten (Lieferfristen ;) für SMTP-Verbindungen
Das verwendete qmail macht per default reverse-lookups. Das kann ziemlich lange dauern. Die einfache Abhilfe ist im den Files /etc/xinetd.d/smtp_psa und /etc/xinetd.d/smtps_psa die Zeile server_args um den Parameter "-Rt0" zu erweitern. Es empfiehlt sich diesen Parameter als ersten zu übergeben. Die Zeile sollte nun wie folgt aussehen:
server_args = -Rt0 /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
Lange Antwortzeiten (Lieferfristen ;) für FTP-Verbindungen
Der verwendete ProFTPD macht per default reverse-lookups. Das kann ziemlich lange dauern. Die einfache Abhilfe ist im Files /etc/proftpd.conf folgende Zeilen hinzuzufügen:
UseReverseDNS OFF IdentLookups OFF
PHP rebuilden
Es kann sein, dass man das vorinstallierte PHP upgraden muss. Das kann ein ziemlich mühsamer job sein... Zuerst kopiert man sich einen output vom phpinfo():
'./configure' '--with-apxs=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/apache1/files/apxs' '--prefix=/usr/local/psa/apache' '--with-regex=php' '--with-config-file-path=/usr/local/psa/apache/conf' '--enable-sockets' '--enable-track-vars' '--with-mysql=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/release/dist/usr/local/psa/mysql' '--with-pgsql=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/release/dist/usr/local/psa/postgresql' '--with-iodbc=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--with-imap=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--with-imap-ssl' '--with-gd' '--with-jpeg-dir=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--with-png-dir=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--without-tiff' '--without-pdflib' '--with-gettext=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--with-openssl=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/release/openssl' '--with-zlib' '--disable-debug' '--enable-pear' '--with-mhash=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--with-curl=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--enable-ftp' '--enable-static' '--enable-mbstring' '--enable-mbregex' '--enable-xslt' '--with-xslt-sablot=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--with-sablot-js=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--with-expat-dir=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--with-iconv-dir=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist' '--with-xml' '--with-dom=/usr/home/builder/tmp_serge/psa_PLESK_7_5_3/lib/dist'
Anschliessend lädt man den source von PHP.net runter und kompiliert das ganze:
-su-2.05b# tar xvfz php-4.3.11 ... -su-2.05b# cd php-4.3.11
Sollten module fehlen (z.b. sablot) dann installiert man die entsprechenden Ports.
Ich erstelle zum konfigurieren immer eine make.sh Datei mit folgendem Inhalt:
./configure \ --with-apxs=/usr/local/psa/apache/bin/apxs \ --prefix=/usr/local/psa/apache \ --with-regex=php \ --with-config-file-path=/usr/local/psa/apache/conf \ --enable-sockets \ --enable-track-vars \ --with-mysql=/usr/local/psa/mysql \ --with-pgsql=/usr/local/psa/postgresql \ --with-imap \ --with-gd \ --with-jpeg-dir \ --with-png \ --without-tiff \ --without-pdflib \ --with-gettext \ --with-openssl \ --with-zlib \ --enable-xml \ --disable-debug \ --enable-pear \ --without-iconv \ --with-mhash \ --with-curl \ --enable-ftp \ --enable-static \ --with-freetype-dir \ --with-imap-ssl \ --with-png-dir \ --enable-mbstring \ --enable-mbregex \ --enable-xslt \ --with-xslt-sablot \ --with-sablot-js \ --with-dom \ --with-dom-xslt \ --with-dom-exslt
Die Pfade und optionen müssen natürlich analog zum Obigen angepasst werden.
Anschliessend fürt man das Ganze aus, und hofft, dass alles klappt:
-su-2.05b# ./make.sh loading cache ./config.cache checking host system type... i386-unknown-freebsd4.9 .... Generating files updating cache ./config.cache creating ./config.status creating php4.spec creating main/build-defs.h creating scripts/phpize creating scripts/php-config creating sapi/cli/php.1 creating main/php_config.h main/php_config.h is unchanged creating main/internal_functions.c creating main/internal_functions_cli.c +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ | *** NOTE *** | | The default for register_globals is now OFF! | | | | If your application relies on register_globals being ON, you | | should explicitly set it to on in your php.ini file. | | Note that you are strongly encouraged to read | | http://www.php.net/manual/en/security.globals.php | | about the implications of having register_globals set to on, and | | avoid using it if possible. | +--------------------------------------------------------------------+ Thank you for using PHP.
tja, dann heisst es nur noch:
-su-2.05b# make Build complete. (It is safe to ignore warnings about tempnam and tmpnam).
und anschliessend:
-su-2.05b# make install Installing PHP SAPI module: apache [activating module `php4' in /usr/local/psa/apache/conf/httpd.conf] cp libs/libphp4.so /usr/local/psa/apache/libexec/libphp4.so chmod 755 /usr/local/psa/apache/libexec/libphp4.so cp /usr/local/psa/apache/conf/httpd.conf /usr/local/psa/apache/conf/httpd.conf.bak cp /usr/local/psa/apache/conf/httpd.conf.new /usr/local/psa/apache/conf/httpd.conf rm /usr/local/psa/apache/conf/httpd.conf.new Installing PHP CLI binary: /usr/local/psa/apache/bin/ Installing PHP CLI man page: /usr/local/psa/apache/man/man1/ Installing PEAR environment: /usr/local/psa/apache/lib/php/ [PEAR] Archive_Tar - already installed: 1.1 [PEAR] Console_Getopt - already installed: 1.2 [PEAR] PEAR - already installed: 1.3.5 Wrote PEAR system config file at: /usr/local/psa/apache/etc/pear.conf You may want to add: /usr/local/psa/apache/lib/php to your php.ini include_path [PEAR] HTML_Template_IT- already installed: 1.1 [PEAR] Net_UserAgent_Detect- already installed: 2.0.1 [PEAR] XML_RPC - already installed: 1.2.2 Installing build environment: /usr/local/psa/apache/lib/php/build/ Installing header files: /usr/local/psa/apache/include/php/ Installing helper programs: /usr/local/psa/apache/bin/ program: phpize program: php-config program: phpextdist
Anschliessend starten wir apache neu und vergelichen den output von phpinfo()
Falls irgendwelche PHP-Module fehlen, können diese natürlich separat hinzugefügt (und im PHP.ini aktiviert) werden.
Plesk & PEAR
Mit Plesk wird nebst einigen anderen Sachen auch PHP mit PEAR installiert. Leider ist PEAR per default nicht erreichbar wegen der open_basedir-Restriction. Hier ein kleiner Tipp wie man das für einzelne Domains wieder ermöglichen kann.
Im File /etc/php.ini folgenden Eintrag von
include_path = ".:"
auf
include_path = ".:/usr/share/pear"
anpassen.
Im Verzeichnis /home/httpd/vhost/<DOMAIN>/conf/ erstellt man die Datei vhost.conf mit folgendem Inhalt:
<Directory /home/httpd/vhosts/<DOMAIN>/httpdocs>
<IfModule sapi_apache2.c>
php_admin_value open_basedir "/home/httpd/vhosts/<DOMAIN>/httpdocs:/usr/share/pear:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_value open_basedir "/home/httpd/vhosts/<DOMAIN>/httpdocs:/usr/share/pear:/tmp"
</IfModule>
</Directory>
UPDATE: bei neueren Plesk-Installationen (>7.5.x) ist vhosts-Verzeichnis nach "/var/www/vhosts/" gewandert und ab Plesk 8.0 benötigt man zusätzlich den php5-Teil.
Danach auf der Shell folgende Kommandos absetzen:
-su-2.05b# /usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=<DOMAIN> -su-2.05b# service httpd reload
Login gesperrt?
Plesk hat freundlicherweise (aus Sicherheitsgründen ;) die Angewohnheit nach drei falschen Eingaben des Passworts eines Accounts den Account zu sperren für einige Stunden. Das gilt auch für den Admin-Account. Wenn man früher wieder einloggen möchte muss man folgendes machen:
-su-2.05b# mysql --user=admin --password=<PLESKADMINPASSWORT> psa mysql> delete from lockout; mysql> quit
Datenbankpasswort der Kunden
Ein Kunde weiss nicht mehr welches Passwort er gesetzt hat für eine Datenbank? Folgende MySQL-Kommandos helfen dem Administrator:
-su-2.05b# mysql --user=admin --password=<PLESKADMINPASSWORT>
mysql> SELECT domains.name AS domainname,
data_bases.name AS db_name,
db_users.login AS db_login,
accounts.password AS db_password
FROM domains
LEFT JOIN data_bases ON domains.id = data_bases.dom_id
LEFT JOIN db_users ON db_users.db_id = data_bases.id
LEFT JOIN accounts ON accounts.id = db_users.account_id
WHERE domains.name='<DOMAINNAME>';
mysql> quit
Plesk und Coldfusion...
Coldfusion funktioniert gar nicht!
Plesk hat bekannterweise den Bug (bis und mit 7.5.3), dass der falsche Pfad zum jrunserver.store-File im http.include angegeben wird:
. . <IfModule mod_jrun20.c> . . JRunConfig Serverstore /opt/coldfusionmx//runtime/lib/wsconfig/psa/jrunserver.store . . </IfModule> . .
Wenn man den Pfad mal sucht findet man im wsconfig-Verzeichnis kein psa-Directory. Es findet sich aber ein anderes Verzeichnis mit jrunserver.store-File drin. Ein simpler Link auf dieses Verzeichnis löst schon die meisten Probleme... :)
Coldfusion und CFMAIL
Es scheint, als ob Coldfusion bei der Installation nicht alles korrekt aufsetzt und damit verunmöglicht Mails zu verschicken mit dem CFMAIL-Tag. Folgende Schritte musste ich unternehmen damit es sauber funktioniert:
1. Folgende Zeile muss ins File /etc/mailcap
text/html;; x-java-content-handler=com.sun.mail.handlers.text_html
2. Die Datei /usr/share/java/activation.jar muss ins selbe Verzeichnis wie die mail.jar-Datei im Coldfusion-Rootdirectory.
3. Die Mailspool-Directorys müssen erstellt werden:
-su-2.05b# cd /opt/coldfusionmx -su-2.05b# mkdir -p Mail/Spool -su-2.05b# mkdir -p Mail/Undelivr -su-2.05b# chmod -R 777 Mail/
suexec-Probleme?
Immer als erste prüfen ob die Berechtigungen des suexec-Binaries korrekt sind:
[root@shared httpdocs]# ls -la /usr/sbin/suexec -r-sr-xr-x 1 root apache 46009 Sep 26 16:14 /usr/sbin/suexec [root@shared httpdocs]#