Vraag Compiled Apache - geen conf-enabled / conf-available / mods-available etc. folders


Ik heb zojuist apache (httpd-2.4.23) gecompileerd met behulp van deze commando's:

APACHE_CONFDIR=/etc/apache2
APACHE_ENVVARS=$APACHE_CONFDIR/envvars
CFLAGS="-O2 -DBIG_SECURITY_HOLE"

./configure --prefix=$APACHE_CONFDIR
make
make install

Er zijn echter mappen die conf-enabled / conf-available / mods-available enz. Missen. Doe ik iets verkeerd of is dat een nieuwe mappenstructuur?

Er zijn mappen conf en modules

Ook zijn er geen commando's zoals a2ensite, a2enmod etc. in /usr/sbin en ik kan ze nergens vinden. Dank je


0
2017-11-18 11:16


oorsprong




antwoorden:


Een groot deel van wat een distributie als Ubuntu doet, is om een ​​groot aantal verschillende software uit een veelvoud van verschillende oorsprongen te integreren en te combineren tot een samenhangend systeem. Om dat te doen, moet in veel gevallen de originele software worden aangepast of uitgebreid.

Dat is het geval met Apache. Het geheel *-available en *-enabled structuur is niet de Apache-projecten die het doen, om zo te zeggen, maar een deel van hoe Debian de Apache HTTPd in ​​zijn distributie heeft geïntegreerd. Daarom vind je het in Debian en Debian-gebaseerde distributies zoals Ubuntu, maar niet in de "originele" Apache die je zelf hebt gecompileerd.

Maar het is niet zo moeilijk om die structuren zelf te bouwen. Je moet in principe zelf de mappen maken en Apache de configs daarin laten lezen met de IncludeOptional richtlijn in apache.conf. Dat is eigenlijk de Debian-versie van apache.conf doet:

...
# 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/
...

De commando's houden van a2ensite, a2enmod enzovoort, maken ook deel uit van de Debian-integratie. In feite zijn de meeste daarvan symbolische koppelingen a2enmod, dat is een Perl-script. Ze voegen allemaal in principe toe (a2en*) of verwijder (a2dis*) de symbolische links van de respectieve *-available map naar de *-enabled directory. Bijvoorbeeld, a2ensite mysite.conf maak een symlink aan in site-enabled/mysite.conf die verwijst naar site-available/mysite.conf. En de sites-enabled map kan worden geïntegreerd in apache.conf, zoals hierboven getoond.

U kunt dus zelf de symlinks maken ln -s, of je kunt een klein script in je taal naar keuze schrijven om dat te doen.


1
2017-11-18 11:48



Dat is een beetje logisch :) Bedankt - simPod


Die dingen zijn allemaal Debian-specifiek; ze zijn niet aanwezig in de "originele" Apache, alleen in de gewijzigde versie die wordt verzonden in Debian (en dus ook in Ubuntu).

Dus nee, er is niets mis met uw installatie, maar veel van de Debian-specifieke bronnen die u kunt vinden, zijn daarop niet van toepassing.

Trouwens, ik weet niet zeker waarom je Apache 2.4.23 nodig hebt, maar het is in elk geval beschikbaar vanaf deze PPA. Dat pakket zou moeten bevatten a2ensite et al.


1
2017-11-18 11:32



Oh, en is er een manier om mijn eigen Debian-specifieke httpd te compileren? Ik heb geen spiegel gevonden. - simPod
Ik moest het compileren met specifieke CFLAGS, daarom doe ik het handmatig. Bedankt voor de uitleg - simPod
Nou, je zou de Debian-bronpakketten kunnen downloaden, ze kunnen aanpassen om je cflags toe te voegen en opnieuw te compileren, maar dat vereist enige bekendheid met Debian-verpakkingen. - fkraiem