Wie installiert man Apache 2.2 auf einer Ubuntu-Distribution, die es nicht in den Repositories hat?
Bedarf
Dazu muss das Paket build-essentials installiert sein.
~# sudo apt-get install build-essential
Damit Apache die Ausgabe in Browsern komprimieren kann, die dies unterstützen, müssen Sie zlib installieren. Laden Sie die aktuelle Version von der zlip-Homepage herunter (zlib-1.2.11.tar.gz zum Zeitpunkt des Schreibens), extrahieren Sie sie, navigieren Sie zum extrahierten Ordner, erstellen Sie sie und installieren Sie sie.
wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local
make
sudo make install
Installieren Sie Apache 2.2
Laden Sie die aktuelle Version von der Apache-Download-Seite (httpd-2.2.32.tar.gz) herunter , extrahieren Sie sie, navigieren Sie zum extrahierten Ordner, erstellen Sie sie und installieren Sie sie.
wget http://www-eu.apache.org/dist/httpd/httpd-2.2.32.tar.gz
tar -xvf httpd-2.2.32.tar.gz
cd httpd-2.2.32/
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http
make
sudo make install
Starten Sie Apache:
sudo /usr/local/apache2/bin/apachectl start
Überprüfen Sie, ob alles in Ordnung ist
Navigieren Sie in Ihrem Browser zu http: // localhost . Dort sollte die Meldung "It works!" (Es funktioniert!) Angezeigt werden.
Alternativ können Sie dies über das Terminal tun:
wget -qO- http://localhost | grep "It works!"
Welches sollte so etwas im Terminal ausgeben:
<html><body><h1>It works!</h1></body></html>
Erstelle "service" für Apache2
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22
sudo chmod +x /etc/init.d/apache22
Hinweis: Sie können apachectl jetzt mit dem sudo-Dienst apache22 aufrufen .
Lassen Sie Apache beim Booten starten
sudo sed -i '2i #\n### BEGIN INIT INFO\n# Provides: apache2\n# Required-Start: $remote_fs\n# Required-Stop: $remote_fs\n# Default-Start: 2 3 4 5\n# Default-Stop: 0 1 6\n# Description: apache2\n# Short-Description: The Apache webserver\n### END INIT INFO' /etc/init.d/apache22
sudo /usr/sbin/update-rc.d apache22 defaults
Sicherer Apache
sudo service apache22 stop
sudo adduser --system apache
sed -i -e 's/User daemon/User apache/g' /usr/local/apache2/conf/httpd.conf
sed -i -e 's/Group daemon/Group nogroup/g' /usr/local/apache2/conf/httpd.conf
sudo service apache22 start
Überprüfen Sie die neuen Einstellungen
ps -aux | grep httpd
Wenn die Terminalausgabe des letzten Befehls einige Zeilen anzeigt, die mit "apache" beginnen, ist alles in Ordnung.
Konfigurieren Sie Ihre Site (s)
Wenn Sie Ihren Apache nur für eine Site konfigurieren möchten, bearbeiten Sie einfach die httpd.conf
nano /usr/local/apache2/conf/httpd.conf
Die wesentlichen Parameter, die Sie ändern möchten, sind:
ServerName www.example.com:80
DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Wenn Sie mehr als eine Site konfigurieren möchten, besuchen Sie httpd-vhosts.conf
nano /usr/local/apache2/conf/httpd.conf
Sie müssen einen Abschnitt <Directory> mit dem <VirtualHost> hinzufügen, der dem obigen ähnelt, jedoch für das Dokumentstammverzeichnis des VitualHost. Beispielsweise:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
<Directory "/usr/local/apache2/docs/dummy-host.example.com">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>