J'essaie Laravel pour la première fois après avoir lu une annonce de la sortie de la version bêta de Laravel4.
J'ai suivi ces étapes j'ai installé composer et laravel avec toutes les dépendances dont il avait besoin. J'ai mis le laravel dans mon ~/public_html
répertoire - comme j'ai l'habitude de le faire avec Codeigniter, mais je pense que quelque chose ne va pas ici.
Si je pointe le navigateur vers http://localhost/~carlo/laravel-develop/
, il affiche simplement le contenu du répertoire.
Ensuite, alors que sur le système de fichiers, j'avais un laravel-develop/public
dossier, il n'est pas apparu sur le navigateur.
J'ai trouvé que changer le .htaccess
comme ça:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
a entraîné une erreur lorsque j'essaie d'accéder au dossier public. L'erreur:
ErrorException: Avertissement: file_put_contents (/ home/carlo/public_html/laravel-develop/app/config /../ storage/meta/services.json): échec de l'ouverture du flux: autorisation refusée dans/home/carlo/public_html/laravel- develop/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php line 77
un autre:
/home/carlo/public_html/laravel-develop/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php ligne 77
puis une longue liste d'erreurs. Le dernier est:
require_once ('/ home/carlo/public_html/laravel-develop/start.php') dans /home/carlo/public_html/laravel-develop/public/index.php ligne 53
Essayez de modifier les autorisations de dossier pour le dossier storage
à l'aide du terminal:
chmod -R 777 storage
Plus d'informations à ce sujet peuvent être trouvées ici .
Vos erreurs sont survenues car laravel n'a pas pu écrire dans le dossier app/storage. Le reste n'était qu'une trace de pile. Pour rendre le dossier de stockage accessible en écriture, cd dans votre dossier app puis exécutez :
chmod -R 777 storage
manière de production, complexité modérée pour les personnes qui ne connaissent pas Unix, mais plus sécurisé:
web
(groupadd web
)web
(supposez que votre utilisateur est cool_user
, alors exécutez usermod -a -G web cool_user
)web
(par exemple, sur CentOS php-fpm utilisez Apache
nom d'utilisateur, donc dans la plupart des cas, cela marchera: usermod -a -G web Apache
)web
récursivement (chgrp -R web /path/to/project/root/
)chmod -R g+w /path/to/project/root/
Apache
(ou d'autres) d'être accessibles depuis votre utilisateur, faites-leur recevoir le groupe propriété identique à leur dossier parent en définissant groupid bit récursivement sur le répertoire racine de votre projet (chmod -R g+s /path/to/project/root/
).Voila !.
manière rapide et sale, pour ceux qui ne se soucient pas de la sécurité et veulent le faire fonctionner à tout prix, non sécurisé:
chmod -R o=rwx /path/to/project/root/
Dans mon cas, j'ai résolu cette erreur en modifiant dans le fichier /app/config/app.php le paramètre par défaut:
'url' => 'http://localhost',
à mon URL d'hôte virtualhost personnalisé local:
'url' => 'http://mydomain.local',
Cela semblait être LE changement essentiel qui a résolu le problème (j'ai également modifié le dossier de stockage, comme suggéré ici)
j'espère que cela aide certains d'entre vous ..
ci-dessus, si vous utilisez un environnement de type virtualbox/vagrant VM, alors sur mon Mac, je devais émettre le chmod sur le système Host (mac) mais sur ma boîte Windows, il était bien émettre le chmod directement sur la machine virtuelle.
Vous devez lire la documentation d'installation:
http://laravel.com/docs/installation#configuration
Faites attention au bit ici:
Laravel requires one set of permissions to be configured - folders within app/storage require write access by the web server.
Il y a aussi d'autres choses utiles dans ce document, alors assurez-vous de tout lire.
Vous devez ajouter: Options + FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
J'ai eu le même problème, voici comment je le résous: Dans vos fichiers httpd-vhosts.conf vous devez ajouter les configurations à vos dossiers, c'est ce que j'ai dans le mien
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/home/carlospublic_html"
ServerName carlos.local
<Directory "/home/carlos/public_html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>>
La racine Web de votre serveur doit pointer vers le /public
dossier de votre installation Laravel. C'est là que le index.html
le fichier recide d'où Laravel est initialisé.
J'aime mieux cette méthode que de changer les autorisations en 777. Définissez Apache pour qu'il s'exécute comme vous.
Dans le terminal, tapez id
pour obtenir uid=123(Myname)
.
Ouvrez /etc/Apache2/httpd.conf et modifiez-le pour utiliser votre nom d'utilisateur.
<IfModule unixd_module>
User Myname
Group staff
</IfModule>
Retour au terminal: Sudo apachectl restart
Tout d'abord, cette réponse ici vous aidera avec les autorisations. Deuxièmement, vous devrez peut-être ajouter RewriteBase ~/carlo/public_html/laravel-develop
à votre .htaccess puisque vous l'exécutez à partir d'un répertoire personnel.
Vérification de l'exigence pour le LR4, votre serveur local doit avoir les éléments suivants: PHP> = 5.3.7 MCrypt PHP Extension
Sinon, échouera. Je suis également confronté à ce problème et je recherche maintenant un PHP et son extension pour mon XAMPP mis à jour.
Hé, j'ai aussi eu cette erreur et la modification des autorisations d'écriture ne semble pas fonctionner non plus. Il s'est avéré que je devais changer les paramètres d'utilisateur et de groupe dans le fichier httpd.conf d'Apache. Voici un bon tutoriel: Activer les autorisations d'écriture pour Apache intégré natif dans Mac OS X Lion