阅读Laravel4测试版发布的公告后我试图Laravel首次。
我跟着这些步骤我安装作曲家和laravel与所有它需要的依赖关系。 我把我的laravel里面~/public_html
目录-因为我已经习惯用笨做到这一点,但我认为什么是错在这里。
如果我点到浏览器http://localhost/~carlo/laravel-develop/
,它只是显示目录的内容。
然后,在文件系统上的我有一个laravel-develop/public
文件夹中,并没有出现在浏览器中。
我发现,改变.htaccess
这样的:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
导致一个错误,当我尝试访问的公用文件夹。 错误:
ErrorException:警告:file_put_contents(/家/卡罗/的public_html / laravel-开发/应用/配置/../存储/元/ services.json):未能打开流:权限被拒绝的/ home /卡罗/的public_html / laravel-开发/销售商/ laravel /框架/ SRC /照亮/文件系统/ Filesystem.php线77
另一个:
/home/carlo/public_html/laravel-develop/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php线77
那么错误一长串。 最后一个是:
require_once( '/家庭/卡罗/的public_html / laravel-开发/ start.php')在/home/carlo/public_html/laravel-develop/public/index.php线53
尝试更改文件夹权限的storage
使用终端的文件夹:
chmod -R 777 storage
在这个问题上更多信息,可以发现在这里 。
你的失误造成,因为laravel无法写入应用程序/存储文件夹。 剩下的只是一个堆栈跟踪。 为了使存储文件夹可写,cd到你的应用程序文件夹,然后运行:
chmod -R 777 storage
生产方式 ,温和的人不熟悉Unix的,但更安全的复杂性:
- 走在超级用户模式(须藤-s或SU)。
- 创建组
web
( groupadd web
) - 加入你的主要用户群
web
(假设你的用户是cool_user
,所以运行usermod -a -G web cool_user
) - PHP-FPM或Web服务器用户(如果PHP作为SAPI模块)添加到
web
组(例如,在CentOS PHP-FPM利用apache
用户名,所以在大多数情况下,这将工作: usermod -a -G web apache
) - 你的项目根目录下组所有者更改为
web
递归( chgrp -R web /path/to/project/root/
) - 授予递归写权限组(
chmod -R g+w /path/to/project/root/
- 可选为了让所有新创建的
apache
(或其他)用户文件和文件夹从你的用户访问,让他们接收组拥有相同的父文件夹在您的项目的根目录递归设置的groupid位( chmod -R g+s /path/to/project/root/
)。
瞧!
快速而肮脏的方式 ,对于那些谁不关心安全性,并希望使其工作在任何费用, 不可靠 :
- 走在超级用户模式(须藤-s或SU)。
- 授予递归完全权限(读,写,执行)为所有用户(
chmod -R o=rwx /path/to/project/root/
在我来说,我在文件/app/config/app.php默认设置修改解决了这个错误:
'url' => 'http://localhost',
我的本地定制虚拟主机的主机URL:
'url' => 'http://mydomain.local',
这似乎是解决问题的根本转变(我也chmod'ed存储文件夹,这里建议)
希望这有助于一些你..
进一步上面,如果您使用的是VirtualBox虚拟/流浪汉VM环境类型,然后在我的Mac,我需要发出主机(MAC)系统上,但在我的Windows框中输入chmod,这是很好的VM direcly发出CHMOD 。
您需要添加:选项+的FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
您需要仔细阅读安装文档:
http://laravel.com/docs/installation#configuration
注意这里的位:
Laravel requires one set of permissions to be configured - folders within app/storage require write access by the web server.
还有其他的东西,这就是该文件中有用的,所以请您务必阅读这一切。
我有同样的问题,这是我如何解决这个问题:在你的httpd-vhosts.conf文件,你需要配置添加到您的文件夹,这就是我在我的
<VirtualHost *:80>
ServerAdmin your@mail.com
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>>
您的服务器的根目录应指向/public
您Laravel安装的文件夹中。 这就是index.html
文件从那里Laravel被初始化recides。
首先, 在这里这个答案会帮助你的权限。 其次,你可能需要添加RewriteBase ~/carlo/public_html/laravel-develop
,因为你跑出来一个主目录到你的.htaccess。
嘿,我得到这个错误太和更改写入权限似乎没有任何工作。 原来,我需要改变Apache的httpd.conf文件中的用户和组的设置。 这里有一个很好的教程吧: 启用写入权限对原生内置的Apache在Mac OS X狮子
检查的要求为LR4,本地服务器必须有这些:PHP> = 5.3.7 mcrypt的PHP扩展
否则,将失败。 我也面临这样的麻烦,现在正在寻找一个更新的PHP和我的XAMPP扩展。
我喜欢这种方法不是改变权限为777集的Apache为你更好地运行。
在终端类型id
来获得uid=123(Myname)
打开/etc/apache2/httpd.conf和编辑它使用您的用户名。
<IfModule unixd_module> User Myname Group staff </IfModule>
返回到终端: sudo apachectl restart
我就遇到了这个问题,几分钟回来,使用sudo搭配chmod -R 777存储似乎有助于使存储/元/ services.json写。 我想补充一下大家一直说。 这为我工作。