Apache

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Apache and the translation is 89% complete.
Outdated translations are marked like this.

Der Apache HTTP Server ist ein effizienter und erweiterbarer Web-Server. Es ist einer der am häufigsten eingesetzten Web-Server im Internet.

Installation

Hinweis
Beim Aktualisieren zwischen Apache-Versionen beachten Sie bitte Apache Upgraden Anleitung

USE-Flags

USE flags for www-servers/apache The Apache Web Server

+filecaps Use Linux file capabilities to control privilege rather than set*id (this is orthogonal to USE=caps which uses capabilities at runtime e.g. libcap)
+suexec-caps Install suexec with capabilities instead of SUID
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
gdbm Add support for sys-libs/gdbm (GNU database libraries)
ldap Add LDAP support (Lightweight Directory Access Protocol)
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
static Link in apache2 modules statically rather then plugins
suexec Install suexec with apache
suexec-syslog Log suexec to syslog instead of to a separate file
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
threads Add threads support for various packages. Usually pthreads
verify-sig Verify upstream signatures on distfiles
Data provided by the Gentoo Package Database · Last update: 2026年08月14日 00:24 More information about USE flags

Emerge

Multi-Processing Modul

Um den Apache Event- oder Worker-MPM zu verwenden, aktivieren Sie die USE-Flag threads für Apache:

DATEI /etc/portage/package.useApache threads support
www-servers/apachethreads

Um den Apache Event-MPM zu verwenden, fügen Sie folgendes in die make.conf ein:

DATEI /etc/portage/make.confApache event MPM
APACHE2_MPMS="event"

Um den Apache Worker-MPM zu verwenden, fügen Sie folgendes in die make.conf ein:

DATEI /etc/portage/make.confApache worker MPM
APACHE2_MPMS="worker"

Wenn kein Multi-Processing Modul (MPM) ausgewählt ist, wird der Standard-MPM verwendet. Der Standard-MPM ist abhängig von den Fähigkeiten der verwendeten Plattform (wie etwa die Unterstützung von threads). Lesen Sie mehr unter official Apache docs.

Dann emerge www-servers/apache :

root #emerge --ask www-servers/apache

Globale Unterstützung

Durch das aktivieren der globalen apache2 USE-Flag wird die Unterstützung für Apache in anderen Paketen bereitgestellt. Dies kann dazu führen, dass www-servers/apache automatisch installiert wird, sobald ein von Apache abhängiges Paket installiert wird.

DATEI /etc/portage/make.confHinzufügen von Apache zu den systemweiten USE flags
USE="apache2"

Nach dem Setzen des USE-Flag aktualisieren Sie das System, damit die Änderungen wirksam werden:

root #emerge --ask --changed-use --deep @world

Konfiguration

Dateien

Es existieren zwei Haupt-Konfigurationsdateien, welche das Verhalten des Apache2 auf dem System festlegen:

  • Gentoo's Apache2-Init-Skript Konfigurationsdatei /etc/conf.d/apache2
  • Übliche Apache2-Server Konfigurationsdatei /etc/apache2/httpd.conf

/etc/conf.d/apache2

Die Datei apache2 in /etc/conf.d ist die Init-Script-Konfigurationsdatei von Gentoo. Die einzige aktive Zeile in dieser Datei ist die Zeile mit der Variable APACHE2_OPTS:

DATEI /etc/conf.d/apache2
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE"

Diese Zeile definiert Optionen, die durch verschiedenen Konfigurationsdateien mit der <IfDefine option-name> Anweisung interpretiert werden, um einen Teil der gesamten Konfiguration zu aktivieren oder zu deaktivieren. Darauf wird im weiteren Verlauf des Artikels noch eingegangen.

/etc/apache2/httpd.conf

