Téléchargement du projet Laravel sur le serveur Web
j'essaie de télécharger mon projet Laravel sur mon serveur web, mais mes deux dernières tentatives 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, cependant aucune de mes routes ne semble fonctionner. (Ils fonctionnent parfaitement sur localhost). Tout lance un 404
6 réponses
Non, mais vous avez deux options:
le plus facile est de télécharger tous les fichiers que vous avez dans ce répertoire (c.-à-d. le répertoire home de l'utilisateur cPanel), et de mettre le contenu de public dans public_html. De cette façon votre structure de répertoire sera quelque chose comme ceci (légèrement embrouillé 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 aussi éditer bootstrap/paths.php
pour pointer vers le bon répertoire public.
L'autre solution, si vous n'aimez pas avoir tous ces les fichiers dans ce répertoire' root 'seraient de les mettre dans leur propre répertoire (peut-être' laravel') qui est toujours dans le répertoire root et ensuite éditer les chemins pour fonctionner correctement. Vous aurez toujours besoin de mettre le contenu de public
public_html
, cependant, et cette fois éditez votre public_html/index.php
pour démarrer correctement l'application. Votre structure de chemise sera beaucoup plus rangé de cette façon (bien qu'il puisse y avoir quelques maux de tête avec des chemins en raison de toucher à la structure conçue du cadre plus):
/
.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 que vos fichiers/dossiers Laravel ne doivent pas être placés dans le répertoire racine.
par exemple, Si votre domaine est pointé public_html
répertoire alors tout le contenu doit être placé dans ce répertoire. Comment ? permettez-moi de vous dire
- copier tous les fichiers et dossiers ( y compris le dossier public ) en html public
- copier tout le contenu du dossier public et le coller dans la racine du document (i.e. public_html )
- supprimer le public dossier
ouvrez votre bootstrap / chemins.php et puis changé
'public' => __DIR__.'/../public',
en'public' => __DIR__.'/..',
et enfin dans index.php,
Modifier
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 mutualisé, cela peut vous aider.
hébergement Laravel sur l'hébergement partagé #1
hébergement Laravel sur l'hébergement partagé #2
si vous voulez PHP 5.4 ajouter cette ligne à votre .htaccess
enregistrez ou appelez votre hébergeur.
AddType application/x-httpd-php54 .php
tous vos fichiers Laravel doivent être à un seul endroit. Laravel est en train d'exposer son public du dossier au serveur. Ce dossier représente une sorte de contrôleur frontal pour l'ensemble de l'application. Selon votre configuration de serveur, vous devez pointer votre chemin de serveur vers ce dossier. Comme je peux le voir il y a www site sur votre image. www est le répertoire racine par défaut sur les machines Unix/Linux. Il est préférable de jeter un coup d'oeil à l'intérieur de la configuration du serveur et de la recherche pour l'emplacement du répertoire racine. Comme vous pouvez le voir, Laravel a déjà appelé le fichier .htaccess, avec une configuration Apache prête.
avait ce problème aussi et a découvert que la meilleure façon est de pointer votre domaine vers le dossier public et de laisser tout le reste comme ils sont.
VEUILLEZ VOUS ASSURER D'UTILISER LA BONNE VERSION DE PHP. Epargnez-vous un peu de stress :)
À Laravel 5.x il n'y a pas de paths.php
alors vous devriez éditer public/index.php
et changez ces lignes afin de pisser à votre bootstrap
répertoire:
require __DIR__.’/../bootstrap/autoload.php’;
$app = require_once __DIR__.’/../bootstrap/app.php’;