Apache

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Apache and the translation is 17% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
Resources

Le serveur HTTP Apache est un serveur web efficient et extensible. C'est l'un des plus populaires utilisés sur l'Internet.

Installation

Note
Si vous êtes en train de faire une mise à jour, consultez le guide de mise à jour.

Options de la variable USE

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

apache2_modules_access_compat Group authorizations based on host (name or IP address). Available as a compatibility module with previous versions.
apache2_modules_authn_core Provides core authentication capabilities common to all authentication providers (functionality provided by authn_alias in previous versions).
apache2_modules_authz_core Provides core authorization capabilities to various authorization/authorization modules, such as authn_file and authz_user.
apache2_modules_authz_dbd Provides authorization capabilities via SQL database so that authenticated users can be allowed or denied access to portions of the web site by group membership.
apache2_modules_brotli Enable brotli compression support
apache2_modules_cache_disk Disk based storage module for the HTTP caching filter (similar to mem_cache in previous versions).
apache2_modules_cache_socache Shared object cache (socache) based storage module for the HTTP caching filter.
apache2_modules_http2 Enable http2/alpn module
apache2_modules_lbmethod_bybusyness Pending request counting load balancer scheduler algorithm for proxy_balancer.
apache2_modules_lbmethod_byrequests Request counting load balancer scheduler algorithm for proxy_balancer.
apache2_modules_lbmethod_bytraffic Weighted traffic counting load balancer scheduler algorithm for proxy_balancer.
apache2_modules_lbmethod_heartbeat Heartbeat traffic counting load balancer scheduler algorithm for proxy_balancer.
apache2_modules_macro Macros for the Apache config file.
apache2_modules_md Managing domains across virtual hosts, certificate provisioning via the ACME protocol.
apache2_modules_proxy_fcgi FCGI support module for mod_proxy.
apache2_modules_proxy_html Module to rewrite links in html pages behind a reverse proxy
apache2_modules_proxy_http2 HTTP2 support module for mod_proxy.
apache2_modules_proxy_wstunnel Provides support for the tunnelling of web socket connections to a backend websockets server.
apache2_modules_ratelimit Ratelimit module for transfer rate management
apache2_modules_remoteip Remotip module for logging
apache2_modules_slotmem_shm Slot-based shared memory provider.
apache2_modules_socache_shmcb A shared object cache provider using a high-performance cyclic buffer inside a shared memory segment.
apache2_modules_unixd Basic (required) security for Unix-family platforms.
apache2_modules_watchdog Provides infrastructure for other modules to periodically run tasks
apache2_modules_xml2enc Enable xml2 encoding module
ldap Add LDAP support (Lightweight Directory Access Protocol)
static Link in apache2 modules statically rather then plugins
suexec Install suexec with apache
suexec-caps Install suexec with capabilities instead of SUID
suexec-syslog Log suexec to syslog instead of to a separate file
The above template uses deprecated functionality. Help us update this template!

Emerge

Multi-Processing Module

If you want to use the Apache event or worker MPM, enable the Apache threads USE flag:

FILE /etc/portage/package.useApache threads support
www-servers/apache threads

If you want to use the Apache event MPM, then add the following to make.conf:

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

If you want to use the Apache worker MPM, then add the following to make.conf:

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

If no Multi-Processing Module (MPM) is selected, the default MPM is used. The default MPM depends on platform capabilities (like threads support), read more in the official Apache docs.


Then emerge Apache:

root #emerge --ask www-servers/apache

Prise en charge dans d'autres paquets

Enabling the apache2 global USE flag provides support for Apache in other packages. This may cause www-servers/apache to be installed automatically if a package depending on Apache has been emerged.

FILE /etc/portage/make.confAdding Apache to system USE flags
USE="apache2"

Après avoir défini cette option, vous devez mettre votre système à jour pour que les changements soient pris en compte.

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

Configuration

Fichiers de configuration

Il y a deux fichiers principaux qui définissent le comportement d'Apache sur le système :

  • Le fichier de configuration apache2 de du script d'initialisation de Gentoo /etc/conf.d/apache2
  • Le fichier de configuration conventionnel du serveur Apache /etc/apache2/httpd.conf

Fichier de configuration du script d'initialisation de Gentoo

The apache2 file located in /etc/conf.d is Gentoo's init script configuration file. The only active line in this file is the APACHE2_OPTS variable line:

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