In der Tat ist diese Datei nur ein "Einstiegspunkt", da die gesamte Konfiguration in viele Dateien im Verzeichnis /etc/apache2/ aufgeteilt ist. Sie werden mit Hilfe der Include direktive zusammengesetzt. Die Anweisung Include /etc/apache2/modules.d/*.conf in httpd.conf zielt z. B. darauf ab alle Dateien in /etc/apache2/modules.d/ einzubinden, deren Name mit .conf endet.

Unter Berücksichtigung des oben gesagten und weil die Modul-Konfigurationsdateien (in /etc/apache2/modules.d) fast immer mit dem <IfDefine module-name> beginnen, wird der Inhalt einer Datei in /etc/apache2/modules.d NUR mit dem Rest der Konfiguration zusammengefügt, wenn die passende Option über das -D module-name Flag in der APACHE2_OPTS Variable in der Datei /etc/conf.d/apache2 gesetzt ist. Die Konfigurationsdatei 00_default_settings.conf ist eine Ausnahme von dieser Regel, weil sie nicht mit einer IfDefine Anweisung beginnt und daher immer in der resultierenden Konfiguration eingebunden ist.

Standardwerte

Nach einer Neuinstallation von Apache Server ist die Konfiguration, die aus der Zusammensetzung der verschiedenen Konfigurationsdateien resultiert, wie folgt. Beginnend mit dem Einstiegspunkt /etc/apache2/httpd.conf.

Warnung
Dies sei "nur" als schnelle Referenz zu verstehen und soll einen Überblick gewähren. Benutzern wird nachdrücklich empfohlen sich die Kommentare in den verschiedenen Dateien anzuschauen, um die Besonderheiten der Konfiguration zu verstehen. Bitte beachten Sie auch das Apache Handbuch für ein tiefer gehendes Verständnis der Apache Konfigurationen.
DATEI /etc/apache2/httpd.conf
ServerRoot"/usr/lib64/apache2"

#Module loaded unconditionally, assuming the USE flag is no unset in
# /etc/portage/make.conf or in /etc/portage/package.use
LoadModuleactions_modulemodules/mod_actions.so
...
#other modules loaded that way : alias_module, auth_basic_module, authn_alias_module,
# authn_anon_module, authn_dbm_module, authn_default_module, authn_file_module, 
# authz_dbm_module, authz_default_module, authz_groupfile_module, authz_host_module, 
# authz_owner_module, authz_user_module, autoindex_module, cgi_module, cgid_module, 
# deflate_module, dir_module, env_module, expires_module, ext_filter_module, filter_module,
# headers_module, include_module, log_config_module, logio_module, mime_module, 
# mime_magic_module, negotiation_module, rewrite_module, setenvif_module, 
# speling_module,ssl_module, status_module, unique_id_module, usertrack_module, host_alias_module


#Modules loaded conditionally, assuming matching USE flag is not unset in
# /etc/portage/make.conf or in /etc/portage/package.use (flag to be set in )
<IfDefineAUTHNZ_LDAP>
LoadModuleauthnz_ldap_modulemodules/mod_authnz_ldap.so
</IfDefine>
#other modules loaded that way : cache_module, dav_module, dav_fs_module,
# dav_lock_module,disk_cache_module, file_cache_module, info_module, ldap_module,
# mem_cache_module, userdir_module


Userapache
Groupapache

# Supplemental configuration
#**************************************************************************************vvv
#this part is included via Include /etc/apache2/modules.d/*.conf 

#included from /etc/apache2/modules.d/00_default_settings.conf-------------v
#this is always included as there is not option to deactivate it.
Timeout300
KeepAliveOn
MaxKeepAliveRequests100
KeepAliveTimeout15
UseCanonicalNameOff
AccessFileName.htaccess
ServerTokensProd
TraceEnableoff
ServerSignatureOn
HostnameLookupsOff
EnableMMAPOn
EnableSendfileOn
FileEtagINodeMTimeSize
ContentDigestOff
ErrorLog/var/log/apache2/error_log
LogLevelwarn

<Directory/>
OptionsFollowSymLinks
AllowOverrideNone
Requirealldenied
</Directory>

<IfModuledir_module>
DirectoryIndexindex.htmlindex.html.var
</IfModule>
<FilesMatch"^\.ht">
Requirealldenied
</FilesMatch>
#--------------------------------------------------------------------------^

#included from 00_mod_info.conf--------------------------------------------v
<IfDefineINFO>
<Location/server-info>
SetHandlerserver-info
Requirehost127.0.0.1
</Location>
</IfDefine>
#--------------------------------------------------------------------------^

#--------------------------------------------------------------------------v
#included from 00_languages.conf
# Settings for hosting different languages.
<IfDefineLANGUAGE>

AddLanguageca.ca
...
AddLanguagezh-TW.zh-tw

LanguagePriorityencacsdadeeleoesetfrhehritjakoltznlnnnoplptpt-BRrusvzh-CNzh-TW

ForceLanguagePriorityPreferFallback

AddCharsetus-ascii.ascii.us-ascii
AddCharsetISO-8859-1.iso8859-1.latin1
...
AddCharsetshift_jis.shift_jis.sjis
</IfDefine>
#---------------------------------------------------------------------------^
#**************************************************************************************^^^


#***************************************************************************************vvv
#this part is included via Include /etc/apache2/vhosts.d/*.conf 
#from 00_default_ssl_vhost.conf-----------------------------------------------------vv
<IfDefineSSL>
<IfDefineSSL_DEFAULT_VHOST>
<IfModulessl_module>
Listen443

<VirtualHost_default_:443>
ServerNamelocalhost
#------------------------------------------v
# this part is included via Include /etc/apache2/vhosts.d/default_vhost.include
ServerAdminroot@localhost
DocumentRoot"/var/www/localhost/htdocs"


<Directory"/var/www/localhost/htdocs">
OptionsIndexesFollowSymLinks
AllowOverrideAll
Requireallgranted
</Directory>

<IfModulealias_module>
ScriptAlias/cgi-bin/"/var/www/localhost/cgi-bin/"
</IfModule>

<Directory"/var/www/localhost/cgi-bin">
AllowOverrideNone
OptionsNone
Requireallgranted
</Directory>
#end of Include ---------------------------^

ErrorLog/var/log/apache2/ssl_error_log

<IfModulelog_config_module>
TransferLog/var/log/apache2/ssl_access_log
</IfModule>
SSLEngineon
SSLCipherSuiteALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile/etc/ssl/apache2/server.crt
SSLCertificateKeyFile/etc/ssl/apache2/server.key

<FilesMatch"\.(cgi|shtml|phtml|php)$">
SSLOptions+StdEnvVars
</FilesMatch>

<Directory"/var/www/localhost/cgi-bin">
SSLOptions+StdEnvVars
</Directory>

<IfModulesetenvif_module>
BrowserMatch".*MSIE.*"\
nokeepalivessl-unclean-shutdown\
downgrade-1.0force-response-1.0
</IfModule>


<IfModulelog_config_module>
CustomLog/var/log/apache2/ssl_request_log\
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</IfModule>
</VirtualHost>
</IfModule>
</IfDefine>
</IfDefine>
#---------------------------------------------------------------------------------^^
#from 00_default_vhost.conf-------------------------------------------------------vv
<IfDefineDEFAULT_VHOST>
Listen80
NameVirtualHost*:80

<VirtualHost*:80>
ServerNamelocalhost

#---------------------------------------------------------------v
# this part is included via Include /etc/apache2/vhosts.d/default_vhost.include
ServerAdminroot@localhost
DocumentRoot"/var/www/localhost/htdocs"


<Directory"/var/www/localhost/htdocs">
OptionsIndexesFollowSymLinks
AllowOverrideAll
Requireallgranted
</Directory>

<IfModulealias_module>
ScriptAlias/cgi-bin/"/var/www/localhost/cgi-bin/"
</IfModule>

<Directory"/var/www/localhost/cgi-bin">
AllowOverrideNone
OptionsNone
Requireallgranted
</Directory>
#end of Include -----------------------------------------------^

<IfModulempm_peruser_module>
ServerEnvironmentapacheapache
</IfModule>
</VirtualHost>
</IfDefine>
#-----------------------------------------------------------------------------------^^
# end of include ****************************************************************************************^^^

Das erste Lebenszeichen

Start the server, as described in the Usage section.

Wie in der initialen Konfiguration oben sichtbar ist, ist der vorinstallierte DocumentRoot des virtuellen Hosts /var/www/localhost/htdocs. Sein Servername ist localhost. Zusätzlich ist eine Datei index.html im DocumentRoot Verzeichnis vorhanden. Um zu prüfen, ob alles korrekt installiert ist oder nicht, surfen sie einem Browser zur Adresse https://localhost/.

Die Nachricht "It works!" auf der Seite erscheinen.

Warnung
Standardmäßig hat Firefox eine Funktion, um Anwendern im Falle von Fehleingaben von URLs in der Adresszeile zu helfen. Wenn eine URL nicht aufzulösen ist, nimmt Firefox ein paar Änderungen an der URL vor, um herauszufinden was der Benutzer 'möglicherweise' wirklich beabsichtigt hatten. Beispielsweise durch Anhängen von .com und/oder voranstellen von www. beim Anteil des Host Namens der URL, um zu prüfen ob sie sich dann auflösen lässt.

Diese Funktion, die in den frühen Versionen von Firefox eingeführt wurde, ist etwas nervig für Entwickler. Das bedeutet wenn ein Server auf localhost nicht reagiert, Firefox localhost.com und/oder www.localhost.com versucht und Sie am Ende bei einer nicht gefunden Seite landen könnten.

Um dieses 'Feature' zu deaktivieren:

  1. Geben Sie about:config in die Browser-Leiste ein
  2. Geben Sie browser.fixup.alternate.enabled in das angezeigte Suchfeld ein
  3. Führen Sie einen Rechtsklick auf browser.fixup.alternate.enabled in der gefilterten Liste aus und wählen Sie Toggle, um den Wert auf false zu setzen

mod_security aktivieren

ModSecurity ist eine Regelbasierte Web Application Firewall, die den Datenverkehr von Webservices überwacht und Angriffe abwehrt, die bekannte Softwareschwachstellen ausnutzen.

Installieren Sie www-apache/mod_security :

root #emerge --ask www-apache/mod_security

Schalten Sie das SECURITY-Modul in der APACHE2_OPTS-Variable ein, welche in der Datei apache2 zu finden ist.

DATEI /etc/conf.d/apache2Das Sicherheitsmodul aktivieren
APACHE2_OPTS="... -D SECURITY"

Das Verhalten des Moduls kann durch anpassen der Dateien /etc/apache2/modules.d/79_modsecurity.conf und /etc/apache2/modules.d/80_modsecurity-crs.conf gesteuert werden. Die Datei /usr/share/doc/mod_security-*/modsecurity.conf-recommended.bz2 enthält die empfohlene Konfiguration basierend auf https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#A_Recommended_Base_Configuration. Kopieren Sie die grundlegende Konfiguration in die /etc/apache2/modules.d/79_modsecurity.conf und passen Sie die Einstellungen anhand Ihrer Bedürfnisse an. Entpacken Sie die Datei /usr/share/doc/modsecurity-crs-*/crs-setup.conf.example.bz2 an einen geeigneten Ort, z.B. /etc/conf.d/crs-setup.conf, passen Sie diese an und fügen Sie diese dann in /etc/apache2/modules.d/80_modsecurity-crs.conf ein. Im Anschluss hieran, muss der Apache-Server neugestartet werden. Halten Sie ausschau nach Fehlern in den Apache-Logdateien, um dementsprechend diese zu korrigieren.

