Debian 10 LAMP VMware apache2 le rooter ne marche [Résolu]

Signaler
Messages postés
33
Date d'inscription
samedi 10 février 2018
Statut
Membre
Dernière intervention
18 mars 2020
-
mamiemando
Messages postés
29238
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 mars 2020
-
Bonjour,

J'ai installé mon site web dans
/var/www/html
, mais les
 includes, require 
ne marchent pas du tout.

Failed opening required (include_path='.:/usr/share/php')


J'utilise php composer qu'il ne reconnaît pas non plus. Le fichier
root
de mon site web redirige automatiquement l'utilisateur vers la page d'accueil, mais là, c'est une page vide.
On dirait qu'il ne reconnaît pas le chemin.
J'ai essayé bien sûr de mettre
AllowOverride all
dans apache2, mais j'obtiens une
Error 500
.

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'App\\src\\' => array($baseDir . '/src'),
    'App\\config\\' => array($baseDir . '/config'),
);


Composer.json
{
    "autoload": {
      "psr-4": {
        "App\\config\\":"config/",
        "App\\src\\": "src/"
      }
    }
  }
    


Voilà le fichier
index
:


require '../vendor/autoload.php';
session_start();
// 1 instansiation de la class rooter
// 2 appel à la méthode [/download/telecharger-34082922-run run] de de class Router
$rooter = new \App\config\Router();
$rooter = $rooter->run();


Bon alors le root est assez simple :
public function run()
    {   
        $route = $this->_request->getGet()->get('route');
        echo '<pre>';
        var_dump($this->_request->getPost(), $this->_request->getGet()->get('ticketId'));
        echo '</pre>';
        $session = $this->_request->getSession()->get('route');
        try{
            if(isset($_GET['route']))
            {
                if($_GET['route'] === 'ticket'){
                    $this->_frontController->ticket($this->_request->getGet()->get('ticketId')); //>get(nom de ID du lien de la page));
                
                } // route est passée à une méthode appelée  ajoutTicket du backController qui prend en paramètre la variable superglobale  $_POST
                elseif($_GET['route'] === 'ajoutTicket'){
                    $this->_backController->ajoutTicket($this->_request->getPost());
                }elseif($_GET['route'] === 'editTicket'){
                    $this->_backController->editTicket($this->_request->getPost(), $this->_request->getGet()->get('ticketId'));
                }elseif($_GET['route'] === 'suppTicket'){
                    $this->_backController->suppTicket($this->_request->getGet()->get('ticketId'));
                }   
                
                /*
                // route est passée à une méthode appelée  ajoutTicket du backController qui prend en paramètre la variable superglobale  $_POST
                elseif($_GET['route'] === 'suppTicket'){
                    $this->_backController->suppTicket($this->_request->getGet()->get('ticketId'));
                }*/
                else{
                    // aucune action définie : affichage de page 404 + redirect à la page principale
                    $this->_errorController->errorNotFound();
                }
            }
            else{ //affichage de la page principale
                $this->_frontController->home();
                
            }
        }
        catch (Exception $e)
        {   
            // aucune action définie : affichage de page 500 + redirect à la page principale
            $this->_errorController->errorServer();
        }

            }
        }

Configuration: VM sous Debian 10 LAMP

5 réponses

Messages postés
29238
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 mars 2020
6 804
Bonjour,

Je précise tout de suite que je ne connais composer. Pour résoudre ton problème il faut le décomposer

Réponse courte

Il faut distinguer une erreur de permission (accès interdit) qui signifie que le vhost est mal configuré de l'absence de module de php (rien ne s'affiche car les parties entre
<?php ... ?>
ne sont pas interprétables). Ici je suspecte que tu n'as pas installé et/ou activer le module php correspondant et/ou redémarré apache.

Réponse détaillée

1) Est-ce que tu parviens à afficher une page html ?

Exemple :
/var/www/index.html


<html>
<body>
html marche
</body>
</html>


... puis affiche http://localhost/index.html

2) Est-ce que tu parviens à afficher une exécuter php ?

Exemple :
/var/www/index.php


<html>
<body>
html marche
<?php
echo "php marche";
?>
</body>
</html>


... puis affiche http://localhost/index.php

