`a2dissite` und `a2ensite` können nach dem Erstellen von `apache2` aus dem Quellcode auf Mint17 nicht gefunden werden

`a2dissite` und `a2ensite` können nach dem Erstellen von `apache2` aus dem Quellcode auf Mint17 nicht gefunden werden

Nach dem BauApache2-HTTP-Serveraus der Quelle (2.4.23) Mir fehlen die Befehle a2dissiteund 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 apache2nichts angezeigt. Vielleicht muss eine symbolische Verknüpfung zu /usr/bin? http://localhosterstellt 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 httpdund weiterhin verwenden zu können a2ensiteusw., 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 dgetwird das Quellpaket heruntergeladen, extrahiert und dpkg-buildpackageerstellt. Dadurch wird eine Reihe von .debPaketen erstellt, die Sie wie gewohnt manuell installieren können dpkg.

Wenn die build-depZeile 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/localexistiert, um einen Ort zum Installieren lokal kompilierter Software bereitzustellen. Normalerweise würden Sie /usr/localals 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/apache2usw.)

Die Lösung für Ihr Problem besteht darin, die Liste der Pfade zu erweitern, die /usr/local/apache2/binIhre Shell zum Suchen von Binärdateien verwendet. Dies wird normalerweise als oder einfach als „Ihr Pfad“ bezeichnet $PATHund 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 a2ensiteoder immer noch nicht finden a2dissitewerden. 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.

verwandte Informationen