Cette ligne définit les options qui seront interprétées par les divers fichiers de configuration utilisant l'instruction <IfDefine option-name> pour activer ou désactiver certaines parties de la configuration globale. Nous reviendrons sur ceci, dans les cas concernés, dans le reste de ce guide.

Le fichier de configuration conventionnel du serveur Apache - httpd.conf

The httpd.conf file is Apache server's conventional configuration file. In fact this file is only an entry point for configuration. The whole configuration is split in many files in the /etc/apache2/ directory, that are assembled together using the Include directive. For example, the statement Include /etc/apache2/modules.d/*.conf, in httpd.conf, aims at including all the files in /etc/apache2/modules.d/ which name ends with .conf.

Considérant ce qui a été dit précédemment, et comme les fichiers de configuration des modules (les fichiers dans /etc/apache2/modules.d) commencent presque toujours par <IfDefine module-name>, le contenu d'un fichier dans /ect/apache2/modules.d, ne sera SEULEMENT ajouté au reste de la configuration, que si l'option correspondante de la variable APACHE2_OPTS (-D module-name) est définie dans le fichier /etc/conf.d/apache2. Le fichier de configuration 00_default_settings.conf fait exception à cette règle car il ne commence pas par une instruction IfDefine, et est donc toujours inclus dans la configuration globale résultante.

Configuration par défaut

Après une nouvelle installation du serveur Apache, la configuration résultant de l'assemblage des différents fichiers de configuration ressemble à ce qui suit. Nous démarrons avec le point d'entrée /etc/apache2/httpd.conf.

Attention !
Ceci est seulement fourni pour une référence rapide et pour vous donner une vue d'ensemble. Vous êtes fortement encouragés à lire les commentaires inclus dans les différents fichiers pour comprendre les tenants et aboutissants de la configuration. Reportez-vous également au manuel d'Apache pour une compréhension approfondie.
FILE /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
LoadModule actions_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 )
<IfDefine AUTHNZ_LDAP>
LoadModule authnz_ldap_module modules/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
  
  
User apache
Group apache
  
# 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.
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
TraceEnable off
ServerSignature On 
HostnameLookups Off
EnableMMAP On
EnableSendfile On
FileEtag INode MTime Size
ContentDigest Off
ErrorLog /var/log/apache2/error_log
LogLevel warn
  
<Directory />
	Options FollowSymLinks
	AllowOverride None
	Require all denied
</Directory>
  
<IfModule dir_module>
	DirectoryIndex index.html index.html.var
</IfModule>
<FilesMatch "^\.ht">
	Require all denied
</FilesMatch>
#--------------------------------------------------------------------------^
  
#included from 00_mod_info.conf--------------------------------------------v
<IfDefine INFO>
<Location /server-info>
	SetHandler server-info
	Require host 127.0.0.1
</Location>
</IfDefine>
#--------------------------------------------------------------------------^
  
#--------------------------------------------------------------------------v
#included from 00_languages.conf
# Settings for hosting different languages.
<IfDefine LANGUAGE>
  
	AddLanguage ca .ca
	...
	AddLanguage zh-TW .zh-tw
  
	LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
  
	ForceLanguagePriority Prefer Fallback
  
	AddCharset us-ascii.ascii	.us-ascii
	AddCharset ISO-8859-1		.iso8859-1 .latin1
	...
	AddCharset shift_jis		.shift_jis .sjis
</IfDefine>
#---------------------------------------------------------------------------^
#**************************************************************************************^^^
  
  
#***************************************************************************************vvv
#this part is included via Include /etc/apache2/vhosts.d/*.conf 
#from 00_default_ssl_vhost.conf-----------------------------------------------------vv
<IfDefine SSL>
	<IfDefine SSL_DEFAULT_VHOST>
		<IfModule ssl_module>
			Listen 443
  
			<VirtualHost _default_:443>
				ServerName localhost
                                #------------------------------------------v
				# this part is included via Include /etc/apache2/vhosts.d/default_vhost.include
				ServerAdmin root@localhost
				DocumentRoot "/var/www/localhost/htdocs"
  
  	
				<Directory "/var/www/localhost/htdocs">
	   				Options Indexes FollowSymLinks
	   				AllowOverride All
	   				Require all granted
				</Directory>
  
				<IfModule alias_module>
	   				ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
				</IfModule>
  
				<Directory "/var/www/localhost/cgi-bin">
	   				AllowOverride None
	   				Options None
	   				Require all granted
				</Directory>
        			#end of Include ---------------------------^
  	
				ErrorLog /var/log/apache2/ssl_error_log
  
				<IfModule log_config_module>
					TransferLog /var/log/apache2/ssl_access_log
				</IfModule>
				SSLEngine on
				SSLCipherSuite ALL:!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>
  
				<IfModule setenvif_module>
					BrowserMatch ".*MSIE.*" \
					nokeepalive ssl-unclean-shutdown \
					downgrade-1.0 force-response-1.0
				</IfModule>
  
  
				<IfModule log_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
