Nach dem BauApache2-HTTP-Serveraus der Quelle (2.4.23) Mir fehlen die Befehle a2dissite
und a2ensite
.
Konfigurieren war:
./configure --with-included-apr --prefix=/usr/local/apache2
Wenn ich laufe:
whereis apache2
Ich bekomme:
apache2: /etc/apache2 /usr/local/apache2
Es wird aber which apache2
nichts angezeigt. Vielleicht muss eine symbolische Verknüpfung zu /usr/bin
? http://localhost
erstellt werden, das funktioniert einwandfrei.
Versionsinfo für Quelle:
/usr/local/apache2/bin/apachectl -v Server version: Apache/2.4.23 (Unix) Server built: Nov 1 2016 22:52:26
Linux-Version:
linux mint 17
3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64
Antwort1
Ich vermute, Sie haben aus den Quellen der Apache Software Foundation erstellt. Die a2en...
Skripte (und die unterstützende Konfiguration) sind Debian-spezifisch; Sie finden den Quellcode in der entsprechendenDebian-Repository.
Um den Server aus dem Quellcode zu erstellen httpd
und weiterhin verwenden zu können a2ensite
usw., verwenden Sie am besten das Debian-Quellpaket:
sudo apt-get install devscripts dpkg-dev build-essential
sudo apt-get build-dep apache2
dget http://httpredir.debian.org/debian/pool/main/a/apache2/apache2_2.4.23-5.dsc
cd apache2-2.4.23
dpkg-buildpackage -us -uc
Die ersten beiden Befehle installieren die zum Erstellen erforderlichen Pakete apache2
. Anschließend dget
wird das Quellpaket heruntergeladen, extrahiert und dpkg-buildpackage
erstellt. Dadurch wird eine Reihe von .deb
Paketen erstellt, die Sie wie gewohnt manuell installieren können dpkg
.
Wenn die build-dep
Zeile nicht funktioniert, gilt Folgendes als gleichwertig apache2
:
sudo apt-get install debhelper lsb-release libaprutil1-dev libapr1-dev libpcre3-dev zlib1g-dev libnghttp2-dev libssl-dev perl liblua5.2-dev libxml2-dev autotools-dev gawk dh-systemd
Antwort2
Erstellen Sie keine symbolischen Links zu /usr/bin
. Das ist eine äußerst schlechte Idee und Sie sollten es nicht tun.
Warum? Weil der Großteil von /usr
, einschließlich /usr/bin
, für den Paketmanager reserviert ist. Alles, was kein Paketmanager ist, einschließlich Ihnen, sollte die Dinge darin nicht berühren.
/usr/local
existiert, um einen Ort zum Installieren lokal kompilierter Software bereitzustellen. Normalerweise würden Sie /usr/local
als Präfix anstelle von angeben /usr/local/apache2
. (Ein Präfix ist übrigens das, was dem Bin-Pfad, dem Bibliothekspfad usw. vorangestellt wird. So würden beispielsweise die Befehlszeilentools von Apache in gehen $PREFIX/bin
, seine Bibliotheken in $PREFIX/lib/apache2
usw.)
Die Lösung für Ihr Problem besteht darin, die Liste der Pfade zu erweitern, die /usr/local/apache2/bin
Ihre Shell zum Suchen von Binärdateien verwendet. Dies wird normalerweise als oder einfach als „Ihr Pfad“ bezeichnet $PATH
und kann mit einem Befehl wie diesem geändert werden:
export PATH="/usr/local/apache2/bin:$PATH"
Sie können es in eine der Startdateien Ihrer Shell einfügen, um es dauerhaft zu machen.
Trotzdem vermute ich, dass Sie a2ensite
oder immer noch nicht finden a2dissite
werden. Wenn ich mich richtig erinnere, wurden beide Befehle von Debian-Entwicklern hinzugefügt und dann von dort an Mint übernommen. Daher sind sie nicht im Upstream-Apache-Quellcode enthalten. Stephen Kittsausgezeichnete Antworterklärt Ihnen, wie Sie diese Befehle erhalten.