Enabling LUA support

Warnung
Enabling LUA support can present a severe security risk, particularly for servers with untrusted shared users - it can be abused to change the server internals.

Install Apache with the USE flag apache2_modules_lua enabled.

For security reasons this USE flag may be masked. To reverse, edit package.use.mask first:

DATEI /etc/portage/profile/package.use.maskReversing the LUA module mask
www-servers/apache-apache2_modules_lua

PHP Unterstützung aktivieren

Installieren Sie PHP mit dem apache2 USE-Flag und aktivieren Sie das Modul:

DATEI /etc/conf.d/apache2Das PHP Modul aktivieren
APACHE2_OPTS="... -D PHP"

Vor dem Test ob das PHP Modul funktioniert, prüfen Sie dass die Datei /etc/apache2/modules.d/70_mod_php.conf existiert und die folgende Definition enthält:

DATEI /etc/apache2/modules.d/70_mod_php.confVerifizieren, dass das PHP-Modul geladen wird
<IfDefinePHP>
# The mod_php.so symlink is controlled by
# eselect-php. However, the module name changed from
# php5_module to php7_module so we can't blindly load whatever
# is there. Instead we let eselect-php manage a small
# configuration file that loads the appropriate module.
#
# This is relative to ServerRoot (see httpd.conf).
Include../../../var/lib/eselect-php/mod_php.conf