3) Voir les problèmes spécifiques à composer (est-ce que la version de php installé permet d'utiliser composer, est-ce que la configuration apache -notamment les redirections- sont correctes, etc).

Sous debian un serveur LAMP s'installe comme suit :

sudo apt update
sudo apt install apache2 default-mysql-server libapache2-mod-php
sudo /etc/init.d/apache2 restart


Tu peux vérifier que le module php est installé. Retrouve son nom dans
/etc/apache2/mods-available/
. Tu verras par exemple
/etc/apache2/mods-available/php7.4.conf
et dans ce cas le nom du module est
php7.4
. Dans ce cas tu peux activer ce module avec :

sudo a2enmod php7.4


(Note que respectivement, le désactiver, avec
a2dismod
).

À ce stade, tout devrait marcher concernant les étapes 1 et 2. Reste avoir la fin, propre au site et plus au serveur lui-même.

Sur le même principe, les différents virtual hosts sont déclarés dans
/etc/apache2/sites-available
et s'activent / désactivent avec
a2ensite
et
a2dissite
. Là encore, il faut s'assurer que ton vhost est actif et que sa configuration est correct.

Bonne chance
Messages postés
33
Date d'inscription
samedi 10 février 2018
Statut
Membre
Dernière intervention
18 mars 2020

Re,

Merci pour tes réponses. Malheureusement, ça ne change rien, j'ai réinstallé une Debian 10 virtuelle et c'est le même problème. J'ai essayé sur une machine réelle Windows 10 avec xampp ou wamp et ça marche !! J'arrive à accéder à tous les liens, donc le problème ne vient pas de mon code mais du serveur apache2. Que ce soit le
.htaccess
ou les redirections du rooter (mon code) sur une machine lamp sous Vmware ou Virtualbox, ça ne marche pas.

Je crois que c'est le chemin qu'il ne reconnait pas ou n'arrive pas à accéder. Je ne sais pas comment résoudre ce problème...
Messages postés
29238
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 mars 2020
6 804
Bonjour,

Que donnent :

dpkg -l | grep apache2
ls -l /etc/apache2/mods-enabled


Bonne chance
Messages postés
33
Date d'inscription
samedi 10 février 2018
Statut
Membre
Dernière intervention
18 mars 2020

ii  apache2                       2.4.38-3+deb10u3            amd64        Apach              e HTTP Server
ii apache2-bin 2.4.38-3+deb10u3 amd64 Apach e HTTP Server (modules and other binary files)
ii apache2-data 2.4.38-3+deb10u3 all Apach e HTTP Server (common files)
ii apache2-utils 2.4.38-3+deb10u3 amd64 Apach e HTTP Server (utility programs for web servers)
ii libapache2-mod-php7.3 7.3.11-1~deb10u1 amd64 serve r-side, HTML-embedded scripting language (Apache 2 module)

total 0
lrwxrwxrwx 1 root root 36 nov. 28 21:41 access_compat.load -> ../mods-available/access_compat.load
lrwxrwxrwx 1 root root 28 nov. 28 21:41 alias.conf -> ../mods-available/alias.conf
lrwxrwxrwx 1 root root 28 nov. 28 21:41 alias.load -> ../mods-available/alias.load
lrwxrwxrwx 1 root root 33 nov. 28 21:41 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root root 33 nov. 28 21:41 authn_core.load -> ../mods-available/authn_core.load
lrwxrwxrwx 1 root root 33 nov. 28 21:41 authn_file.load -> ../mods-available/authn_file.load
lrwxrwxrwx 1 root root 33 nov. 28 21:41 authz_core.load -> ../mods-available/authz_core.load
lrwxrwxrwx 1 root root 33 nov. 28 21:41 authz_host.load -> ../mods-available/authz_host.load
lrwxrwxrwx 1 root root 33 nov. 28 21:41 authz_user.load -> ../mods-available/authz_user.load
lrwxrwxrwx 1 root root 32 nov. 28 21:41 autoindex.conf -> ../mods-available/autoindex.conf
lrwxrwxrwx 1 root root 32 nov. 28 21:41 autoindex.load -> ../mods-available/autoindex.load
lrwxrwxrwx 1 root root 30 nov. 28 21:41 deflate.conf -> ../mods-available/deflate.conf
lrwxrwxrwx 1 root root 30 nov. 28 21:41 deflate.load -> ../mods-available/deflate.load
lrwxrwxrwx 1 root root 26 nov. 28 21:41 dir.conf -> ../mods-available/dir.conf
lrwxrwxrwx 1 root root 26 nov. 28 21:41 dir.load -> ../mods-available/dir.load
lrwxrwxrwx 1 root root 26 nov. 28 21:41 env.load -> ../mods-available/env.load
lrwxrwxrwx 1 root root 29 nov. 28 21:41 filter.load -> ../mods-available/filter.load
lrwxrwxrwx 1 root root 27 nov. 28 21:41 mime.conf -> ../mods-available/mime.conf
lrwxrwxrwx 1 root root 27 nov. 28 21:41 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root root 34 nov. 28 21:50 mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
lrwxrwxrwx 1 root root 34 nov. 28 21:50 mpm_prefork.load -> ../mods-available/mpm_prefork.load
lrwxrwxrwx 1 root root 34 nov. 28 21:41 negotiation.conf -> ../mods-available/negotiation.conf
lrwxrwxrwx 1 root root 34 nov. 28 21:41 negotiation.load -> ../mods-available/negotiation.load
lrwxrwxrwx 1 root root 29 nov. 28 21:50 php7.3.conf -> ../mods-available/php7.3.conf
lrwxrwxrwx 1 root root 29 nov. 28 21:50 php7.3.load -> ../mods-available/php7.3.load
lrwxrwxrwx 1 root root 33 nov. 28 21:41 reqtimeout.conf -> ../mods-available/reqtimeout.conf
lrwxrwxrwx 1 root root 33 nov. 28 21:41 reqtimeout.load -> ../mods-available/reqtimeout.load
lrwxrwxrwx 1 root root 31 nov. 28 21:41 setenvif.conf -> ../mods-available/setenvif.conf
lrwxrwxrwx 1 root root 31 nov. 28 21:41 setenvif.load -> ../mods-available/setenvif.load
lrwxrwxrwx 1 root root 29 nov. 28 21:41 status.conf -> ../mods-available/status.conf
lrwxrwxrwx 1 root root 29 nov. 28 21:41 status.load -> ../mods-available/status.load
Messages postés
29238
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 mars 2020
6 804
Comme le montre ta configuration, le module php7.3 est disponible et activé donc je suppose que ça marche ?