J'essaie de télécharger mon projet Laravel sur mon serveur Web, mais mes deux tentatives précédentes ont été infructueuses. Je crois que je ne télécharge pas les fichiers au bon endroit.
Ceci est la structure de mon serveur web ->
Ai-je raison de dire que je dois télécharger TOUS mes fichiers laravel dans public_html?
Voici le répertoire de mon projet Laravel:
EDIT: J'ai maintenant ajouté tous les fichiers dans le dossier racine et public dans public_html, mais aucun de mes itinéraires ne semble fonctionner. (Ils fonctionnent parfaitement sur localhost). Tout jette un 404
Non, mais vous avez plusieurs options:
Le plus simple est de télécharger tous les fichiers que vous avez dans le répertoire dans lequel vous vous trouvez (c'est-à-dire le répertoire de base de l'utilisateur cPanel) et de placer le contenu de public dans public_html. De cette façon, votre structure de répertoire ressemblera à ceci (légèrement désordonné mais cela fonctionne):
/
.composer/
.cpanel/
...
app/ <- your laravel app directory
etc/
bootstrap/ <- your laravel bootstrap directory
mail/
public_html/ <- your laravel public directory
vendor/
artisan <- your project's root files
Vous devrez peut-être également modifier bootstrap/paths.php
pour qu'il pointe vers le bon répertoire public.
L'autre solution, si vous n'aimez pas avoir tous ces fichiers dans ce répertoire «racine», serait de les mettre dans leur propre répertoire (peut-être «laravel») qui est toujours dans le répertoire racine, puis de modifier les chemins pour qu'ils fonctionnent correctement. Vous devrez tout de même mettre le contenu de public
dans public_html
et modifier cette fois votre public_html/index.php
pour amorcer correctement l'application. Votre structure de dossiers sera beaucoup plus ordonnée de cette façon (bien qu'il puisse y avoir quelques maux de tête avec des chemins dus à la modification de la structure conçue par le framework):
/
.composer/
.cpanel/
...
etc/
laravel/ <- a directory containing all your project files except public
app/
bootstrap/
vendor/
artisan
mail/
public_html/ <- your laravel public directory
Je crois - vos fichiers/dossiers Laravel ne doivent pas être placés dans le répertoire racine.
par exemple. Si votre domaine est pointé sur le répertoire public_html
, alors tout le contenu doit être placé dans ce répertoire. Comment ? laisse moi te dire
Ouvrez votre fichier bootstrap/paths.php puis changez 'public' => __DIR__.'/../public',
en 'public' => __DIR__.'/..',
et enfin dans index.php,
Changement
require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/start.php';
en
require __DIR__.'/bootstrap/autoload.php'; $app = require_once __DIR__.'/bootstrap/start.php';
Votre application Laravel devrait fonctionner maintenant.
Si vous essayez d'héberger votre application Laravel sur un hébergement partagé, cela peut vous aider.
Hébergement de Laravel sur l'hébergement mutualisé # 1
Hébergement de Laravel sur l'hébergement partagé # 2
Si vous voulez PHP 5.4 ajoutez cette ligne à votre fichier .htaccess
ou appelez votre fournisseur d'hébergement.
AddType application/x-httpd-php54 .php
Tous vos fichiers Laravel doivent se trouver au même endroit ..__Laravel expose son dossier public au serveur. Ce dossier représente une sorte de contrôleur frontal pour toute l’application. En fonction de la configuration de votre serveur, vous devez pointer votre chemin d'accès sur ce dossier. Comme je peux le voir, il y a www site sur votre photo. www est le répertoire racine par défaut des machines Unix/Linux. Il est préférable d’examiner la configuration de votre serveur et de rechercher l’emplacement du répertoire racine. Comme vous pouvez le constater, Laravel a déjà un fichier appelé .htaccess , avec quelques configurations Apache prêtes.
Avait ce problème aussi et a découvert que le moyen le plus simple est de pointer votre domaine vers le dossier public et de tout laisser comme il est.
VEUILLEZ VOUS ASSURER D'UTILISER LA BONNE VERSION DE PHP. Epargnez-vous du stress :)
Dans Laravel 5.x, il n'y a pas de paths.php
vous devriez donc éditer public/index.php
et changer ces lignes pour pouvoir imprimer dans votre répertoire bootstrap
:
require __DIR__.’/../bootstrap/autoload.php’;
$app = require_once __DIR__.’/../bootstrap/app.php’;
pour plus d'informations, vous pouvez lire this article.