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.