# Tell apache that mod_php should handle PHP files.
#
# NOTE: Avoiding AddHandler/AddType for security (bug
# #538822). Please read the related news item!
<FilesMatch"\.(php|php[57]|phtml)$">
SetHandlerapplication/x-httpd-php
</FilesMatch>

# PHP source files which are meant to be displayed as
# syntax-highlighted source code.
<FilesMatch"\.phps$">
SetHandlerapplication/x-httpd-php-source
</FilesMatch>

DirectoryIndexindex.phpindex.phtml
</IfDefine>

Wenn die Datei nicht vorhanden ist, erstellen Sie sie.

Um zu verifizieren ob das PHP Modul korrekt funktioniert, erstellen Sie eine Testseite:

DATEI /var/www/localhost/htdocs/index.phpPHP Testseite
<html>
 <body>
<?php phpinfo(); ?>
 </body>
</html>

Löschen oder Ändern Sie den Namen der Datei /var/www/localhost/htdocs/index.html und öffnen Sie im Anschluss hieran die Testseite: https://localhost/

Es sollte eine Tabelle anzeigen, die die Einstellungen von PHP beschreibt.

Verändern der PHP-Version

Um die von Apache verwendete PHP-Version zu ändern, müssen Sie sich zuerst die verfügbaren Versionen für das apache2 Server Application Programming Interface (SAPI) auflisten lassen:

root #eselect php list apache2
 [1] php5.3
 [2] php5.4 *
 [3] php5.5

Ändern Sie diese in die gewünschte Version:

root #eselect php set apache2 N

Ersetzen Sie N im oben genannten Beispiel mit der gewünschten Zahl, die zuvor mit eselect php list apache2 ausgegeben wurde.

Virtuelle Hosts

Erstellen Sie für jeden virtuellen Host ein DocumentRoot Verzeichnis, das für den Apache-Daemon erreichbar und zugänglich ist. Fügen Sie eine Konfigurationsdatei (VirtualHost.conf) für den virtuellen Host im Verzeichnis /etc/apache2/vhosts.d hinzu, welches dieses DocumentRoot verwendet und den virtuellen Host Servernamen. Vergessen Sie außerdem nicht, einen Eintrag für diesen Domainnamen in /etc/hosts hinzuzufügen.

Um die Apache user/group Zugehörigkeit der virtuellen Host Dateien zuzuweisen, verwenden Sie chown wie in folgendem Beispiel:

root #chown apache:apache /var/www/sitename

Es folgen zwei Beispiel-Definitionen für Virtuelle Hosts. Eine für domainname1.com und eine weitere für domainname2.com. Beachten Sie die unterschiedlichen DocumentRoot und ServerName Anweisungen, auch wenn der Host selbst (*:80) der gleiche bleibt:

CODE Beispiel-Definition eines Virtuellen Hosts
<VirtualHost*:80>
ServerAdminemail@site.com
DocumentRoot/var/www/website1
ServerNamedomainname1.com
</VirtualHost>

<VirtualHost*:80>
ServerAdminemail@site.com
DocumentRoot/var/www/website2
ServerNamedomainname2.com
</VirtualHost>

Es wird empfohlen, ebenfalls eine IP-basierte Virtuelle Host Definition anzubieten. Dies ermöglicht es dem Administrator eine Nachricht für Benutzer aufzusetzen, die versuchen eine Website durch ihre IP-Adresse zu erreichen:

CODE IP-basierter Virtueller Host
<VirtualHost*:80>
ServerAdminemail@site.com
DocumentRoot/var/www/html
ServerNamexxx.xxx.xxx.xxx
</VirtualHost>

