mozaia | Bonjour,
je suis le cours Gérez votre serveur Linux et ses services sur openclassroom. Après avoir merdouillé sur l'installation d'un serveur wordpress (dans le cadre du cours), je suis revenu sur mes pas pour mieux comprendre les parties précédentes, il s'agit de PHP, chapitre Installez PHP sur votre serveur web. (le sujet n'est pas wordpress…)
Il y a une instruction dont l'objectif manque encore de clarté à mes yeux:
Citation :
DocumentRoot /var/www/html/www.example.com
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.4-fpm.sock|fcgi://localhost/var/www/html/www.example.com
|
L'expression régulière ne me gêne pas, tout est clair.
À quoi sert un socket unix, c'est aussi clair.
Le pool [www] (…/pool.d/www.conf ) écoute sur le socket unix /run/php/php7.4-fpm.sock
Par contre, que je commente cette ligne (ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.4-fpm.sock…) dans mon VirtualHost, ou que je la laisse décommentée, cela ne change rien au résultat final.
Est-ce normal que de mon client firefox j'obtienne toujours (i.e. ligne juste dessus commentée ou pas) ceci en tapant https://openclassrooms.example.com/top_secret/ ?
example.com et openclassrooms.example.com sont des alias de www.example.com, ça aussi c'est clair…
À quoi sert cette ligne exactement ?
Citation :
DocumentRoot /var/www/html/www.example.com
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.4-fpm.sock|fcgi://localhost/var/www/html/www.example.com
|
Quelques infos:
Citation :
thierry@vm-serveur:/var/www/html/www.example.com$ ll
total 28
drwxr-xr-x 4 root root 4096 Okt 2 14:29 ./
drwxr-xr-x 4 root root 4096 Okt 4 11:29 ../
-rw-r--r-- 1 root root 10918 Sep 29 13:45 index.html
drwxr-xr-x 2 root root 4096 Sep 30 14:07 top_secret/
drwxr-xr-x 2 root root 4096 Okt 2 14:29 wordpress/
thierry@vm-serveur:/var/www/html/www.example.com$ ll top_secret/
total 16
drwxr-xr-x 2 root root 4096 Sep 30 14:07 ./
drwxr-xr-x 4 root root 4096 Okt 2 14:29 ../
-rw-r--r-- 1 root root 17 Sep 30 14:06 index.html.bak
-rw-r--r-- 1 root root 20 Sep 30 14:07 index.php
thierry@vm-serveur:/var/www/html/www.example.com$ cat top_secret/index.php <?php
phpinfo();
?>
|
Une petit remarque: à la fin de mon Virtualhost, il y a quelques directives pour authentifier l'utilisateur (soit avec mot de passe "normal", soit avec un serveur ldap) qui émet une requête sur www.example.com/top_secret, cela fonctionne bien, ce n'est pas problématique. Mon VirtualHost:
Citation :
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com openclassrooms.example.com
ServerAdmin webmaster@example.com
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
#RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</IfModule>
</Virtualhost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName www.example.com
ServerAlias example.com openclassrooms.example.com
# On active le chiffrement (HTTPS)
SSLEngine On
SSLCertificateFile /home/thierry/certificat/fullchain.pem
SSLCertificateKeyFile /home/thierry/certificat/privkey.pem
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html/www.example.com
########################################################
# Commenté ou non commenté le résultat est le même ?? Normal ??
########################################################
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.4-fpm.sock|fcgi://localhost/var/www/html/www.example.com
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/www.example.com-error.log
CustomLog ${APACHE_LOG_DIR}/www.example.com-access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
<Directory /var/www/html/www.example.com>
Options All
AllowOverride None
</Directory>
#<Directory /var/www/html/www.example.com/top_secret>
# AuthType Basic
# AuthName "Accès retreint aux utilisateurs authentifiés"
# AuthBasicProvider file
# AuthUserFile "/etc/apache2/passwords"
# Require ip 192.168.0.122
# Require valid-user
#</Directory>
<Directory /var/www/html/www.example.com/top_secret>
AuthType Basic
AuthName "Accès retreint aux utilisateurs authentifiés"
AuthBasicProvider ldap
AuthLDAPURL ldap://localhost/ou=Personnes,dc=mon-entreprise,dc=com?uid?sub
Require ip 192.168.0.122
Require valid-user
</Directory>
</VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
|
Les modules chargés:
Citation :
thierry@vm-serveur:/etc/apache2/sites-available$ ls ../mods-enabled/
access_compat.load auth_basic.load authnz_ldap.load authz_user.load deflate.conf dir.load ldap.conf mime.load negotiation.conf proxy_fcgi.load reqtimeout.load setenvif.load ssl.load
alias.conf authn_core.load authz_core.load autoindex.conf deflate.load env.load ldap.load mpm_event.conf negotiation.load proxy.load rewrite.load socache_shmcb.load status.conf
alias.load authn_file.load authz_host.load autoindex.load dir.conf filter.load mime.conf mpm_event.load proxy.conf reqtimeout.conf setenvif.conf ssl.conf status.load
|
Message édité par mozaia le 04-10-2021 à 19:09:15 ---------------
Dimensions Moebius Sésamath
|