Recherche…


Remarques

Pour obtenir plus d'informations sur le déploiement du projet Laravel sur l'hébergement partagé, visitez ce dépôt Github.

Application Laravel 5 sur l'hébergement partagé sur un serveur Linux

Par défaut, le dossier public du projet Laravel expose le contenu de l'application qui peut être demandé de n'importe où par n'importe qui, le reste du code de l'application est invisible ou inaccessible à quiconque sans les autorisations appropriées.

Après avoir développé l'application sur votre machine de développement, celle-ci doit être transmise à un serveur de production pour pouvoir y accéder via Internet, où que vous soyez.

Pour la plupart des applications / sites Web, le premier choix consiste à utiliser le package d'hébergement partagé de fournisseurs de services d'hébergement tels que GoDaddy, HostGator, etc., principalement en raison de leur faible coût.

note : vous pouvez demander à votre fournisseur de modifier manuellement document_root , il vous suffit donc de télécharger votre application Laravel sur le serveur (via FTP), de demander le remplacement de root par {app} / public et vous devriez être bon.

De tels packs d’hébergement partagés ont toutefois des limitations en termes d’accès aux terminaux et d’autorisations de fichiers. Par défaut, il faut télécharger son application / code dans le dossier public_html de son compte d'hébergement partagé.

Donc, si vous voulez télécharger un projet Laravel sur un compte d'hébergement partagé, comment le feriez-vous? Devez-vous télécharger l'application entière (dossier) dans le dossier public_html sur votre compte d'hébergement partagé? - Certainement NON

Parce que tout dans le dossier public_html est accessible "publiquement, c'est-à-dire par quiconque", ce qui constituerait un gros risque pour la sécurité.

Étapes pour télécharger un projet sur un compte d'hébergement partagé - la méthode Laravel

Étape 1
Créez un dossier appelé laravel (ou tout ce que vous voulez) au même niveau que le dossier public_html .

Eg:  
/
|--var  
    |---www
        |----laravel       //create this folder in your shared hosting account
        |----public_html  
        |----log  

Étape 2
Copiez tout sauf le dossier public de votre projet laravel (sur la machine de développement) dans le dossier laravel (sur l'hôte du serveur - compte d'hébergement partagé).
Vous pouvez utiliser:

  • C-panel: qui serait l'option la plus lente
  • Client FTP: comme FileZilla pour vous connecter à votre compte d'hébergement partagé et transférer vos fichiers et dossiers via le téléchargement FTP
  • Map Network Drive: vous pouvez également créer un lecteur réseau mappé sur votre machine de développement pour vous connecter au dossier racine de votre compte d'hébergement partagé à l'aide de l'adresse " ftp: // nom-de-votre-domaine ".

Étape 3
Ouvrez le dossier public de votre projet laravel (sur la machine de développement), copiez tout et collez-le dans le dossier public_html (sur l'hôte du serveur - compte d'hébergement partagé).
Étape 4
Ouvrez maintenant le fichier index.php dans le dossier public_html du compte d'hébergement partagé (dans l'éditeur cpanel ou tout autre éditeur connecté) et:

Changement:

require __DIR__.'/../bootstrap/autoload.php';   

À:

require __DIR__.'/../laravel/bootstrap/autoload.php';  

Et changer:

$app = require_once __DIR__.'/../bootstrap/app.php';

À:

$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

Sauver et fermer.

Étape 5
Allez maintenant dans le dossier laravel (sur le laravel hébergement partagé) et ouvrez le fichier server.php
Changement

require_once __DIR__.'/public/index.php';

À:

require_once __DIR__.'../public_html/index.php';  

Sauver et fermer.

Étape 6
Définissez les autorisations de fichiers pour le dossier laravel/storage (de manière récursive) et tous les fichiers, sous-dossiers et fichiers qui s'y laravel/storage sur le compte d'hébergement partagé - serveur sur 777 .
Remarque: Soyez prudent avec les autorisations de fichier dans Linux, elles sont comme une épée à double tranchant, si elles ne sont pas utilisées correctement, elles peuvent rendre votre application vulnérable aux attaques. Pour comprendre les permissions des fichiers Linux, vous pouvez lire https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions

Étape 7

Comme le fichier .env du serveur local / de développement est ignoré par git et qu'il doit être ignoré car il possède toutes les variables d'environnement, y compris APP_KEY, il ne doit pas être exposé au public en le poussant dans les référentiels. Vous pouvez également voir que le fichier .gitignore a .env mentionné, il ne sera donc pas téléchargé sur les référentiels.

Après avoir suivi toutes les étapes ci-dessus, créez un fichier .env dans le dossier laravel et ajoutez toute la variable d'environnement que vous avez utilisée du fichier .env du serveur local / de développement au fichier .env du serveur de production.

Même il y a des fichiers de configuration comme app.php , database.php dans le dossier config de l'application laravel qui définit ces variables par défaut dans le second paramètre de env() mais ne codifie pas les valeurs de ces fichiers car cela affectera la les fichiers de configuration des utilisateurs qui récupèrent votre référentiel. Il est donc recommandé de créer .env fichier .env manuellement!

Aussi laravel donne le fichier .env-example que vous pouvez utiliser comme référence.

C'est tout.

Maintenant, lorsque vous visitez l'URL que vous avez configurée en tant que domaine avec votre serveur, votre application laravel doit fonctionner exactement comme sur votre machine de développement localhost, alors que le code de l'application est sécurisé et inaccessible à toute personne sans autorisations de fichier appropriées.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow