Laravel 4.2 services.json 文件在主机根目录下创建

Posted

技术标签:

【中文标题】Laravel 4.2 services.json 文件在主机根目录下创建【英文标题】:Laravel 4.2 services.json file is created in the root of the host 【发布时间】:2015-12-11 20:13:29 【问题描述】:

我已将 Laravel 5.1 项目转换为 Laravel 4.2,因为它需要在 php 5.4 上运行。 一切都很好,只是项目正在主机根目录中查找 services.json 文件。 我可以在根目录中创建这个文件,给它权限并且项目运行。但我认为这不是 services.json 文件所在的正确位置。由于我无法访问服务器上的根目录,因此此问题仍然存在。 在本地主机上,如果我运行 php artisan serve 并停止它,json 文件将在根目录中创建。但我仍然认为这是错误的地方。

我创建了一个普通的 Laravel 4.2 项目来查看差异,但我找不到任何差异。

是否可以让 Laravel 把这个文件放到项目的根目录下?

我会很高兴所有的答案。

谢谢

Error message:
ErrorException (E_WARNING)
HELP
Callstack information; navigate with mouse or keyboard using Ctrl+↑ or Ctrl+↓
Copy-to-clipboard button
Exception message and its type
Code snippet where the error was thrown
Server state information
Application provided context information
 ErrorException thrown with message "file_put_contents(/services.json): failed to open stream: Permission denied" Stacktrace: #8 ErrorException in /home/project/staging/bootstrap/compiled.php:4000 #7 Illuminate\Exception\Handler:handleError in <#unknown>:0 #6 file_put_contents in /home/project/staging/bootstrap/compiled.php:4000 #5 Illuminate\Filesystem\Filesystem:put in /home/project/staging/bootstrap/compiled.php:4279 #4 Illuminate\Foundation\ProviderRepository:writeManifest in /home/project/staging/bootstrap/compiled.php:4258 #3 Illuminate\Foundation\ProviderRepository:compileManifest in /home/project/staging/bootstrap/compiled.php:4222 #2 Illuminate\Foundation\ProviderRepository:load in /home/project/staging/vendor/laravel/framework/src/Illuminate/Foundation/start.php:210 #1 require in /home/project/staging/bootstrap/start.php:60 #0 require_once in /home/project/staging/public/index.php:35
file_put_contents(/services.json): failed to open stream: Permission denied
open: /home/project/staging/bootstrap/compiled.php

【问题讨论】:

PHP 5.4 已于两周前终止。现在在面向公众的服务器上运行是非常不安全和不负责任的。 我知道了,谢谢。虽然我仍然必须使用它。 【参考方案1】:

显然,当我将项目从 Laravel 5 转换为 4.2 时,我漏掉了一行。

app/config/app.php,清单未设置:

'manifest' => storage_path().'/meta',

【讨论】:

以上是关于Laravel 4.2 services.json 文件在主机根目录下创建的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 权限被拒绝 Centos 7

Composer - Forked Laravel 4.2 未安装

找不到类“PushManager”-Laravel 4.2

text 用于Laravel 4.2 #laravel的PHP 7.1加密器

从 4.1 升级到 4.2 后 Laravel 控制器路由中断

Laravel 升级到 4.2 - 需要 mcrypt 扩展