Bonjour, je suis entrain de suivre la formation Mise en pratique de la POO en PHP, et j'ai probablement un soucis de configuration de mon serveur web apache et/ou de PHP. Je rappelle que mon serveur tourne en virtuelle (vmware) sous CentOS 6.10. Le formateur utilise dans son cours utilise le serveur interne à PHP en lançant une commande similaire à :

php -S mondomaine.com:8000 -d display_errors=1 -t public/

Jusque là, tout marche correctement chez moi aussi. J'ai alors eu des soucis lorsque j'ai crée un VirtualHost pour exécuter mon application sans exécuter chaque fois la commande ci-dessus, surtout au moment je veux par exemple ouvrir le lien http://mondomaine.com/blog, je recois une Erreur 404.

Ce qui est configurer sur mon serveur

Fichier /etc/httpd/conf/http.conf

NameVirtualHost mondomaine.com:80

Fichier /etc/httpd/conf.d/mondomaine.conf

<VirtualHost mondomaine.com:80>
     DocumentRoot /home/user/public/
     ServerName mondomaine.com
     ServerAlias mondomaine.com
     DirectoryIndex index.html index.php
     ErrorLog logs/mondomaine-error_log
     CustomLog logs/mondomaine-access_log common
</VirtualHost>

Ce qui s'affiche sur mon navigateur

Lorsque j'ouvre le lien mondomaine.com/blog, j'obtiens une erreur 404.
Quelqu'un peut-il m'aider
Cordialement

8 réponses


MacBee
Réponse acceptée

Ajoute des fichiers .htaccess :

Un à la racine du site.
Voici son contenu :

RewriteEngine On
RewriteRule (.*) public/$1 [L]

L'autre dans le répertoire public.
Voici son contenu :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php/$1 [L]

Salut,

je pense que dans ton "DocumentRoot /home/user/public/" les dernier "/" est de trop.

J'ai essayé ce que tu m'as demandé benoure mais pas de changement. J'ai tout de même jeté un coup d'oeil dans les logs. Il ressort que lorsque j'ouvre le lien mondomaine.com, il n'ya pas de message d'erreur dans le log. Mais lorsque j'ouvre le lien mondomaine.com/blog, le message d'erreur suivant s'affiche: "File does not exist: /home/user/public/blog"

tu utilise un .htaccess ?

Non j'utilise pas un .htaccess

ton site pointe dans le dossier public.
Tu as mis en place un fichier index qui redirige ver les bon dossiers ?

En fait en suivant le cours Mise en pratique de la POO en PHP, il y a un fichier index.php qui se trouve dans le dossier public. Ce fichier marche correctement lorsque j'utilise le serveur interne de PHP en exécutant la commande php -S comme dans la description de mon problème.

Merci bien MacBee, tes configurations marche super bien