GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren und konfigurieren Sie den Apache-Webserver unter Ubuntu 13.10

Installieren Sie den Apache-Webserver

Vor einiger Zeit habe ich mein Ubuntu auf 13.10 aktualisiert und dann wurde die Apache-PHP-Installation durcheinander gebracht. Also musste ich es schnell neu installieren, um weiter an meinen PHP-Projekten zu arbeiten.

Apache ist in den Ubuntu-Repositorys vorhanden und kann daher ohne großen Aufwand installiert werden. Hier ist der Schnellbefehl, den Sie brauchen, um auf das Terminal zu feuern.

$ sudo apt-get install apache2

Apache konfiguriert sich standardmäßig schnell selbst, sodass Sie es vom Browser aus mit der Localhost-URL öffnen können

http://localhost/

Apache starten/stoppen

Verwenden Sie die folgenden Befehle, um den Apache-Webserver von der Befehlszeile aus zu starten oder zu stoppen.

# Start web server
$ sudo service apache2 start
# Stop the web server
$ sudo service apache2 stop
# Restart the web server
$ sudo service apache2 restart
# Reload configuration without restarting
$ sudo service apache2 reload

Das standardmäßige Web-Root-Verzeichnis ist /var/www. Alle Dateien, die in diesem Verzeichnis abgelegt werden, sind also über die localhost-URL zugänglich. Später werden wir prüfen, wie das standardmäßige Web-Root-Verzeichnis geändert wird

Um zu überprüfen, welche Version von Apache installiert ist, verwenden Sie den Befehl apache2 mit der Option v/

$ apache2 -v
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56

Konfigurationsdateien suchen

Um weitere Informationen darüber zu erhalten, wie genau Apache auf Ihrem System konfiguriert ist, verwenden Sie den Befehl apache2ctl.

$ apache2ctl -V
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56
Server's Module Magic Number: 20120211:23
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    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"
.....

Es gibt den Namen der Konfigurationsdatei, den verwendeten Server mpm und viele andere Details an. Diese sind nützlich, wenn Sie Apache weiter konfigurieren.

Die Hauptkonfigurationsdatei befindet sich unter /etc/apache2/apache2.conf
Stellen Sie dem HTTPD_ROOT einfach SERVER_CONFIG_FILE voran, um den tatsächlichen Speicherort der Konfigurationsdatei zu erhalten.

Oder es gibt eine andere Option S, die auch verschiedene Konfigurationsdetails über Apache meldet

$ apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

All diese Informationen sind beim Einrichten von Apache sehr nützlich. Spart Zeit, die sonst mit Raten verbracht würde.

Es gibt viele Konfigurationsdateien, die mit Apache verbunden sind. Die Hauptkonfigurationsdatei ist, wie oben erwähnt, "apache2.conf". Diese Konfigurationsdatei enthält Anweisungen zum Laden weiterer Konfigurationsdateien. Hier ist die Zeile, die es tut.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

Fehlermeldung beheben

Apache gibt standardmäßig die folgende Fehlermeldung aus

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Um dies zu beheben, setzen Sie die Variable ServerName in der Apache-Konfigurationsdatei

auf Ihren Hostnamen oder vollständig qualifizierten Domänennamen
$ sudo nano /etc/apache2/apache2.conf

Fügen Sie die folgende Zeile am Ende hinzu

ServerName yourhostname

Apache-Konfiguration neu laden

$ sudo service apache2 reload

Web-Root-Verzeichnis ändern

Um das Web-Root-Verzeichnis zu ändern, müssen wir die Einstellung in den Konfigurationsdateien „sites-enabled“ ändern. Als Standardverfahren wird für jeden virtuellen Host eine separate Konfigurationsdatei im Verzeichnis „sites-enabled“ erstellt.

Ein virtueller Host ist eine Domäne. Sie können also mehrere Domänen von Apache bedienen lassen. In diesem Beispiel verwenden wir jedoch nur die Standardkonfigurationsdatei.

Es sollte eine Datei namens 000-default.conf im Verzeichnis /etc/apache2/sites-enabled geben. Wenn es nicht dort ist, kopieren Sie es aus /etc/apache2/sites-available. Die Datei sieht zunächst so aus.

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...
</VirtualHost>

Ändern Sie den DocumentRoot-Pfad in den neuen Webstamm, den Sie verwenden möchten. Speichern Sie die Datei und starten Sie Apache neu.