Nach dem Einfügen Virtueller Hosts muss der Server neu gestartet werden, damit die neuen Seiten aktiv werden.

PHP aktivieren durch fcgid

Installiere www-apache/mod_fcgid und dev-lang/php . Das PHP Paket benötigt das cgi USE-flag:

root #emerge --ask www-apache/mod_fcgid dev-lang/php

Bearbeiten Sie die Datei mod_fcgid.conf:

DATEI /etc/apache2/modules.d/20_mod_fcgid.conf
<IfDefineFCGID>
LoadModulefcgid_modulemodules/mod_fcgid.so
SocketPath/var/run/fcgidsock
SharememPath/var/run/fcgid_shm

AddHandlerphp-fcgid.php
AddTypeapplication/x-httpd-php.php
Actionphp-fcgid/fcgid-bin/php-fcgid-wrapper
# max request 128mb
FcgidMaxRequestLen134217728
<Location/fcgid-bin/>
SetHandlerfcgid-script
Options+ExecCGI
</Location>
</IfDefine>

Erstellen Sie das benötigte Verzeichnis:

root #mkdir /var/www/localhost/htdocs/fcgid-bin

Erstellen Sie für den PHP-Wrapper einen symbolischen Link:

root #ln -s /usr/bin/php-cgi /var/www/localhost/htdocs/fcgid-bin/php-fcgid-wrapper

Aktivieren Sie das fcgid-Modul:

DATEI /etc/conf.d/apache2Das fcgid-Modul aktivieren
APACHE2_OPTS="... -D FCGID"

Starten Sie abschließend den Apache Server neu und überprüfen Sie die zuvor erzeugte phpinfo() Seite. Der Wert von Server API sollte CGI/FastCGI sein.

PHP-FPM durch mod_proxy_fcgi in Apache 2.4 aktivieren

Die folgenden Voraussetzungen müssen erfüllt sein, um PHP-FPM über mod_proxy_fcgi zu aktivieren:

  • >= PHP 5.3
  • >= Apache 2.4

Zudem gibt es vereinzelte funktionelle Einschränkungen in Apache 2.4:

Die folgende Konfiguration funktioniert nur mit Apache 2.4.10 oder darüber. Diese beruht auf der FilesMatch Richtlinie und sitzt innerhalb der Konfiguration des Hauptservers oder der Virtuellen Hosts. Die Lage des UNIX Socket wird durch die listen Direktive in der php-fpm.conf Konfigurationsdatei bestimmt. Dies erlaubt die Angabe separater Pools pro Seite oder Funktion.

Im folgenden Beispiel wird FilesMatch in der PHP-Modulkonfigurationsdatei von Apache platziert:

DATEI /etc/apache2/modules.d/70_mod.phpPHP-FPM benutzen (empfohlen für Apache 2.4.10 und neuer)
<IfDefinePHP>
<FilesMatch"\.php$">
SetHandler"proxy:unix:/var/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>

# Set it to handle the files
<IfModulemod_mime.c>
AddHandlerapplication/x-httpd-php.php.php5.phtml
AddHandlerapplication/x-httpd-php-source.phps
</IfModule>
DirectoryIndexindex.phpindex.phtml
</IfDefine>

 

DATEI /etc/apache2/modules.d/70_mod_php.confBenutzen von PHP-FPM (empfohlen für Apache 2.4.8 und älter)
<IfDefinePHP>
# Send all requested PHP files to PHP-FPM via fcgi://PHP_FPM_LISTEN_ADDRESS:PHP_FPM_LISTEN_PORT/DOCUMENT_ROOT/1ドル
ProxyPassMatch^/(.*\.php)$fcgi://127.0.0.1:9000/var/www/localhost/htdocs/1ドル

# Set it to handle the files
<IfModulemod_mime.c>
AddHandlerapplication/x-httpd-php.php.php5.phtml
AddHandlerapplication/x-httpd-php-source.phps
</IfModule>

DirectoryIndexindex.phpindex.phtml
</IfDefine>