<IfDefine DEFAULT_VHOST>
	Listen 80
	NameVirtualHost *:80
  
	<VirtualHost *:80>
		ServerName localhost
  
		#---------------------------------------------------------------v
		# this part is included via Include /etc/apache2/vhosts.d/default_vhost.include
		ServerAdmin root@localhost
		DocumentRoot "/var/www/localhost/htdocs"
  
  	
		<Directory "/var/www/localhost/htdocs">
	   		Options Indexes FollowSymLinks
	   		AllowOverride All
	   		Require all granted
		</Directory>
  
		<IfModule alias_module>
	   		ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
		</IfModule>
  
		<Directory "/var/www/localhost/cgi-bin">
	   		AllowOverride None
	   		Options None
	   		Require all granted
		</Directory>
        	#end of Include -----------------------------------------------^
  
		<IfModule mpm_peruser_module>
			ServerEnvironment apache apache
		</IfModule>
	</VirtualHost>
</IfDefine>
#-----------------------------------------------------------------------------------^^
# end of include ****************************************************************************************^^^

Premiers signes de vie

Comme vous pouvez le constater dans la configuration initiale ci-dessus, le répertoire DocumentRoot de l'hôte virtuel pré-installé est /var/www/localhost/htdocs, son nom de serveur est localhost. De plus, un fichier index.html est fourni dans le répertoire DocumentRoot, en conséquence, pour vérifier si tout est correctement installé ou pas, pointez votre navigateur sur http://www.localhost.

Vous devriez obtenir l'affichage d'une page contenant le message It works !.

Attention !
À l'installation, Firefox dispose d'une fonctionnalité conçue pour aider les gens qui font une faute de frappe en saisissant une URL dans la barre d'adresse. Si une URL n'est pas résolue, Firefox essaye quelques variantes de l'URL pour tenter de déterminer ce que vous aviez vraiment l'intention de saisir, ajoutant à la portion nom l'hôte, un .com et/ou la préfixant avec www. pour voir si ces URLs sont résolues.

Cette fonctionnalité, introduite depuis les premières versions de Firefox, est quelque peu ennuyeuse pour les développeurs. Cela signifie que si un serveur tournant sur un hôte local ne répond pas, Firefox décide d'essayer localhost.com et/ou www.localhost.com et vous pourriez aboutir à une page non trouvée.

Pour désactiver cette fonctionnalité, procédez comme suit :

  1. Entrez about:config dans la barre d'adresse
  2. Entrez browser.fixup.alternate.enabled dans la boîte de recherche qui apparaît ou recherchez cette ligne directement.
  3. Faites un clic du bouton droit sur la ligne browser.fixup.alternate.enabled qui apparaît dans la liste filtrée au dessous et choisissez "Inverser" pour mettre la valeur à false.

Activer le module Security

Install www-apache/mod_security:

root #emerge --ask www-apache/mod_security

Enable the SECURITY module in the apache2 file's APACHE2_OPTS variable:

FILE /etc/conf.d/apache2Enabling the security module
APACHE2_OPTS="... -D SECURITY"

Configurez ce module en éditant /etc/apache2/modules.d/79_modsecurity.conf et /etc/apache2/modules.d/80_modsecurity-crs.conf and restarting apache.

Activer la prise en charge de PHP

InstallezPHP avec l'option apache2 de la variable USE et activez le module:

Important
With >=app-eselect/eselect-php-0.8.1, the APACHE2_OPTS variable changed to -D PHP instead of -D PHP5. This allows for future major versions to flow smoothly. As of eselect-php-0.9.4-r5, the compatibility shim was dropped after allowing 2 years to convert.
FILE /etc/conf.d/apache2Enabling the PHP module
APACHE2_OPTS="... -D PHP"

