Il y a longtemps, j'ai emprunté Sakura VPS pour construire Apache2 sur CentOS et publié un site Web, mais Ubuntu a un nom de fichier conf
différent, etc. et cela a pris un peu de temps, alors laissez une note jusqu'à ce que cela fonctionne. Profond.
Ubuntu20.04 LTS (sur GCP)
Après vous être connecté à SSH, mettez à jour et installez le package à partir de la commande suivante.
python
#Outil de gestion des paquets mis à jour
$ sudo apt update
$ sudo apt -y upgrade
#Installer Apache
$ sudo apt install -y apache2
Vérifiez l'état de démarrage
python
$ systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-10-06 01:15:54 UTC; 21s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 17933 (apache2)
Tasks: 55 (limit: 2374)
Memory: 5.6M
CGroup: /system.slice/apache2.service
├─17933 /usr/sbin/apache2 -k start
├─17935 /usr/sbin/apache2 -k start
└─17936 /usr/sbin/apache2 -k start
⇒ Puisqu'il est [actif (en cours)], il a été démarré.
Pour vérifier s'il est ouvert vers l'extérieur, ouvrez un navigateur approprié sur votre PC local, accédez à http: // [IP externe de l'instance de VM] /
, et l'écran suivant s'affiche.
Vérifiez l'emplacement du fichier de configuration Apache2
$ find / -name 'apache2.conf'
/etc/apache2/apache2.conf
Si vous vérifiez le contenu de apache2.conf
, vous trouverez la description suivante. (Toutes les lignes sont longues, donc extrait)
apache2.conf
#Définition du nom de fichier pour définir l'autorité d'accès
AccessFileName .htaccess
# .htaccess et.Refuser l'accès des clients Web à htpasswd, etc.
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
#Lire un fichier avec des informations de port définies
Include ports.conf
#Dans chaque dossier`load`Ou`conf`Il est configuré pour lire tous les fichiers au démarrage
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
Essayez de changer le port et de vous connecter. Modifiez comme suit dans sudo nano / etc / apache2 / ports.conf
.
/etc/apache2/ports.conf
#Informations sur le port attribué
#Listen 80
Listen 20080
#Port attribué lorsqu'il existe un module lié à SSL
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Redémarrez Apache.
$ sudo systemctl restart apache2
De toute évidence, maintenant je ne peux pas y accéder même si j'entre l'URL.
Si vous ajoutez tcp: 20080
aux paramètres du fichier sur GCP, vous pouvez accéder au même écran avec http: // [IP externe de l'instance de VM]: 20080 /
.
python
#Tous sont des liens symboliques, la réalité est/etc/apache2/mods-available/C'est dedans
$ ls /etc/apache2/mods-enabled/
access_compat.load authn_file.load autoindex.load env.load mpm_event.load setenvif.conf
alias.conf authz_core.load deflate.conf filter.load negotiation.conf setenvif.load
alias.load authz_host.load deflate.load mime.conf negotiation.load status.conf
auth_basic.load authz_user.load dir.conf mime.load reqtimeout.conf status.load
authn_core.load autoindex.conf dir.load mpm_event.conf reqtimeout.load
$ readlink /etc/apache2/mods-enabled/dir.conf
../mods-available/dir.conf
Jetons un coup d'œil au contenu d'un.
/etc/apache2/mods-available/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Vous pouvez le supprimer de mods-enabled /
avec la commande suivante, ce qui empêchera le module de se charger au démarrage d'Apache.
python
$sudo a2dismod [nom du module]
Module ~~~~~~ disabled.
To activate the new configuration, you need to run:
systemctl restart apache2
C'est la commande pour créer à nouveau un lien symbolique.
python
$sudo a2enmod [nom du module]
Enabling module ~~~~~~~~.
To activate the new configuration, you need to run:
systemctl restart apache2
python
#De même, tous les liens symboliques. La réalité est/etc/apache2/conf-available/C'est dedans
$ ls /etc/apache2/conf-enabled/
charset.conf localized-error-pages.conf other-vhosts-access-log.conf security.conf serve-cgi-bin.conf
$ readlink /etc/apache2/conf-enabled/charset.conf
../conf-available/charset.conf
Il n'y a pas beaucoup de fichiers de configuration, alors jetons un œil.
cat /etc/apache2/conf-enabled/charset.conf
⇒ Paramètres liés au code de caractère. Tous les paramètres par défaut sont commentés.
cat /etc/apache2/conf-enabled/localized-error-pages.conf
⇒ Paramètres liés au code d'erreur. Tous les paramètres par défaut sont commentés.
cat /etc/apache2/conf-enabled/other-vhosts-access-log.conf
⇒ Accéder aux paramètres liés au journal.
cat /etc/apache2/conf-enabled/security.conf
⇒ Paramètres liés à la sécurité Apache. Cet article a été organisé de manière simple à comprendre.
https://qiita.com/bezeklik/items/1c4145652661cf5b2271
cat /etc/apache2/conf-enabled/serve-cgi-bin.conf
⇒ Paramètres liés à CGI
python
#La valeur par défaut est un seul site. De même, la réalité est/etc/apache2/sites-available/C'est dedans
$ ls /etc/apache2/sites-enabled
000-default.conf
$ readlink /etc/apache2/sites-enabled/000-default.conf
../sites-available/000-default.conf
Le contenu du fichier de configuration du site est le suivant.
/etc/apache2/sites-available/000-default.conf
#Seules les lignes qui ne sont pas commentées.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Puisque DocumentRoot est «/ var / www / html», essayez de modifier «index.html» à partir de la commande suivante.
python
$ sudo nano /var/www/html/index.html
/var/www/html/index.html
#Changer la partie de la balise de titre
<!-- <title>Apache2 Ubuntu Default Page: It works</title> -->
<title>Changed Title</title>
Mettez à jour l'URL et rouvrez-la pour voir qu'elle a changé.
Il y avait des endroits où des variables d'environnement telles que $ {APACHE_LOG_DIR}
étaient définies, mais celles-ci sont définies dans / etc / apache2 / envvars
.
Copiez le fichier de configuration par défaut et activez le DocumentRoot modifié.
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-availa
ble/test-site.conf
Définition du contenu de test-site.conf
(modifier uniquement DocumentRoot)
/etc/apache2/sites-available/test-site.conf
#Seules les lignes qui ne sont pas commentées.
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html-test/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Créé parce que le répertoire "html-test" ci-dessus ne doit pas être le répertoire par défaut.
python
$ sudo mkdir /var/www/html-test/
python
#Supprimer une fois la configuration actuelle du site
$ sudo a2dissite 000-default
#Configuration du site créée
$ sudo a2ensite test-site
#Redémarrez Apache
$ sudo systemctl restart apache2
Puisque «html-test» n'a pas «index.html», il a été créé parce que c'était un gros problème.
python
$ sudo nano /var/www/html-test/index.html
/var/www/html-test/index.html
<html>
Hello Test-Site!
</html>
Rouvrez http: // [IP externe de l'instance de VM]: 20080 /
, et s'il s'agit du contenu du fichier html ci-dessus, le paramètre est valide.
Comme mentionné ci-dessus, si vous exécutez sudo a2ensite 000-default
à l'endroit où il n'y a que" test-site.conf "dans / etc / apache2 / sites-enabled /
, lorsque vous accédez de l'extérieur, "000-default" 』Le réglage a été priorisé.
De plus, quand il n'y a rien dans / etc / apache2 / sites-enabled /
, il semble qu'il soit réglé sur "000-default (au moment de l'installation)", mais où est le paramètre ici? Est inconnu.