Debian 10 LAMP VMware apache2 le rooter ne marche

Résolu
nilson42 Messages postés 39 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
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

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
    1
  2. nilson42 Messages postés 39 Statut Membre
     
    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...
    0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Bonjour,

    Que donnent :

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


    Bonne chance
    0
  4. nilson42 Messages postés 39 Statut Membre
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Comme le montre ta configuration, le module php7.3 est disponible et activé donc je suppose que ça marche ?
    0