[LINUX] Installez Apache 2.4 sur Ubuntu 19.10 Eoan Ermine et exécutez CGI

Aperçu

--Installez le package apache2 sur Ubuntu

Installer Apache 2

Installez le package apache2.

$ sudo apt install apache2

Vérifiez la 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"

Vérifiez qu'il fonctionne en y accédant avec curl etc.

$ 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

Activer mod_cgid

Activez le module cgid avec a2enmod cgi ou 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

Sur certains systèmes d'exploitation Unix, forger des processus à partir d'un serveur multithread peut être une opération très coûteuse. La raison en est que le nouveau processus réplique tous les threads du processus parent. Pour éviter ce coût à chaque démarrage de CGI, mod_cgid exécute un démon externe pour forger les processus enfants afin d'exécuter des scripts CGI. Le serveur principal utilise des sockets de domaine Unix pour communiquer avec ce démon.

Ce module est toujours utilisé à la place de mod_cgi lorsque MPM multithread est choisi au moment de la compilation. Au niveau de l'utilisateur, la configuration et le comportement de ce module sont exactement les mêmes que mod_cgi. La seule exception est l'ajout de la directive ScriptSock, qui spécifie le nom du socket pour la communication avec le démon CGI.

Installer le script CGI

Créez un répertoire / var / www / hello.

$ sudo mkdir /var/www/hello

Accordez des autorisations aux utilisateurs qui modifient les fichiers de script CGI.

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

Placez le fichier index.cgi.

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

Le contenu de index.cgi. Cette fois, c'est CGI par script shell.

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

Accordez l'autorisation d'exécution à index.cgi.

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

Configurer un fichier de configuration

Créez un fichier appelé hello.conf en copiant le fichier 000-default.conf situé dans le répertoire / etc / apache2 / sites-available.

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

Modifiez le contenu du fichier hello.conf.

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

Remplacez le fichier hello.conf par le contenu suivant.

hello.conf


<VirtualHost *:80>

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

  #Paramètres pour exécuter CGI
  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>

Activez hello.conf et désactivez 000-default.conf

Actuellement, 000 par défaut est activé.

$ ls -l /etc/apache2/sites-enabled/ | grep conf
lrwxrwxrwx 1 racine racine 35 21 janvier 19:28 000-default.conf -> ../sites-available/000-default.conf

Activez hello.conf avec la commande a2ensite.

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

Désactivez 000-default.conf avec la commande a2dissite.

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

Vous pouvez voir que hello.conf est activé.

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

Redémarrez Apache pour que les paramètres prennent effet

$ sudo systemctl restart apache2

Vous pouvez vérifier que CGI fonctionne avec la commande curl.

$ 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>

Matériel de référence

Recommended Posts

Installez Apache 2.4 sur Ubuntu 19.10 Eoan Ermine et exécutez CGI
Installez Apache Tomcat 9 sur Ubuntu 19.10 Eoan Ermine Hello World
Installez et exécutez Dropbox sur Ubuntu 20.04
Proxy inverse avec Apache 2.4 sur Ubuntu 19.10 Eoan Ermine
Installez Mecab et mecab-python3 sur Ubuntu 14.04
Installez OpenCV et Chainer sur Ubuntu
Installez CUDA 8.0 et Chainer sur Ubuntu 16.04
Installez le fabric sur Ubuntu et essayez
Installez Puppet Master and Client sur Ubuntu 16.04
Installez pyenv et Python 3.6.8 sur Ubuntu 18.04 LTS
Installez et exécutez Python3.5 + NumPy + SciPy sur Windows 10
Comment mettre à jour la sécurité sur Ubuntu 19.10 Eoan Ermine
Installez MongoDB sur Ubuntu 16.04 et utilisez python
Installez TensorFlow sur Ubuntu
Installez PySide2 sur Ubuntu
Installez JModelica sur Ubuntu
Installez Python 3.3 sur Ubuntu 12.04
Installez Theano sur Ubuntu 12.04
Installez angr sur Ubuntu 18.04
Installez pip / pip3 sur Ubuntu
Exécutez l'application flask sur Cloud 9 et Apache Httpd
Installez Docker sur Arch Linux et exécutez-le à distance
Exécutez Jupyter sur Ubuntu sous Windows
Installez OpenCV sur Ubuntu + python
wsl Installer PostgreSQL sur Ubuntu 18.04
Exécutez le CGI de Python sur CORESERVER
[ROS] Installer ROS (mélodique) sur Ubuntu (18.04)
Installez Caffe sur Ubuntu 14.04 (GPU)
Installer Docker sur WSL Ubuntu 18.04
Environnement local japonais / japonais d'Ubuntu 19.10 et paramètres de fuseau horaire d'Eoan Ermine
Installer python3 et autour de la bibliothèque de calcul scientifique sur Ubuntu (virtualenv + pip)
Installez CUDA10.1 + cuDNN7.6.5 + tensorflow-2.3.0 sur Ubuntu 18.04
Installez Caffe sur Ubuntu 14.04 (mode CPU)
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Installez Python 3.8 sur Ubuntu 20.04 (norme du système d'exploitation)
Installez Ubuntu 18.04 sur le modèle de la barre tactile MacBook Pro et connectez-vous au WIFI
Construisez et installez OpenCV sur Windows
Exécutez XGBoost sur Bash sur Ubuntu sous Windows
Installez Python 3.9 sur Ubuntu 20.04 (norme du système d'exploitation?)
Installez confluent-kafka pour Python sur Ubuntu
Installez Python 2.7 sur Ubuntu 20.04 (norme du système d'exploitation?)
Exécutez Yocto sur Ubuntu en utilisant QEMU.
Etude ROS # 1 Installation de ros-noetic sur Ubuntu 20.04
Installez easy_install et pip sur Windows
Jusqu'à ce que matplotlib soit installé et exécuté
Jusqu'à ce que vous installiez Apache et Tomcat sur Linux (CentOS) et déployez des applications Java
EC2 Comment exécuter Google Chrome sans tête sur Ubuntu et prendre une capture d'écran
Installez le module ROS et ROS pour Roomba sur Raspberry Pi 3 et essayez de l'exécuter
Installez Python3 et Django sur Amazon Linux (EC2) et exécutez le serveur Web
Créer un environnement Python 3 et OpenCV sur Ubuntu 18.04
Environnement virtuel Python et packages sur Ubuntu
Étapes pour installer l'environnement Python sur Ubuntu
Installer et lancer k3s sur Manjaro Linux
Installer et configurer le serveur TigerVNC sous Linux
Exécutez bootgen sur Debian GNU / Linux, Ubuntu
Installez Pleasant sur Ubuntu 20.04 (version .NetCore3.1 / PostgreSQL)
Installez ubuntu sur un ordinateur portable UEFI Ultra 32 bits
Installez Caffe exécutant 3D-CNN sur un Ubuntu 14.04 propre