[LINUX] Installieren Sie Apache 2.4 unter Ubuntu 19.10 Eoan Ermine und führen Sie CGI aus

Überblick

--Installieren Sie das Apache2-Paket unter Ubuntu

Apache 2 installieren

Installieren Sie das Apache2-Paket.

$ sudo apt install apache2

Überprüfe die Version.

$ /usr/sbin/apachectl -V
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2019-08-14T14:36:32
Server's Module Magic Number: 20120211:88
Server loaded:  APR 1.6.5, APR-UTIL 1.6.1
Compiled using: APR 1.6.5, APR-UTIL 1.6.1
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

Überprüfen Sie, ob es ausgeführt wird, indem Sie mit Curl usw. darauf zugreifen.

$ curl -I http://localhost/
HTTP/1.1 200 OK
Date: Tue, 21 Jan 2020 10:47:37 GMT
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: Tue, 21 Jan 2020 10:28:46 GMT
ETag: "2aa6-59ca3df7ac2c0"
Accept-Ranges: bytes
Content-Length: 10918
Vary: Accept-Encoding
Content-Type: text/html

Aktivieren Sie mod_cgid

Aktivieren Sie das cgid-Modul mit a2enmod cgi oder a2enmod cgid.

$ sudo a2enmod cgi
Your MPM seems to be threaded. Selecting cgid instead of cgi.
Enabling module cgid.
To activate the new configuration, you need to run:
  systemctl restart apache2

mod \ _cgid \ -Apache HTTP Server Version 2 \ .4

Unter einigen Unix-Betriebssystemen kann das Verzweigen eines Prozesses von einem Multithread-Server sehr kostspielig sein. Der Grund ist, dass der neue Prozess alle Threads des übergeordneten Prozesses repliziert. Um diese Kosten bei jedem CGI-Start zu vermeiden, führt mod_cgid einen externen Daemon aus, um untergeordnete Prozesse zum Ausführen von CGI-Skripten zu verzweigen. Der Primärserver verwendet Unix-Domain-Sockets, um mit diesem Daemon zu kommunizieren.

Dieses Modul wird immer anstelle von mod_cgi verwendet, wenn zur Kompilierungszeit Multithread-MPM ausgewählt wird. Auf Benutzerebene entspricht das Setup und Verhalten dieses Moduls genau dem von mod_cgi. Die einzige Ausnahme ist das Hinzufügen der ScriptSock-Direktive, die den Namen des Sockets für die Kommunikation mit dem CGI-Daemon angibt.

Installieren Sie das CGI-Skript

Erstellen Sie ein Verzeichnis / var / www / hello.

$ sudo mkdir /var/www/hello

Geben Sie Benutzern, die CGI-Skriptdateien bearbeiten, Berechtigungen.

$ sudo chown hoge:hoge /var/www/hello

Platzieren Sie die Datei index.cgi.

$ vim /var/www/hello/index.cgi

Der Inhalt von index.cgi. Diesmal ist es CGI per Shell-Skript.

#!/usr/bin/sh
echo 'Status: 200 OK'
echo 'Content-Type: text/html;charset=utf-8'
echo ''
echo '<html><body>Hello, world.</body></html>'

Erteilen Sie index.cgi die Ausführungsberechtigung.

$ chmod 755 /var/www/hello/index.cgi

Richten Sie eine Konfigurationsdatei ein

Erstellen Sie eine Datei mit dem Namen hello.conf, indem Sie die Datei 000-default.conf kopieren, die sich im Verzeichnis / etc / apache2 / sites-available befindet.

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/hello.conf

Ändern Sie den Inhalt der Datei hello.conf.

$ sudo vim /etc/apache2/sites-available/hello.conf

hello.conf


<VirtualHost *:80>

  # /etc/apache2/sites-available/000-default.
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  #
  ScriptAlias /hello/ /var/www/hello/
  <Directory "/var/www/hello/">
    Options ExecCGI
    AddHandler cgi-script .cgi
    DirectoryIndex index.cgi
    AllowOverride None
    Require all granted
  </Directory>

</VirtualHost>

$ ls -l /etc/apache2/sites-enabled/ | grep conf
:28 000-default.conf -> ../sites-available/000-default.conf

Inhalt aus conf-Einstellungen kopiert, um CGI auszuführen. Hallo.conf aktivieren und 000-default.conf deaktivieren. 000-default ist derzeit aktiviert. lrwxrwxrwx 1 root root 35 21. Januar 19 Aktivieren Sie hello.conf mit dem Befehl a2ensite.

$ sudo a2ensite hello
Enabling site hello.
To activate the new configuration, you need to run:
  systemctl reload apache2

Deaktivieren Sie 000-default.conf mit dem Befehl a2dissite.

$ sudo a2dissite 000-default
Site 000-default disabled.
To activate the new configuration, you need to run:
  systemctl reload apache2

Sie können sehen, dass hello.conf aktiviert ist.

$ ls -l /etc/apache2/sites-enabled/ | grep conf
lrwxrwxrwx 1 root root 29. Januar 21 20:03 hello.conf -> ../sites-available/hello.conf

Starten Sie Apache neu, damit die Einstellungen wirksam werden

$ sudo systemctl restart apache2

Sie können überprüfen, ob CGI mit dem Befehl curl funktioniert.

$ curl -i http://localhost/hello/
HTTP/1.1 200 OK
Date: Tue, 21 Jan 2020 11:09:41 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Length: 40
Content-Type: text/html;charset=utf-8

<html><body>Hello, world.</body></html>

Referenzmaterial

Recommended Posts

Installieren Sie Apache 2.4 unter Ubuntu 19.10 Eoan Ermine und führen Sie CGI aus
Installieren Sie Apache Tomcat 9 unter Ubuntu 19.10 Eoan Ermine Hello World
Installieren Sie Dropbox und führen Sie es unter Ubuntu 20.04 aus
Reverse Proxy mit Apache 2.4 unter Ubuntu 19.10 Eoan Ermine
Installieren Sie Mecab und mecab-python3 unter Ubuntu 14.04
Installieren Sie OpenCV und Chainer unter Ubuntu
Installieren Sie CUDA 8.0 und Chainer unter Ubuntu 16.04
Installieren Sie Fabric unter Ubuntu und versuchen Sie es
Installieren Sie Puppet Master und Client unter Ubuntu 16.04
Installieren Sie pyenv und Python 3.6.8 unter Ubuntu 18.04 LTS
Installieren Sie Python3.5 + NumPy + SciPy und führen Sie es unter Windows 10 aus
So aktualisieren Sie die Sicherheit unter Ubuntu 19.10 Eoan Ermine
Installieren Sie MongoDB unter Ubuntu 16.04 und arbeiten Sie über Python
Installieren Sie TensorFlow unter Ubuntu
Installieren Sie PySide2 unter Ubuntu
Installieren Sie JModelica unter Ubuntu
Installieren Sie Python 3.3 unter Ubuntu 12.04
Installieren Sie Theano unter Ubuntu 12.04
Installiere angr unter Ubuntu 18.04
Installiere pip / pip3 unter Ubuntu
Führen Sie die Kolben-App auf Cloud 9 und Apache Httpd aus
Installieren Sie Docker unter Arch Linux und führen Sie es remote aus
Führen Sie Jupyter unter Ubuntu unter Windows aus
Installieren Sie OpenCV unter Ubuntu + Python
wsl Installiere PostgreSQL unter Ubuntu 18.04
Führen Sie Pythons CGI auf CORESERVER aus
[ROS] Installiere ROS (melodisch) unter Ubuntu (18.04)
Installieren Sie Caffe unter Ubuntu 14.04 (GPU)
Installieren Sie Docker unter WSL Ubuntu 18.04
Ubuntu 19.10 Eoan Ermines japanische / japanische Gebietsschemaumgebung und Zeitzoneneinstellungen
Installieren Sie Python3 und die wissenschaftliche Berechnungsbibliothek unter Ubuntu (virtualenv + pip)
Installieren Sie CUDA10.1 + cuDNN7.6.5 + tensorflow-2.3.0 unter Ubuntu 18.04
Installieren Sie Caffe unter Ubuntu 14.04 (CPU-Modus)
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
Installieren Sie Python 3.8 unter Ubuntu 20.04 (Betriebssystemstandard)
Installieren Sie Ubuntu 18.04 auf dem MacBook Pro Touchbar-Modell und stellen Sie eine Verbindung zu WIFI her
Erstellen und installieren Sie OpenCV unter Windows
Führen Sie XGBoost unter Bash unter Ubuntu unter Windows aus
Installieren Sie Python 3.9 unter Ubuntu 20.04 (Betriebssystemstandard?)
Installieren Sie Confluent-Kafka für Python unter Ubuntu
Installieren Sie Python 2.7 unter Ubuntu 20.04 (Betriebssystemstandard?)
Führen Sie Yocto unter Ubuntu mit QEMU aus.
ROS-Studie Nr. 1 Installation von ros-noetic unter Ubuntu 20.04
Installieren Sie easy_install und pip unter Windows
Bis matplotlib installiert ist und ausgeführt wird
Bis Sie Apache und Tomcat unter Linux (CentOS) installieren und Java-Apps bereitstellen
EC2 So führen Sie Google Chrome ohne Kopf unter Ubuntu aus und machen einen Screenshot
Installieren Sie das ROS- und ROS-Modul für Roomba auf Raspberry Pi 3 und versuchen Sie, es auszuführen
Installieren Sie Python3 und Django unter Amazon Linux (EC2) und führen Sie den Webserver aus
Erstellen Sie Python 3 und OpenCV unter Ubuntu 18.04
Virtuelle Python-Umgebung und Pakete unter Ubuntu
Schritte zum Installieren der Python-Umgebung unter Ubuntu
Installieren und starten Sie k3s unter Manjaro Linux
Installieren und konfigurieren Sie den TigerVNC-Server unter Linux
Führen Sie bootgen unter Debian GNU / Linux, Ubuntu aus
Installieren Sie Pleasant unter Ubuntu 20.04 (.NetCore3.1 / PostgreSQL-Version)
Installieren Sie Ubuntu auf einem 32-Bit-UEFI-Ultra-Notebook
Installieren Sie Caffe mit 3D-CNN auf einem sauberen Ubuntu 14.04