In einem früheren Beitrag habe ich mich zu den Möglichkeiten des Einsatzes von Perl- und Python-Scripten bei Shared Hosting angeboten geäußert. An dieser Stelle nun einige Anmerkungen zur Nutzung solcher Scripte auf einem vServer.
Proplay
Auf einem vServer bei proplay.de habe ich einen Account inclusive Subdomain eingerichtet. Die einzelnen Subdomains werden als virtuelle Hosts konfiguriert. Jeder virtueller Host hat eine eigene zusätzliche Konfigurationsdatei. Im konkreten Fall hat diese Datei subdomainname.hauptdomainname.de im Verzeichnis /etc/apache2/sites-available unter anderem den folgenden Inhalt:
<Directory "/var/www/username/docs"> <IfModule mod_perl.c> <Files ~ (\.pl$)> SetHandler perl-script PerlHandler ModPerl::Registry Options ExecCGI allow from all PerlSendHeader On </Files> </IfModule> <IfModule mod_python.c> <Files ~ (\.py$)> SetHandler python-program PythonHandler mod_python.cgihandler </Files> </IfModule> Options Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper /var/www/username/php-fcgi/php-fcgi-starter .php Order allow,deny allow from all </Directory>
Mit dieser Konfigurationsdatei laufen sowohl einfache Python wie auch Perl-Scripte ohne zusätzliche Maßnahmen in der .htaccess. Auch der Rechte-Status der Dateien muss nicht geändert werden.
Netcup
Bei Netcup wird zunächst nur der Download der Python- bzw. Perldatei angeboten. Nach dem Erstellen einer .htaccess-Datei erhalte ich einen
500 Internal Server Error
Die Überprüfung mit
apache2ctl -M
zeigt dann, dass entsprechenden Apache-Module gar nicht geladen sind. Dies wird jetzt nachgeholt mit
apt-get install libapache2-mod-perl2 apt-get install libapache2-mod-python
In die Apache-vHost-Konfigurationsdatei wird eingefügt:
<IfModule mod_perl.c> <Files ~ (\.pl$)> SetHandler perl-script PerlHandler ModPerl::Registry Options ExecCGI allow from all PerlSendHeader On </Files> </IfModule> <IfModule mod_python.c> <Files ~ (\.py$)> SetHandler python-program PythonHandler mod_python.cgihandler </Files> </IfModule>
Damit die Änderungen auch wirksam werden:
service apache2 restart
Jetzt klappt es, auch ohne .htaccess.