Partage
  • Partager sur Facebook
  • Partager sur Twitter

Déploiement symfony sur hostinger

    4 septembre 2022 à 8:57:23

    Bonjour ça fais plusieurs jours que j'essaie de déployé mon site sur hostinger. 

    J'ai suivi la doc de symfony ça fonctionne en locale mais pas sur hostinger qui retour une erreur 403 donc j'ai ajouté un  .access à la racine public_html avec directoryindex dedans est la ça me dirige vers la page d'accueil sauf que le css et les autres page ne fonctionne pas. 

    Comment faire s'il vous plaît c'est urgent merci d'indiquer les étapes parce que leurs doc est éclaté a hostinger et bien-sûr ils sont pas à jour avec symfony on peux auto installé que la version 3 alors que laravel on peux auto installé la version 9 bref merci !! 

    • Partager sur Facebook
    • Partager sur Twitter
      4 septembre 2022 à 9:56:56

      Salut

      Est-ce qu'en te connectant par FTP tu as la possibilité de lister les dossiers "autour de" / au même niveau que public_html ?

      -
      Edité par Ymox 4 septembre 2022 à 9:57:57

      • Partager sur Facebook
      • Partager sur Twitter
        4 septembre 2022 à 13:26:56

        Le dossier public_html ce trouve dans domains/monsite.com/public_html/monsite/...

        Et j'ai acces au dossier autour de domains : config, filebrowser, local, logs, SSH, subversion, vendor et au fichier bash_history, profile composer.json composer.lock 

        Mais je ne sait pas ce que sait et a quoi ça sert 

        -
        Edité par Dchris5 4 septembre 2022 à 13:28:02

        • Partager sur Facebook
        • Partager sur Twitter
          4 septembre 2022 à 17:13:00

          Salut

          Tu peux nous monter le contenu de ton htaccess?

          • Partager sur Facebook
          • Partager sur Twitter

          Making functional apps for digital products @NEOTIC

          -

            4 septembre 2022 à 21:07:54

            Dans le .htaccess de symfony ( monsite/public/) :

                # Sets the HTTP_AUTHORIZATION header removed by Apache
                RewriteCond %{HTTP:Authorization} .+
                RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
            
                # Redirect to URI without front controller to prevent duplicate content
                # (with and without `/index.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 ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
            
                # If the requested filename exists, simply serve it.
                # We only want to let Apache serve files and not directories.
                # Rewrite all other queries to the front controller.
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteRule ^ %{ENV:BASE}/index.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 307 ^/$ /index.php/
                    # RedirectTemp cannot be used instead
                </IfModule>
            </IfModule>

            Et dans le .access du dossier public_html/ à coté du dossier monsite/ :

            DirectoryIndex monsite/public/index.php




            -
            Edité par Dchris5 4 septembre 2022 à 21:09:31

            • Partager sur Facebook
            • Partager sur Twitter
              5 septembre 2022 à 21:32:09

              Le dossier public_html ce trouve dans domains/monsite.com/public_html/monsite/...

              Si je comprends bien, tu as deux dossiers public_html ?


              Le plus simple dans ce genre de cas, c'est de mettre le contenu du dossier public dans public_html(sans renommer ni quoi que ce soit) et les autres dossiers à côté du dossier public_html. Pour ce qui est de la publication des assets, si on doit effectuer des scripts sur la machine de production, il y a un ou deux paramètres qui peuvent être renseignés dans composer.json.

              Ensuite, soit on a accès à la définition de l'hôte virtuel, soit comme il l'a déjà été fait, on installe symfony/apache-pack.

              Par contre, cumuler des .htaccess, ce n'est pas nécessairement le plus simple

              -
              Edité par Ymox 5 septembre 2022 à 21:40:52

              • Partager sur Facebook
              • Partager sur Twitter
                6 septembre 2022 à 11:56:45

                J'ai un seul dossier public_html dans lequel ce trouve mon projet symfony avec dedans le dossier public/ de symfony et un  .htaccess génère grâce au pack Apache. et à la racine de public_html j'ai un autre   . htaccess avec ce que j'ai déjà indiqué plus haut dedans. 

                Le problème viens sûrement des fichiers  .htaccess mais je mis connais pas trop dans ce domaine. Et la doc de hostinger ne parle pas de symfony

                • Partager sur Facebook
                • Partager sur Twitter
                  8 septembre 2022 à 10:07:49

                  Je relance parce que je suis toujours bloqué et j'aimerais publié la première version de mon site pour test avant demain.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 septembre 2022 à 0:25:02

                    Comme je l'ai dit, du moment que tu as accès au dossier au-dessus de public_html, c'est là qu'il serait mieux que soient les dossiers de ton projet plutôt que tous dans public_html. Et plus de dossier public, dont le contenu irait dans public_html, justement.

                    Voir cet autre message et y remplacer www par public_html pour la compréhension.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 septembre 2022 à 6:35:34

                      À d'accord merci! Je comprends mieux, je vais essayé ça après. Et au niveau des URL il y aura quelque chose à changer ou ça ça s'adapte tout seul ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 septembre 2022 à 9:41:14

                        D'après les informations de ce sujet, il ne devrait rien de plus à avoir à faire.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          9 septembre 2022 à 13:48:30

                          J'ai essayé ce que tu ma dis et ca me retourne cette erreur :

                          An exception has been thrown during the rendering of a template ("Asset manifest file "/home/user/domains/monsite.com/public/build/manifest.json" does not exist. Did you forget to build the assets with npm or yarn?").


                          Edit 1 :

                          Normal j'ai webpack encore et lui cherche public au lieu de public_html du coup il faut allez dans config/packages/webpack_encore.yaml et renommé ce qui doit l'être.

                          La page d'accueil s'affiche correctement mais quand je vais sur les autres pages j'ai une autre erreur  :

                          Warning: include(/home/user/domains/monside.com/vendor/composer/../doctrine/dbal/src/Driver/Middleware/AbstractDriverMiddleware.php): Failed to open stream: No such file or directory

                          -
                          Edité par Dchris5 9 septembre 2022 à 17:20:23

                          • Partager sur Facebook
                          • Partager sur Twitter
                            9 septembre 2022 à 15:14:27

                            Il ne faut pas juste modifier composer.json pour changer ça, il faut aussi changer le nom du dossier en local puis re-publier les assets pour les pousser (ou alors le faire directement sur le serveur).

                            A noter que le cache, par contre, on ne doit pas le pousser sur le serveur. Eventuellement les dossiers var/cache, mais en tout cas pas leur contenu.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              9 septembre 2022 à 17:30:51

                              J'ai rien modifié dans composer.json mais du coup je dois rechargé mon dossier composer en local et envoyé  le dossier vendor sur le serveur ? De quelle dossier tu parle quand tu dis "il faut aussi changer le nom du dossier en local" 

                              -
                              Edité par Dchris5 9 septembre 2022 à 21:55:52

                              • Partager sur Facebook
                              • Partager sur Twitter
                                10 septembre 2022 à 17:07:02 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


                                  10 septembre 2022 à 18:08:51

                                  Je pense qu'il y a un problème au niveau des informations que ta rentré pour la base de données. Vérifie qu'ils sont identiques. Et sinon ta fait comment pour installer ton projet ? Parce que moi j'ai toujours une erreur. Et tes sur quelle version de Symfony ?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    10 septembre 2022 à 18:37:30

                                    @Dchris5 Pour ton cas je te propose de faire comme suit:

                                    Déjà tu ne touche à aucun de tes fichier (composer, webpack encore) laisse les inchangés.

                                    Avant de publier ton code sur hostinger n'oublie pas de faire un yarn build sinon il ne trouvera pas le bon manifest.json

                                    Dans ton .htaccess tu fais la redirection des url vers public/index.php sauf les fichiers statics (js, css, images, etc.):

                                    <IfModule mod_rewrite.c>
                                        RewriteEngine On
                                    
                                        RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
                                        RewriteRule ^ %1 [L,NE,R=302]
                                    
                                        RewriteRule !\.(js|gif|JPG|JPEG|PNG|jpeg|jpg|png|webmanifest|webp|css|txt|svg|woff|woff2|ttf|map|ico)$ public/index.php [L]
                                        RewriteCond %{REQUEST_URI} !^/public/
                                        RewriteRule ^(.*)$ public/$1 [L]
                                    </IfModule>

                                    Met ton code source directement dans public_html de hostinger sans rajouter le dossier monsite, cela donne

                                    domains/monsite.com/public_html et dans ce dossier tu as ton code source (src, config, public, etc.).

                                    Si tu utilise ssh tu peux faire git clone git@github.com:user/monsite.git .


                                    Edit

                                    Ton .htaccess tu le mets à la racine du projet public_html/ et pas dans public/

                                    -
                                    Edité par bechir_ 10 septembre 2022 à 18:39:34

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Making functional apps for digital products @NEOTIC

                                    -

                                      10 septembre 2022 à 18:53:30

                                      D'accord merci pour ton aide et du coup je dois pas utilisé l'extension apache qui génère le .htaccess ? Je copie simplement mon code comme ta dis et j'ajoute à la racine le .htaccess que tu ma donné ? 


                                       Si j'utilise la commande git clone git@github.com:user/monsite.gite ca va génèré le dossier monsite, c'est pas grave pour le .htaccess ?

                                      -
                                      Edité par Dchris5 10 septembre 2022 à 18:57:36

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        10 septembre 2022 à 19:15:00

                                        @Dchris5 j'ai installée en local symfony ful et puis je les exporter avec FTP et la base je l'importer directement dans la base de donner du serveur comme un projet PHP normal. je suis débutant en symfony.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          10 septembre 2022 à 20:01:44

                                          D'accord merci pour l'info, ta ajouté un .htaccess aussi ? et au faite ta trouver la solution a ton problème ?

                                          -
                                          Edité par Dchris5 10 septembre 2022 à 20:04:07

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            10 septembre 2022 à 20:04:20

                                            Si tu utilise git clone tu dois specifier le nom du projet par défaut ça prend le nom monsite mais tu ajout un point (.) à la fin pour que ça ne génère pas le dossier mon site. (git clone git@github.com:user/monsite.git .) n'oublie pas le point à la fin.
                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Making functional apps for digital products @NEOTIC

                                            -

                                              10 septembre 2022 à 20:27:07

                                              D'accord je vais essayer tout ça après et je reviens dire quoi merci !

                                              Edit :

                                              Impeccable ça fonction en FTP mais en ssh j'ai eu une erreur, ça je regarderais par moi-même déjà la principale c'est que je peux test mon site merci à vous tous pour votre aide, j'espère que ce sujet en aidera d'autres qui sont aussi chez Hostinger.

                                              -
                                              Edité par Dchris5 11 septembre 2022 à 11:18:19

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                12 septembre 2022 à 23:01:12

                                                Ce n'est vraiment pas le plus sûr que de mettre tout le code dans le dossier public_html, parce qu'à moins de restreindre les accès, les fichiers qui ne devraient pas être disponibles directement (contrôleurs, entités, mais surtout configuration) risquent d'être accessibles…

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  14 septembre 2022 à 15:22:46

                                                  A mince merci pour l'information et donc je dois rajouté quelle règle dans le fichier .htaccess pour empêché l'accès ?
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    14 septembre 2022 à 18:28:47

                                                    Il n'ya aucun risque vu que tous les chemins urls sont rédigés vers public/index.php sauf les fichiers statistiques dans public/
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Making functional apps for digital products @NEOTIC

                                                    -

                                                      14 septembre 2022 à 22:49:34

                                                      Et si on veut fournir des fichiers à télécharger avec une extension spécifique, PDF à tout hasard, on doit l'ajouter dans le .htaccess pour éviter la redirection, non ?

                                                      Enfin, du moment que ça fait ce qu'on attend.

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        15 septembre 2022 à 9:13:51

                                                        D'accord et donc dans le cas de fichier à télécharger PDF ou image comme dis plus haut comment ca fonctionne ?

                                                        -
                                                        Edité par Dchris5 15 septembre 2022 à 9:14:09

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          16 septembre 2022 à 12:10:54

                                                          La ligne 7 du dernier code donné est à compléter avec les extensions souhaitées. Apparemment il faudrait faire attention à la casse.

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          Déploiement symfony sur hostinger

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown