Page 1 sur 1
[nginx] File not found. (résolu)
Publié : lun. 10 juil. 2023, 03:12
par ignace72
Bonsoir à toutes et à tous.
J’ai le projet de rapatrier Matomo sur mon PC plutôt que le laisser sur mon serveur.
J’ai donc installé Nginx, PHP-FPM et MariaDB.
Jusque-là, tout va bien.
C’est ensuite que ça bug.
Je me doute bien que le problème est entre la chaise et le clavier, mais je ne vois pas ce qui coince.
J’ai créé un fichier /etc/nginx/sites-enabled/matomo.localhost
nginx -t ne me donne pas d’erreur.
Voilà le fichier :
Code : Tout sélectionner
server {
listen 80;
server_name matomo.localhost;
error_log /var/log/nginx/error.log warn;
location / {
root /srv/http/matomo/;
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
root /usr/share/nginx/html;
include fastcgi.conf;
}
}
Quand je tape l’adresse
http://matomo.localhost dans Vivaldi, j’ai juste les mots suivants qui s’affichent :
File not found.
Qu’es-je fait de mal ?
Une bonne âme pourrait-elle m’aider ?
Merci par avance.
Re: [nginx] File not found.
Publié : lun. 10 juil. 2023, 07:24
par benjarobin
Bonjour,
Est-ce que /etc/nginx/nginx.conf
inclut ce fichier (/etc/nginx/sites-enabled/matomo.localhost
) ou tous les fichiers de /etc/nginx/sites-enabled/*
?
Re: [nginx] File not found.
Publié : lun. 10 juil. 2023, 07:38
par ignace72
Bonjour, benjarobin.
Oui, les sites-enabled sont inclus.
J’ai un peu avancé, maintenant, j’ai l’erreur 403 Forbidden.
Je regarde si je suis bien dans le groupe http et sinon, je l’ajoute et me reconnecte.
À toute suite.
Re: [nginx] File not found.
Publié : lun. 10 juil. 2023, 07:59
par ignace72
Bon, il y avait un problème de droit sur le répertoire http.
J’ai toujours l’erreur 403 Forbidden.
Si je fais
http://localhost/index.php (avec phpinfo dedans), mon navigateur me propose de le télécharger.
Pourtant :
Code : Tout sélectionner
$ sudo systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; preset: disabled)
Active: active (running) since Mon 2023-07-10 02:11:31 CEST; 5h 39min ago
Main PID: 1379507 (php-fpm)
Status: "Processes active: 0, idle: 2, Requests: 5, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 38397)
Memory: 14.3M
CPU: 514ms
CGroup: /system.slice/php-fpm.service
├─1379507 "php-fpm: master process (/etc/php/php-fpm.conf)"
J’ai l’impression que c’est un truc tout bête, mais je n’arrive pas à mettre la main dessus.
Re: [nginx] File not found.
Publié : lun. 10 juil. 2023, 09:04
par benjarobin
Peux tu nous donner tous les fichiers de configuration de nginx ?
Sinon c'est normal que
http://localhost/index.php
te demande de le télécharger le fichier
.php
. Car tu ne passes par par ton sous domaine. Via la "chemin" (host) par défaut, il n'y a aucune configuration qui gère PHP.
De plus tu n'as pas besoin d'être dans le groupe
http
. Peux tu donner la sortie de
Re: [nginx] File not found.
Publié : lun. 10 juil. 2023, 09:22
par ignace72
En fait, j’ai passé la config directement dans nginx.conf le temps de trouver ce qui ne va pas.
Maintenant, il y a un message d’erreur au lieu du téléchargement du fichier index.php :
Code : Tout sélectionner
An error occurred.
Sorry, the page you are looking for is currently unavailable.
Please try again later.
If you are the system administrator of this resource then you should check the error log for details.
Faithfully yours, nginx.
nginx.conf :
Code : Tout sélectionner
#user http;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
include sites-enabled/*;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name matomo;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /srv/http/matomo/;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;
}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
hosts
# Standard host addresses
Code : Tout sélectionner
127.0.0.1 localhost
127.0.0.1 matomo
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# This host address
127.0.1.1 ignace-PC
Ha oui, j’ai oublié de préciser que ce site n’est pas destiné à être vu par un autre ordinateur.
Re: [nginx] File not found.
Publié : lun. 10 juil. 2023, 13:07
par benjarobin
Ta configuration ne respecte pas ce qui est décrit dans le wiki
https://wiki.archlinux.org/title/Nginx# ... ementation
De plus tu n'as pas donné les sorties demandées
Re: [nginx] File not found.
Publié : lun. 10 juil. 2023, 13:26
par ignace72
Voilà, ça fonctionne, je peux maintenant installer Matomo.
Merci beaucoup, et aussi pour ta patience.
Voilà la sortie de
ls -la /srv/http/ /srv/http/matomo/
Code : Tout sélectionner
/srv/http/:
total 16
drwxrwxr-x 3 http http 4096 10 juil. 04:18 .
drwxr-xr-x 5 root root 4096 9 juil. 02:26 ..
-rwxrw-r-- 1 http http 21 10 juil. 03:21 index.php
drwxrwxr-x 2 http http 4096 10 juil. 02:21 matomo
/srv/http/matomo/:
total 12
drwxrwxr-x 2 http http 4096 10 juil. 02:21 .
drwxrwxr-x 3 http http 4096 10 juil. 04:18 ..
-rwxrw-r-- 1 http http 21 10 juil. 02:21 index.php
Re: [nginx] File not found. (résolu)
Publié : lun. 10 juil. 2023, 16:46
par benjarobin
C'est une énorme faille de sécurité de donner les droits http aux fichiers de ton serveur !
Pour les fichiers qui doivent être lus par php/nginx alors les droits le plus sécurisé est root:root en mode 644.
Uniquement pour les dossiers, où le code php peut aller y écrire, ont besoins d'appartenir à http:http.
Re: [nginx] File not found. (résolu)
Publié : lun. 10 juil. 2023, 16:57
par ignace72
benjarobin a écrit : ↑lun. 10 juil. 2023, 16:46
C'est une énorme faille de sécurité de donner les droits http aux fichiers de ton serveur !
Pour les fichiers qui doivent être lus par php/nginx alors les droits le plus sécurisé est root:root en mode 644.
Uniquement pour les dossiers, où le code php peut aller y écrire, ont besoins d'appartenir à http:http.
Pourquoi alors les permissions sont par défaut http sur Manjaro et www-data sur Debian ?
Mettre par défaut une énorme faille de sécurité, c’est commun dans les distrib ?
Re: [nginx] File not found. (résolu)
Publié : lun. 10 juil. 2023, 18:28
par benjarobin
Je ne pense pas que par défaut le dossier /srv/http/ appartienne par défaut à l'utilisateur http.
Il faut que le serveur web (nginx, apache, php) tourne avec un utilisateur ayant des droits limités, c'est pour cela que ces processus sont exécutés avec par exemple l'utilisateur http ou www-data. Mais il ne faut pas que ces processus puissent modifier les fichiers du serveur Web : C'est une faille de sécurité.
Re: [nginx] File not found. (résolu)
Publié : lun. 10 juil. 2023, 18:41
par ignace72
benjarobin a écrit : ↑lun. 10 juil. 2023, 18:28
Je ne pense pas que par défaut le dossier /srv/http/ appartienne par défaut à l'utilisateur http.
Il faut que le serveur web (nginx, apache, php) tourne avec un utilisateur ayant des droits limités, c'est pour cela que ces processus sont exécutés avec par exemple l'utilisateur http ou www-data. Mais il ne faut pas que ces processus puissent modifier les fichiers du serveur Web : C'est une faille de sécurité.
Ben si le serveur web ne peut pas modifier les fichiers, comment fais-tu pour modifier le contenu ?
Notamment : ajouter une photo ou une vidéo dans un article !
Ou bien l’extension de sauvegarde qui n’a pas les droits pour enregistrer les archives, ça va fonctionner moins bien.
Enfin, c’est comme cela que je comprends la chose.
Il est aussi possible que j’aie tout faux.
Re: [nginx] File not found. (résolu)
Publié : lun. 10 juil. 2023, 18:45
par papajoke
salut
Légèrement modifié :
ignace72 a écrit : ↑lun. 10 juil. 2023, 16:57
Pourquoi alors les permissions sont par défaut <MONLOGIN> ?
Mettre par défaut une énorme faille de sécurité, c’est commun dans les distrib ?
C'est exactement ce que tu as écrit
Il faut voir http comme l'utilisateur qui va visiter ton site, heureusement qu'il ne peut pas modifier le site/l'application !
Eventuellement, par exemple si on permet l'upload ou on va créer des logs, sauvegardes,... alors il faut créer un sous-répertoire accessible en écriture pour http, tu peux voir cela comme son home.
Cela est toujours bien précisé dans la doc à la partie installation si un ou deux sous-répertoires en ont besoin. On verrouille au maximum puis, on ouvre au minimum
Re: [nginx] File not found. (résolu)
Publié : lun. 10 juil. 2023, 19:07
par ignace72
papajoke a écrit : ↑lun. 10 juil. 2023, 18:45
salut
Légèrement modifié :
ignace72 a écrit : ↑lun. 10 juil. 2023, 16:57
Pourquoi alors les permissions sont par défaut <MONLOGIN> ?
Mettre par défaut une énorme faille de sécurité, c’est commun dans les distrib ?
C'est exactement ce que tu as écrit
Il faut voir http comme l'utilisateur qui va visiter ton site, heureusement qu'il ne peut pas modifier le site/l'application !
Eventuellement, par exemple si on permet l'upload ou on va créer des logs, sauvegardes,... alors il faut créer un sous-répertoire accessible en écriture pour http, tu peux voir cela comme son home.
Cela est toujours bien précisé dans la doc à la partie installation si un ou deux sous-répertoires en ont besoin. On verrouille au maximum puis, on ouvre au minimum
Oups la boulette.
Le problème, c’est que comme je passe par un CMS depuis 2016, il y a plein de répertoires qui sont modifiés.
Quand mon site était fait avec Bluefish, c’était plus facile.
Mais je me prépare à quitter Wordpress, donc il y a aussi cela à faire.
Re: [nginx] File not found. (résolu)
Publié : lun. 10 juil. 2023, 19:15
par papajoke
ignace72 a écrit : ↑lun. 10 juil. 2023, 19:07
il y a plein de répertoires qui sont modifiés.
Cela dépend entièrement de l'application et aussi de notre accès (si uniquement ftp, on est limité)
Par exemple
à l'install manuelle de ce forum, on change les droits en 3 - 4 et 7 pour quelques fichiers et répertoires. Oui, c'est un petit peu de travail
Re: [nginx] File not found. (résolu)
Publié : lun. 10 juil. 2023, 19:36
par ignace72
papajoke a écrit : ↑lun. 10 juil. 2023, 19:15
ignace72 a écrit : ↑lun. 10 juil. 2023, 19:07
il y a plein de répertoires qui sont modifiés.
Cela dépend entièrement de l'application et aussi de notre accès (si uniquement ftp, on est limité)
Par exemple
à l'install manuelle de ce forum, on change les droits en 3 - 4 et 7 pour quelques fichiers et répertoires. Oui, c'est un petit peu de travail
Le travail ne me fait pas peur, ce sont mes capacités qui s’amenuisent qui m’inquiète.