我从FTP中提取了一个客户的项目,web的结构如下:
- error_docs
- httpdocs(存储Laravel文件的地方)
- 原木
所以我将 httpdocs 中的文件拉到一个文件夹中,并相应地更新了homestead.yaml
和hosts
文件,一切正常,就像在网站上一样。
我面临的问题是文件夹结构与我在 Laravel 上习惯的有所不同,并且缺少composer.json
,作为副作用,我无法例如创建新的控制器。
[ErrorException]
file_get_contents(/home/vagrant/Code/my_project/composer.json): failed to open stream: No such file or directory
如果我手动创建一个,我无法制作composer update
或类似的东西,因此控制器永远不会在项目中注册,就好像我从未创建过它一样。
我尝试运行一个composer init
然后composer update
这会导致删除所有依赖项,并使项目崩溃。
有谁知道我该如何解决问题?
编辑:
该项目的公共文件夹也是空的,所以我最终像这样映射 homestead.yaml:
- map: project.dev
to: /home/vagrant/Code/my_project
编辑2:
刚刚发现这是从网络上购买的模板...仍然没有更新
所以你基本上是从共享主机下载了一个项目,对吗?
向您的客户询问有关源代码控制/版本控制工具(如 Git)的信息,如果他们使用工具并从存储库下载项目。
此外,不要运行composer update
而是运行composer install
,如果将项目与供应商文件一起下载,则无需安装依赖项或更新它们。
转到 laravel 的 github 存储库并下载默认的 composer.json 文件,以便您可以自动加载类和文件。
公用文件夹很可能为空,因为共享主机使用 public_html 作为默认文件夹。将每个映射到它,并将 laravel 应用程序中的代码更改为指向public_html。
Laravel不支持共享主机,但是只有当您在该共享主机服务器/控制台/cpanel上有可用的作曲家时,您才能破解它并使其成为可能,因为某些共享主机太有限了。
如果您必须为服务器访问等额外支持付费,则最好使用VPS的DigitalOcean,并且在那里您可以更好地访问服务器。