Voraussetzungen
- Ein Vultr-Server, auf dem Arch Linux auf dem neuesten Stand ist (siehe diesen Artikel ).
- Ein laufender Webserver, entweder Apache oder Nginx
- Sudo-Zugang:
- Befehlen, die als root ausgeführt werden müssen, wird ein Präfix vorangestellt
#
. Die empfohlene Methode zum Ausführen von Befehlen als Root besteht darin, jedem von ihnen als regulärer Benutzer ein Präfix voranzustellensudo
- Lassen Sie einen Texteditor installieren und machen Sie sich mit ihm vertraut, z. B. vi, vim, nano, emacs oder einem ähnlichen Editor
Installieren Sie Perl 5.28 auf Ihrem Webserver
Perl ist Teil der Arch-Basisgruppe, daher wurde es zusammen mit dem Rest von Arch installiert.
Für Apache
Installieren Sie das AUR-Paket (Arch User Repository) mod_perl
. Siehe Erstellen von Paketen unter Arch Linux (einschließlich AUR) .
Aktivieren Sie das Apache Perl-Modul durch Bearbeiten /etc/httpd/conf/httpd.conf
und LoadModule
fügen Sie am Ende der Befehlsliste Folgendes hinzu:
LoadModule perl_module modules/mod_perl.so
Stellen Directory
Sie sicher, dass jeder Abschnitt, in dem Perl-Skripte ausgeführt werden sollen, die folgenden Optionen enthält.
<Directory "/srv/http/cgi-bin">
AllowOverride None
Require all granted
AddHandler perl-script .pl
AddHandler perl-script .cgi
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
</Directory>
Beachten Sie, wenn Sie einen vorhandenen Directory
Abschnitt bearbeiten und dieser bereits enthält Options None
, kommentieren Sie diese Zeile oder löschen Sie sie.
Wenn Sie mehrere /etc/httpd/conf/httpd.conf
Hostverzeichnisse ausführen, müssen Sie den ScriptAlias
Befehl auch wie gezeigt bearbeiten und auskommentieren. Andernfalls werden alle Webanforderungen "/ cgi-bin /" /srv/http/cgi-bin/
unabhängig davon ausgeführt, um welchen Host es sich handelt:
<IfModule alias_module>
...
#ScriptAlias /cgi-bin/ "/srv/http/cgi-bin/"
</IfModule>
Starten Sie Apache neu:
# systemctl restart httpd
Erstellen Sie das entsprechende Verzeichnis:
# mkdir /srv/http/cgi-bin
Für Nginx
Installieren Sie FCGI Wrap:
# pacman -S fcgiwrap
Starten Sie FCGI Wrap und starten Sie es nach jedem Start:
# systemctl enable --now fcgiwrap.socket
Erlauben Sie Nginx, FCGI Wrap durch Bearbeiten zu verwenden /etc/nginx/nginx.conf
, und fügen Sie zu jedem Serverblock, den Sie Perl verwenden möchten, Folgendes hinzu: Wenn Sie virtuelle Hosts verwenden, bearbeiten Sie alternativ die Konfigurationsdatei jedes Hosts:
location ~ /cgi-bin/.*\.(cgi|pl)$ {
root /usr/share/nginx/html/;
fastcgi_pass unix:/run/fcgiwrap.sock;
include fastcgi.conf;
}
Erstellen Sie das entsprechende Verzeichnis:
# mkdir /usr/share/nginx/html/cgi-bin/
Test Perl
Erstellen Sie im entsprechenden Verzeichnis test.cgi
Folgendes:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "perl works\n";
Machen Sie es ausführbar (erforderlich für Perl-Skripte):
# chmod +x test.cgi
Besuchen http://YOUR-SERVER-WEB-ADDRESS-OR-IP/test.cgi
Sie in einem Webbrowser , und Sie werden sehen perl works
.
Stellen Sie sicher, dass test.cgi
Sie die soeben erstellte Testdatei löschen .