$ sudo service apache2 restart

Versuchen Sie nun, auf localhost zuzugreifen. Wenn es nicht funktioniert, überprüfen Sie das Fehlerprotokoll unter

$ cat /var/log/apache2/error.log

Ab Apache 2.4.3 gibt es eine Sicherheitsfunktion, die verhindert, dass Apache auf andere Verzeichnisse zugreift. Und dann würde die Localhost-URL die Fehlermeldung "Forbidden" anzeigen und das Fehlerprotokoll würde eine Nachricht wie diese enthalten

[Sun Nov 03 11:25:24.521491 2013] [authz_core:error] [pid 6950] [client 127.0.0.1:41078] AH01630: client denied by server configuration: /var/www/phpinfo.php

Der Fehler bedeutet, dass Apache aufgrund einer Konfiguration nicht auf das Web-Root-Verzeichnis zugreifen kann. Um dies zu beheben, fügen Sie Folgendes zur vhost-Konfiguration hinzu

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
The "Require" directive fixes the problem. Newer version of Apache (2.3+) require the "Require" directive to allow access.

Die endgültige 000-default.conf-Datei sollte so aussehen

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www2

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...

         # New directive needed in Apache 2.4.3: 
          <Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
</VirtualHost>

Starten Sie jetzt den Apache erneut und das neue Web-Root-Verzeichnis sollte endlich funktionieren.

Weitere Vhosts oder Domains hinzufügen

Um weitere virtuelle Hosts hinzuzufügen, erstellen Sie einfach weitere Konfigurationsdateien wie 000-default.conf und nennen Sie sie anders als mit einer conf-Erweiterung. Legen Sie in jeder Datei einen eindeutigen ServerNamen fest und geben Sie jedem Host ein separates Web-Root-Verzeichnis.

Erstellen Sie alternativ eine Konfigurationsdatei im Verzeichnis „sites-available“ und verwenden Sie den Befehl „a2ensite“, um die Site zu aktivieren. Es erstellt die erforderlichen symbolischen Links im Verzeichnis "sites-enabled".

Erstellen Sie also zuerst eine Konfigurationsdatei, indem Sie die Standardkonfigurationsdatei kopieren.

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

Bearbeiten Sie die Konfigurationsdatei nach Bedarf. Das Wichtigste, was geändert werden muss, ist der Dokumentenstamm für die neue Site.
Aktivieren Sie ihn dann mit dem Befehl a2ensite

$ sudo a2ensite mysite

Apache neu starten. Und die neue Seite sollte gut funktionieren.

Htaccess-Datei aktivieren

Die htaccess-Datei ermöglicht es, verschiedene Apache-Konfigurationsparameter pro Verzeichnis zur Laufzeit zu ändern. Standardmäßig ist Apache nicht für die Verwendung der htaccess-Datei konfiguriert. Fügen Sie dazu einfach die folgende Zeile in den oben gezeigten Verzeichnisabschnitt ein.

AllowOverride FileInfo

Das Obige weist Apache an, mit dem Lesen von htaccess-Dateien zu beginnen und die darin geschriebenen Konfigurationsanweisungen zu parsen.

Die endgültige Konfiguration könnte so aussehen -

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   AllowOverride FileInfo
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>

Nach der Installation von Apache möchten Sie möglicherweise andere Dinge wie php, mysql, phpmyadmin installieren, je nachdem, was Sie alles brauchen. Also los und viel Spaß!!


Ubuntu
  1. So installieren und konfigurieren Sie einen NFS-Server unter Ubuntu 20.04

  2. So installieren und konfigurieren Sie VNC unter Ubuntu 20.04

  3. So installieren und konfigurieren Sie VNC unter Ubuntu 18.04

  4. So installieren und konfigurieren Sie den DHCP-Server unter Ubuntu 20.04

  5. So installieren und konfigurieren Sie den Redis-Server in Ubuntu

So installieren und konfigurieren Sie LAMP Server unter Ubuntu

So installieren und konfigurieren Sie den OpenLDAP-Server unter Ubuntu 16.04

So installieren und konfigurieren Sie VNC auf Ubuntu Server 20.04

So installieren Sie den Apache-Webserver unter Ubuntu 18.04

So installieren Sie den Apache-Webserver unter Ubuntu 20.04

So installieren und konfigurieren Sie einen LAMP-Webserver unter Ubuntu 18.04