Vor langer Zeit habe ich mir Sakura VPS ausgeliehen, um Apache2 unter CentOS zu erstellen, und eine Website veröffentlicht, aber Ubuntu hat einen anderen "conf" -Dateinamen usw. und es hat ein wenig gedauert, also hinterlasse eine Notiz, bis es funktioniert. tief.
Ubuntu20.04 LTS (auf GCP)
Aktualisieren und installieren Sie das Paket nach dem Herstellen einer Verbindung mit SSH mit dem folgenden Befehl.
python
#Aktualisiertes Paketverwaltungstool
$ sudo apt update
$ sudo apt -y upgrade
#Apache installieren
$ sudo apt install -y apache2
Überprüfen Sie den Startstatus
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
⇒ Da es [aktiv (läuft)] ist, wurde es gestartet.
Um zu überprüfen, ob es nach außen geöffnet ist, öffnen Sie einen geeigneten Browser auf Ihrem lokalen PC, greifen Sie auf "http: // [externe IP der VM-Instanz] /" zu, und der folgende Bildschirm wird angezeigt.
Überprüfen Sie den Speicherort der Apache2-Conf-Datei
$ find / -name 'apache2.conf'
/etc/apache2/apache2.conf
Wenn Sie den Inhalt von apache2.conf
überprüfen, finden Sie die folgende Beschreibung. (Auszug, weil alle Zeilen lang sind)
apache2.conf
#Definition des Dateinamens zum Festlegen der Zugriffsberechtigung
AccessFileName .htaccess
# .htaccess und.Verweigern Sie den Zugriff von Web-Clients auf htpasswd usw.
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
#Lesen Sie eine Datei mit festgelegten Portinformationen
Include ports.conf
#In jedem Ordner`load`Oder`conf`Es ist so eingestellt, dass beim Start alle Dateien gelesen werden
# 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
Versuchen Sie, den Port zu ändern und eine Verbindung herzustellen. Bearbeiten Sie wie folgt in sudo nano / etc / apache2 / ports.conf
.
/etc/apache2/ports.conf
#Zugewiesene Portinformationen
#Listen 80
Listen 20080
#Zugewiesener Port, wenn ein SSL-bezogenes Modul vorhanden ist
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Starten Sie Apache neu.
$ sudo systemctl restart apache2
Natürlich kann ich jetzt nicht darauf zugreifen, selbst wenn ich die URL eingebe. Wenn Sie den Einstellungen der Datei in GCP "tcp: 20080" hinzufügen, können Sie mit "http: // [externe IP der VM-Instanz]: 20080 /" auf denselben Bildschirm zugreifen.
python
#Alle sind symbolische Verbindungen, die Realität ist/etc/apache2/mods-available/Es ist in
$ 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
Werfen wir einen Blick auf den Inhalt von einem.
/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
Sie können es mit dem folgenden Befehl aus "mods-enabled /" entfernen, wodurch verhindert wird, dass das Modul beim Start von Apache geladen wird.
python
$sudo a2dismod [Modulname]
Module ~~~~~~ disabled.
To activate the new configuration, you need to run:
systemctl restart apache2
Dies ist der Befehl, um erneut eine symbolische Verknüpfung zu erstellen.
python
$sudo a2enmod [Modulname]
Enabling module ~~~~~~~~.
To activate the new configuration, you need to run:
systemctl restart apache2
python
#Ebenso alle symbolischen Links. Die Realität ist/etc/apache2/conf-available/Es ist in
$ 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
Es gibt nicht viele Konfigurationsdateien. Schauen wir uns das an.
cat /etc/apache2/conf-enabled/charset.conf
⇒ Zeichencode-bezogene Einstellungen. Alle Standardeinstellungen sind auskommentiert.
cat /etc/apache2/conf-enabled/localized-error-pages.conf
⇒ Fehlercodebezogene Einstellungen. Alle Standardeinstellungen sind auskommentiert.
cat /etc/apache2/conf-enabled/other-vhosts-access-log.conf
⇒ Zugriff auf protokollbezogene Einstellungen.
cat /etc/apache2/conf-enabled/security.conf
⇒ Sicherheitsbezogene Einstellungen für Apache. Dieser Artikel war leicht verständlich organisiert.
https://qiita.com/bezeklik/items/1c4145652661cf5b2271
cat /etc/apache2/conf-enabled/serve-cgi-bin.conf
⇒ CGI-bezogene Einstellungen
python
#Der Standardwert ist nur eine Site. Ebenso ist die Realität/etc/apache2/sites-available/Es ist in
$ ls /etc/apache2/sites-enabled
000-default.conf
$ readlink /etc/apache2/sites-enabled/000-default.conf
../sites-available/000-default.conf
Der Inhalt der Site-Konfigurationsdatei lautet wie folgt.
/etc/apache2/sites-available/000-default.conf
#Nur Zeilen, die nicht auskommentiert sind.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Da DocumentRoot "/ var / www / html" ist, versuchen Sie, index.html
mit dem folgenden Befehl zu bearbeiten.
python
$ sudo nano /var/www/html/index.html
/var/www/html/index.html
#Ändern Sie den Titel-Tag-Teil
<!-- <title>Apache2 Ubuntu Default Page: It works</title> -->
<title>Changed Title</title>
Aktualisieren Sie die URL und öffnen Sie sie erneut, um festzustellen, ob sie geändert wurde.
Es gab einige Stellen, an denen Umgebungsvariablen wie "$ {APACHE_LOG_DIR}" festgelegt wurden, diese sind jedoch in "/ etc / apache2 / envvars" festgelegt.
Kopieren Sie die Standardkonfigurationsdatei und aktivieren Sie den geänderten DocumentRoot.
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-availa
ble/test-site.conf
Festlegen des Inhalts von test-site.conf
(nur DocumentRoot ändern)
/etc/apache2/sites-available/test-site.conf
#Nur Zeilen, die nicht auskommentiert sind.
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html-test/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Erstellt, weil das obige "html-test" -Verzeichnis nicht die Standardeinstellung sein sollte.
python
$ sudo mkdir /var/www/html-test/
python
#Löschen Sie die aktuelle Site-Konfiguration einmal
$ sudo a2dissite 000-default
#Site-Konfiguration erstellt
$ sudo a2ensite test-site
#Starten Sie Apache neu
$ sudo systemctl restart apache2
Da "html-test" keine "index.html" hat, wurde es erstellt, weil es eine große Sache war.
python
$ sudo nano /var/www/html-test/index.html
/var/www/html-test/index.html
<html>
Hello Test-Site!
</html>
Öffnen Sie "http: // [externe IP der VM-Instanz]: 20080 /" erneut. Wenn es sich um den Inhalt der obigen HTML-Datei handelt, ist die Einstellung gültig.
Wie oben erwähnt, wenn Sie "sudo a2ensite 000-default" an der Stelle ausführen, an der sich nur "test-site.conf" in "/ etc / apache2 / sites-enabled /" befindet, wenn Sie von außen auf "000-default" zugreifen. 』Die Einstellung wurde priorisiert.
Wenn sich in / etc / apache2 / sites-enabled /
nichts befindet, scheint es, dass es auf "000-default (zum Zeitpunkt der Installation)" eingestellt ist, aber wo ist die Einstellung hier? Ist unbekannt.