Avant de vérifier que le module PHP fonctionne, vérifiez que le fichier /etc/apache2/modules.d/70_mod_php5.conf existe et contient ce qui suit :

FILE /etc/apache2/modules.d/70_mod_php.confVerifying the PHP module will be loaded
<IfDefine PHP>
	# 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)$">
		SetHandler application/x-httpd-php
	</FilesMatch>
 
	# PHP source files which are meant to be displayed as
	# syntax-highlighted source code.
	<FilesMatch "\.phps$">
		SetHandler application/x-httpd-php-source
	</FilesMatch>
 
	DirectoryIndex index.php index.phtml
</IfDefine>

Si ce fichier n'existe pas, créez le.

Pour vérifier si le module PHP fonctionne, créez une page de test.

FILE /var/www/localhost/htdocs/index.phpPHP test page
<html>
 <body>
  <?php phpinfo(); ?>
 </body>
</html>

Supprimez ou renommez le fichier /var/www/localhost/htdocs/index.html. Maintenant pointez le navigateur sur http://localhost/. Vous devriez voir un tableau décrivant les réglages de PHP.

A table describing the PHP settings should be visible.

Modify PHP versions

To change the version of PHP handled by Apache, first list the available versions for the apache2 Server Application Programming Interface (SAPI):

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

Change it to the version of choice:

root #eselect php set apache2 N

Substitute N in the example above to the requested number in the output of eselect php list apache2 as displayed earlier on.

Ajouter vos propres hôtes virtuels

Pour chacun des hôtes virtuels, fournissez un répertoire DocumentRoot qui soit accessible au démon apache. Ajoutez un fichier de configuration (myVirtualHost.conf) dans le répertoire /etc/apache2/vhosts.d qui utilise ce répertoire comme DocumentRoot et qui définisse le nom de serveur virtuel de l'hôte. N'oubliez-pas d'ajouter une entrée pour ce nom de domaine dans /etc/hosts.

Pour donner à l'utilisateur apache user et à son groupe la possession des fichiers de l'hôte virtuel, utilisez la commande chown comme dans l'exemple qui suit :

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

Ci-dessous, figurent deux exemples de définition d'hôtes virtuels, un pour le nom de domaine domainename1.com et l'autre pour le nom de domaine domainename2.com. Remarquez l'utilisation de deux directives DocumentRoot et de deux directives ServerName différentes même si l'hôte lui-même (*:80) demeure le même.

CODE Exemple de définition d'hôtes virtuels
<VirtualHost *:80>
    ServerAdmin email@site.com
    DocumentRoot /var/www/website1
    ServerName domainname1.com
</VirtualHost>
  
<VirtualHost *:80>
    ServerAdmin email@site.com
    DocumentRoot /var/www/website2
    ServerName domainname2.com
</VirtualHost>

Il est recommandé de fournir une définition d'hôte virtuel basée sur l'adresse IP également. Ceci permet à l'administrateur de mettre en place un message aux utilisateurs qui essayent d'accéder au site via son adresse IP.

CODE Hôte virtuel basé sur l'adresse IP
<VirtualHost *:80>
    ServerAdmin email@site.com
    DocumentRoot /var/www/html
    ServerName xxx.xxx.xxx.xxx
</VirtualHost>

Après avoir déclarés les hôtes virtuels , le serveur doit être redémarré (en douceur) pour que les nouveaux sites soient activés.

Activer PHP via fcgid

Installez les paquets www-apache/mod_fcgid et dev-lang/php. Le paquet nécessite l'option cgi de la variable USE :

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

Éditez le fichier mod_fcgid.conf :

FILE /etc/apache2/modules.d/20_mod_fcgid.conf
<IfDefine FCGID>
LoadModule fcgid_module modules/mod_fcgid.so
SocketPath /var/run/fcgidsock
SharememPath /var/run/fcgid_shm
  
AddHandler php-fcgid .php
AddType application/x-httpd-php .php
Action php-fcgid /fcgid-bin/php-fcgid-wrapper
# max request 128mb
FcgidMaxRequestLen 134217728
<Location /fcgid-bin/>
        SetHandler fcgid-script
        Options +ExecCGI
