2015-12-09 3 views
0

J'essaie de faire en sorte que mon application laravel5.1 vive sur un hébergeur partagé, mais je n'y arrive pas, peu importe les efforts que j'essaie. ma structure hôte est donnée au this image. L'application laravel est sous le dossier de l'application et le contenu du dossier public de laravel coupé à public_html. au index.php public_html J'ai:Comment faire pour installer Laravel5.1 App sur SharedHost?

<?php 

/** 
* Laravel - A PHP Framework For Web Artisans 
* 
* @package Laravel 
* @author Taylor Otwell <[email protected]> 
*/ 

/* 
|-------------------------------------------------------------------------- 
| Register The Auto Loader 
|-------------------------------------------------------------------------- 
| 
| Composer provides a convenient, automatically generated class loader for 
| our application. We just need to utilize it! We'll simply require it 
| into the script here so that we don't have to worry about manual 
| loading any of our classes later on. It feels nice to relax. 
| 
*/ 

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

/* 
|-------------------------------------------------------------------------- 
| Turn On The Lights 
|-------------------------------------------------------------------------- 
| 
| We need to illuminate PHP development, so let us turn on the lights. 
| This bootstraps the framework and gets it ready for use, then it 
| will load up this application so that we can run it and send 
| the responses back to the browser and delight our users. 
| 
*/ 

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

/* 
|-------------------------------------------------------------------------- 
| Run The Application 
|-------------------------------------------------------------------------- 
| 
| Once we have the application, we can handle the incoming request 
| through the kernel, and send the associated response back to 
| the client's browser allowing them to enjoy the creative 
| and wonderful application we have prepared for them. 
| 
*/ 

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture() 
); 

$response->send(); 

$kernel->terminate($request, $response); 

Maintenant, je ne vois ni ma page d'index, ni regarder des erreurs dans /app/storage/logs/laravel.log.

par la façon dont mon .htaccess dans le contenu public_html est:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

</IfModule> 

Répondre

3

Créer un dossier Laravel dans votre copie de répertoire racine de toutes les données à ce dossier, sauf dossier public

puis copier toutes les données du dossier public dossier pubic_html

maintenant modifier votre index.php dans votre dossier public_html comme ceci:

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

/* 
|-------------------------------------------------------------------------- 
| Turn On The Lights 
|-------------------------------------------------------------------------- 
| 
| We need to illuminate PHP development, so let us turn on the lights. 
| This bootstraps the framework and gets it ready for use, then it 
| will load up this application so that we can run it and send 
| the responses back to the browser and delight our users. 
| 
*/ 

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

ensuite changer Config/database.php et insérer des données valides pour la connexion de base de données

First step

Second step

Third step

Good tutorial

+0

merci pour votre réponse mais ça n'a pas marché! il est toujours dit erreur interne sans aucun journal !! : | –

+0

hmm j'ai tout fait étape par étape et cela fonctionne pour moi sur godaddy. J'utilise aussi l'hébergement partagé – Adnan

+0

juste pour être sûr, comment les autorisations de stockage de laravel? il devrait être 775 (rwx rwx r-x). et avant de télécharger, assurez-vous qu'aucun php pré-compilé n'est parti, utilisez 'php artisan clear-compiled'. –

0

Bien que la réponse @Adnan peut fonctionner. Il est important de garder à l'esprit que Laravel n'a pas été développé pour fonctionner sur un hôte partagé. Le téléchargement du dossier d'application dans le répertoire racine exposera également les fichiers de configuration.

Ceci est un sérieux problème de sécurité et doit être évité!

Seul le contenu du dossier public (et/ou des ressources si la vue est présente) doit se trouver dans le répertoire racine. Tous les autres fichiers doivent être placés en dehors de la racine Web. Je suis également conscient que ce n'est pas si facile à faire que semble l'être. Mais de nos jours la sécurité de votre annonce vos données clients est plus importante que cela!

C'est triste, vous pouvez faire ce que vous voulez!

Espérons que tout le monde a un bon Noël!

+0

Merci de votre attention. Donc vous dites que déplacer le contenu du dossier laravel vers un dossier imbriqué de Laravel? comme/laravel/app1? –

+0

Je vois sur l'image que vous avez posté que les fichiers de l'application Laravel sont en dehors du public_html, donc je suppose qu'ils sont également en dehors de la racine web.Votre fichier d'index est dans le dossier public_html et c'est également très bien. Maintenant, la partie difficile est de laisser les fichiers fonctionner ensemble comme prévu. Ce n'est pas si facile à faire et ne peut pas être expliqué ici. Je vous suggère de faire des recherches sur google et de voir si vous pouvez trouver quelque chose. Je peux vous orienter vers certains d'entre eux: https://laracasts.com/discuss/channels/general-discussion/where-do-you-set-public-directory-laravel-5. – Franco