Standardmäßig ist die listen-Richtlinie nicht als Socket eingestellt. Erstellen Sie zuerst den Ordner für die Socketdatei:

root #mkdir /var/run/php-fpm

Als nächstes aktualisieren Sie die Datei php-fpm.conf wie folgt:

DATEI php-fpm.confAnpassen der listen-Richtlinie
;Setpermissionsforunixsocket,ifoneisused.InLinux,read/write
;permissionsmustbesetinordertoallowconnectionsfromawebserver.Many
;BSD-derivedsystemsallowconnectionsregardlessofpermissions.
;DefaultValues:userandgrouparesetastherunninguser
;modeissetto0666
listen.owner=apache
listen.group=apache
;listen.mode=0666

;TheaddressonwhichtoacceptFastCGIrequests.
;Validsyntaxesare:
;'ip.add.re.ss:port'-tolistenonaTCPsockettoaspecificaddresson
;aspecificport;
;'port'-tolistenonaTCPsockettoalladdressesona
;specificport;
;'/path/to/unix/socket'-tolistenonaunixsocket.
;Note:Thisvalueismandatory.
;listen=127.0.0.1:9000
listen=/var/run/php-fpm/www.sock

Aktivieren Sie dann sowohl das PHP- als auch das PROXY-Modul:

DATEI /etc/conf.d/apache2Aktivierung PHP- und Proxy-Modul
APACHE2_OPTS="... -D PHP -D PROXY"

Web-Frameworks und Apache

Einige der Web-Frameworks, die mit Apache arbeiten können, werden im Wiki behandelt:

HTTPS mit TLS-Zertifikaten von Let's Encrypt

Es ist wichtig, dass jeder öffentlich erreichbarer Webserver "sicheren" HTTPS-Zugang ermöglicht. Oftmals werden Seiten so konfiguriert, dass diese HTTP-Anfragen auf HTTPS mit derselben URL umleiten.

Let’s Encrypt ist eine gemeinnützige Zertifikatsauthorität, die kostenlose TLS-Zertifikate vergibt. certbot ist eine in der Gentoo repository verfügbare Software, die es auf einfache Weise ermöglicht, TLS-Zertifikate zu installieren und automatisch den HTTPS-Zugang für Apache einrichtet.

Siehe den Artikel von Let's Encrypt für Infos, wie certbot verwendet wird. Die EFF hat auch spezifische Anweisungen, wie certbot auf Gentoo verwendet wird, um Apache zu konfigurieren.

Bedienung

Dienste

OpenRC

Starten des Apache-Servers:

root #/etc/init.d/apache2 start

Apache zum Default-Runlevel hinzufügen:

root #rc-update add apache2 default

Neustarten des Apache-Services:

root #/etc/init.d/apache2 restart

Apache Konfigurationsdateien erneut laden:

root #/etc/init.d/apache2 reload

systemd

Starten des Apache-Servers:

root #systemctl start apache2

Apache zum Default-Runlevel hinzufügen:

root #systemctl enable apache2

Neustarten des Apache-Services:

root #systemctl restart apache2

Fehlersuche

Ressourcen

Es kann schwierig sein, den Apache-Server ordnungsgemäß zu konfigurieren. Untenstehend sind einige Ressourcen, die beim Auftreten von Problemen hilfreich sein können:

Testen

Überprüfen des IP Interfaces und des Ports, welcher apache2 zugewiesen wurde und auf dem dieser hört:

root #netstat -tulpen | grep apache
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 10932720 4544/apache2 
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 0 10932716 4544/apache2 

Überprüfen ob die Verbindung zum Apache-Server auf localhost funktioniert:

user $telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Der Verbindungstest kann mit der Tastenkombination Ctrl+c und Enter unterbrochen werden.

apr_sockaddr_info_get() failed for <System_Hostname>

Fehler:

apache2: apr_sockaddr_info_get() failed for System_Hostname

Auflösung:

Sollte dies geschehen, fügen Sie den Hostnamen in die /etc/hosts Datei ein:

DATEI /etc/hostsHinzufügen eines Hostnamens für Apache
127.0.0.1 localhost System_Hostname

Siehe auch

Weblinks