</Location>
</IfDefine>

Créez le répertoire nécessaire :

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

Créez un lien symbolique qui pointe dessus pour le « wrapper_» PHP.

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

Activez le module fcgid :

FILE /etc/conf.d/apache2Enabling the fcgid module
APACHE2_OPTS="... -D FCGID"

Pour terminer, redémarrez apache et vérifiez le fichier créé par l'instruction phpinfo() du site telle que présentée plus haut. La valeur indiquée pour Server API devrait être CGI/FastCGI

Enabling PHP-FPM through mod_proxy_fcgi in Apache 2.4

The following pre-requisites must be satisfied to enable PHP-FPM through mod_proxy_fcgi:

  • >= PHP 5.3
  • >= Apache 2.4

Furthermore, there are a few restrictions on the availability of functionality within Apache 2.4:

The following configuration will only work with Apache 2.4.10 and newer. It relies on the FilesMatch directive and be placed within the main server config or VirtualHosts. The location of the UNIX socket is determined by the listen directive in the php-fpm.conf configuration file, allowing for specifying separate pools per site or function.

In the following example, FilesMatch is placed within the PHP module config file of Apache:

FILE /etc/apache2/modules.d/70_mod_php.confUsing PHP-FPM (recommended for Apache 2.4.10 and newer)
<IfDefine PHP>
        <FilesMatch "\.php$">
                SetHandler "proxy:unix:/var/run/php-fpm/www.sock|fcgi://localhost"
        </FilesMatch>
  
	# Set it to handle the files
	<IfModule mod_mime.c>
		AddHandler application/x-httpd-php .php .php5 .phtml
		AddHandler application/x-httpd-php-source .phps
	</IfModule>
  
	DirectoryIndex index.php index.phtml
 </IfDefine>

Or, you can use ProxPassMatch -- the only option if the Apache version is between 2.4.0 and 2.4.8, inclusive.

FILE /etc/apache2/modules.d/70_mod_php.confUsing PHP-FPM (recommended for Apache 2.4.8 and older)
<IfDefine PHP>
        # 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
	<IfModule mod_mime.c>
		AddHandler application/x-httpd-php .php .php5 .phtml
		AddHandler application/x-httpd-php-source .phps
	</IfModule>
  
	DirectoryIndex index.php index.phtml
 </IfDefine>

By default the listen directive is not set to a socket. First create the directory for the socket file:

root #mkdir /var/run/php-fpm

Next, update the php-fpm.conf file as follows:

FILE php-fpm.confUpdating listen directive
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
;                 mode is set to 0666
listen.owner = nobody
listen.group = nobody
;listen.mode = 0666
 
 ; The address on which to accept FastCGI requests.
 ; Valid syntaxes are:
 ;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
 ;                            a specific port;
 ;   'port'                 - to listen on a TCP socket to all addresses on a
 ;                            specific port;
 ;   '/path/to/unix/socket' - to listen on a unix socket.
 ; Note: This value is mandatory.
 ;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/www.sock

Then enable both the PHP and PROXY modules:

FILE /etc/conf.d/apache2Enabling PHP and proxy modules
APACHE2_OPTS="... -D PHP -D PROXY"

Usage

Services

OpenRC

Start the Apache server:

root #/etc/init.d/apache2 start

Add Apache to the default runlevel:

root #rc-update add apache2 default

Restart the Apache service:

root #/etc/init.d/apache2 restart

Reload Apache configuration files:

root #/etc/init.d/apache2 reload

systemd

Start the Apache server:

root #systemctl start apache2

Add Apache to the default runlevel:

root #systemctl enable apache2

Restart the Apache service:

root #systemctl restart apache2

Dépannage

Resources

The Apache server can be difficult to configure properly. Below are some resources that may be helpful when issues occur:

Testing

Verifying IP interfaces and ports on which Apache2 is running on and listening to:

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        

Testing if a connection to a Apache server is working on localhost:

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

Interrupt the connection test with Ctrl+c and Enter.

apr_sockaddr_info_get() failed for <System_Hostname>

Error:

apache2: apr_sockaddr_info_get() failed for System_Hostname

Resolution:

When this occurs, add the host name to the /etc/hosts file:

FILE /etc/hostsAdding a Hostname for Apache
127.0.0.1 localhost System_Hostname

Voir aussi

Ressources externes