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.confund LoadModulefügen Sie am Ende der Befehlsliste Folgendes hinzu:
LoadModule perl_module modules/mod_perl.so
Stellen DirectorySie 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 DirectoryAbschnitt bearbeiten und dieser bereits enthält Options None, kommentieren Sie diese Zeile oder löschen Sie sie.
Wenn Sie mehrere /etc/httpd/conf/httpd.confHostverzeichnisse ausführen, müssen Sie den ScriptAliasBefehl 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.cgiFolgendes:
#!/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.cgiSie in einem Webbrowser , und Sie werden sehen perl works.
Stellen Sie sicher, dass test.cgiSie die soeben erstellte Testdatei löschen .