IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Symfony2 et phpBB, où placer le dossier ?


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 97
    Points : 40
    Points
    40
    Par défaut Symfony2 et phpBB, où placer le dossier ?
    Bonjour,

    Pour un site perso, je souhaite mettre en place un symfony2 et y incorporer un forum phpBB. Dans site est destiné à une guilde, il y aurait le forum et le symfon2 servirait à faire le portail, le calendrier des raids, l'affichage d'une page décrivant les membres de la guilde, une partie administration, etc.

    J'ai fait mon install symfony2 elle fonctionne correctement, par contre j'ai téléchargé mon dossier contenant le forum phpBB pris sur le site officiel, et je ne sait absolument pas quoi en faire...Au début j'avais pensé mettre le dossier tout simplement dans le dossier web de sf2, mais il redirige tout vers le contrôleur frontal app.php.

    Si quelqu'un a une "best practice" pour ce genre de chose je suis preneur car je suis un peu paumé là, merci d'avance ^^

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Tu ne peux pas créer un sous-répertoire pour le forum? (/forum), sous forme d'un lien symbolique sous web? Parce que je ne vois pas comment ces deux applications peuvent coexister dans le même répertoire.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 97
    Points : 40
    Points
    40
    Par défaut
    Salut Tsilefy et merci pour ton aide,

    J'ai déplacé le répertoire forum en dehors du dossier web, puis j'ai créé un lien symbolique dans web qui pointe vers ce répertoire forum, comme tu me l'as conseillé.

    Quand je tape /gotoforum (le nom de mon lien symbolique) j'ai malheureusement une 404, probablement parce que le htaccess redirige toutes les requêtes vers le contrôleur frontal app.php et il doit essayer de chercher une route nommée "gotoforum"

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    J'ai trouvé ceci ici. Ajoute ceci dans le htaccess de symfony:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^gotoforum/$ gotoforum/index.php [QSA,L]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 97
    Points : 40
    Points
    40
    Par défaut
    J'ai rajouté la ligne dans mon htaccess, j'ai toujours une 404 J'ai essayé de le placer un peu partout dans le htaccess, malheureusement il ne semble pas aimer :/

    Dommage j'y croyais ! Mon htaccess si ça peut aider, j'ai peut-être mal fait quelque chose :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    # Use the front controller as index file. It serves as a fallback solution when
    # every other rewrite/redirect fails (e.g. in an aliased environment without
    # mod_rewrite). Additionally, this reduces the matching process for the
    # start page (path "/") because otherwise Apache will apply the rewriting rules
    # to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
    DirectoryIndex app.php
     
    # Disabling MultiViews prevents unwanted negotiation, e.g. "/app" should not resolve
    # to the front controller "/app.php" but be rewritten to "/app.php/app".
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
     
    <IfModule mod_rewrite.c>
        RewriteEngine On
     
        RewriteRule ^gotoforum/$ gotoforum/index.php [QSA,L]
     
        # Determine the RewriteBase automatically and set it as environment variable.
        # If you are using Apache aliases to do mass virtual hosting or installed the
        # project in a subdirectory, the base path will be prepended to allow proper
        # resolution of the app.php file and to redirect to the correct URI. It will
        # work in environments without path prefix as well, providing a safe, one-size
        # fits all solution. But as you do not need it in this case, you can comment
        # the following 2 lines to eliminate the overhead.
        RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
        RewriteRule ^(.*) - [E=BASE:%1]
     
        # Sets the HTTP_AUTHORIZATION header removed by apache
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
     
        # Redirect to URI without front controller to prevent duplicate content
        # (with and without `/app.php`). Only do this redirect on the initial
        # rewrite by Apache and not on subsequent cycles. Otherwise we would get an
        # endless redirect loop (request -> rewrite to front controller ->
        # redirect -> request -> ...).
        # So in case you get a "too many redirects" error or you always get redirected
        # to the start page because your Apache does not expose the REDIRECT_STATUS
        # environment variable, you have 2 choices:
        # - disable this feature by commenting the following 2 lines or
        # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
        #   following RewriteCond (best solution)
        RewriteCond %{ENV:REDIRECT_STATUS} ^$
        RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
     
        # If the requested filename exists, simply serve it.
        # We only want to let Apache serve files and not directories.
        RewriteCond %{REQUEST_FILENAME} -f
        RewriteRule .? - [L]
     
        # Rewrite all other queries to the front controller.
        RewriteRule .? %{ENV:BASE}/app.php [L]
     
    </IfModule>
     
    <IfModule !mod_rewrite.c>
        <IfModule mod_alias.c>
            # When mod_rewrite is not available, we instruct a temporary redirect of
            # the start page to the front controller explicitly so that the website
            # and the generated links can still be used.
            RedirectMatch 302 ^/$ /app.php/
            # RedirectTemp cannot be used instead
        </IfModule>
    </IfModule>

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Oui, le souci c'est la ligne
    juste avant les règles de réecriture. Ça marchera si tu l'enlèves. Ton symfony devrait continuer à marcher sans problème (vérifie bien quand même) puisque c'est une ligne de "secours" au cas où modRewrite n'est pas disponible.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 97
    Points : 40
    Points
    40
    Par défaut
    J'ai commenté la ligne que tu m'as dit et c'est malheureusement toujours pareil, j'ai toujours une 404 sur /gotoforum

    J'ai du mal à imaginer que d'autres n'ont pas déjà eu ce problème, mais j'ai rien trouvé

    Jte remercie de ta persévérance en tout cas c'est vraiment cool de m'aider

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Désolé, j'ai fait exactement la manip chez moi et ça marche parfaitement. La seule différence c'est que je n'ai pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
    Vérifie aussi que le front controller de PHPBB est bien index.php

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 97
    Points : 40
    Points
    40
    Par défaut
    En fait je viens de remarquer que même sans toucher au .htaccess ça fonctionne depuis le début en allant sur /forum/index.php (j'ai renommé le lien symbolique en forum)

    C'est juste la redirection de /forum vers /forum/index.php qui ne fonctionne pas. Pourtant j'ai bien la ligne : RewriteRule ^forum/$ forum/index.php [QSA,L]

    On y est presque !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    # Use the front controller as index file. It serves as a fallback solution when
    # every other rewrite/redirect fails (e.g. in an aliased environment without
    # mod_rewrite). Additionally, this reduces the matching process for the
    # start page (path "/") because otherwise Apache will apply the rewriting rules
    # to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
    DirectoryIndex app.php
     
    # Disabling MultiViews prevents unwanted negotiation, e.g. "/app" should not resolve
    # to the front controller "/app.php" but be rewritten to "/app.php/app".
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
     
    <IfModule mod_rewrite.c>
        RewriteEngine On
     
        RewriteRule ^forum/$ forum/index.php [QSA,L]
     
        # Determine the RewriteBase automatically and set it as environment variable.
        # If you are using Apache aliases to do mass virtual hosting or installed the
        # project in a subdirectory, the base path will be prepended to allow proper
        # resolution of the app.php file and to redirect to the correct URI. It will
        # work in environments without path prefix as well, providing a safe, one-size
        # fits all solution. But as you do not need it in this case, you can comment
        # the following 2 lines to eliminate the overhead.
        RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
        RewriteRule ^(.*) - [E=BASE:%1]
     
        # Sets the HTTP_AUTHORIZATION header removed by apache
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
     
        # Redirect to URI without front controller to prevent duplicate content
        # (with and without `/app.php`). Only do this redirect on the initial
        # rewrite by Apache and not on subsequent cycles. Otherwise we would get an
        # endless redirect loop (request -> rewrite to front controller ->
        # redirect -> request -> ...).
        # So in case you get a "too many redirects" error or you always get redirected
        # to the start page because your Apache does not expose the REDIRECT_STATUS
        # environment variable, you have 2 choices:
        # - disable this feature by commenting the following 2 lines or
        # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
        #   following RewriteCond (best solution)
        RewriteCond %{ENV:REDIRECT_STATUS} ^$
        RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
     
        # If the requested filename exists, simply serve it.
        # We only want to let Apache serve files and not directories.
        RewriteCond %{REQUEST_FILENAME} -f
        RewriteRule .? - [L]
     
        # Rewrite all other queries to the front controller.
        RewriteRule .? %{ENV:BASE}/app.php [L]
     
    </IfModule>
     
    <IfModule !mod_rewrite.c>
        <IfModule mod_alias.c>
            # When mod_rewrite is not available, we instruct a temporary redirect of
            # the start page to the front controller explicitly so that the website
            # and the generated links can still be used.
            RedirectMatch 302 ^/$ /app.php/
            # RedirectTemp cannot be used instead
        </IfModule>
    </IfModule>

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 97
    Points : 40
    Points
    40
    Par défaut
    Resalut, je viens aux nouvelles Je n'ai toujours pas réussi à faire la redirection

    J'ai aussi regardé pour share les sessions de phpBB dans mon app sf2 mais j'ai un peu de mal...J'avais trouvé ce bundle :
    https://github.com/phpbb/PhpbbSessionsAuthBundle

    Malheureusement il est en cours de développement et n'a pas encore de doc :/

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Arf. C'est un problème lié à phpBB. Je viens de regarder le htaccess (de la version 3.1) et le front controller n'est pas index.php mais app.php. Donc, il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^forum/$ forum/app.php [QSA,L]
    Et n'oublie pas de supprimer la ligne DirectoryIndex et mod_negotiation.

    Sinon, pour le sessions bundle, bienvenue dans l'open source: beaucoup de code, mais peu de documentation :-(

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 97
    Points : 40
    Points
    40
    Par défaut
    Oui en effet ils sont en train de redévelopper le forum pour y intégrer des composants Symfony2, normal qu'ils aient app.php, j'aurais dû y penser ^^

    Concernant la redirection elle ne se fait toujours pas J'ai pourtant essayé de le mettre un peu partout dans le htaccess et j'ai bien commenté les lignes que tu m'as demandé de commenter :/

    Au final j'ai fait une redirection avec Symfony :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    forum_redirection:
        pattern: /forum/
        defaults:
            _controller: FrameworkBundle:Redirect:urlRedirect
            path: /forum/index.php
            permanent: true
     
    forum_redirection2:
        pattern: /forum
        defaults:
            _controller: FrameworkBundle:Redirect:urlRedirect
            path: /forum/index.php
            permanent: true

    Ca marche super, mais j'aurais préféré le faire proprement avec le htaccess, si t'as d'autres idées n'hésite pas :/




    Sinon concernant le bundle, je suis allé poster directement sur le forum anglais de phpBB, un des dev du bundle m'a répondu que le bundle était en cours de développement car ils en ont aussi besoin sur le site officiel de phpBB. Semblerait que le bundle fasse exactement ce que j'aimerais faire.
    Du coup je pense que je vais faire une solution provisoire en attendant qu'ils sortent leur bundle, j'ai pas le choix

    https://www.phpbb.com/community/view...4621#p14134621

Discussions similaires

  1. Je n'arrive pas à placer un dossier dans les favoris
    Par PascalROY dans le forum Windows 7
    Réponses: 5
    Dernier message: 24/09/2010, 16h13
  2. Apache sous Ubuntu : où placer le dossier du site ?
    Par kanaziwok dans le forum Apache
    Réponses: 2
    Dernier message: 27/03/2010, 14h34
  3. Comment placer les dossiers de téléchargement par ftp?
    Par floctc dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 24/03/2010, 15h03
  4. Placer une image dans un dossier où qu'elle soit
    Par st0nky dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2005, 21h22
  5. Réponses: 2
    Dernier message: 04/10/2005, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo