为啥我不能查看这个 laravel 项目?
Posted
技术标签:
【中文标题】为啥我不能查看这个 laravel 项目?【英文标题】:Why can't I view this laravel project?为什么我不能查看这个 laravel 项目? 【发布时间】:2020-07-09 09:52:18 【问题描述】:诚然,我是 Laravel 和后端开发的新手,但我试图在我的浏览器中打开一个 Laravel 项目,却收到一条错误消息。我从一个与另一组开发人员合作的客户那里继承了这个项目,他们已经离开了,所以我独自一人试图找出问题所在。
第一个错误消息是:
**Warning:** require(C:\xampp\htdocs\vizzue\bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in **C:\xampp\htdocs\vizzue\bootstrap\autoload.php** on line **17**
**Fatal error:** require():Failed opening required 'C:\xampp\htdocs\vizzue\bootstrap/../vendor/autoload.php' (include_path='C:\xampp\php\PEAR') in **C:\xampp\htdocs\vizzue\bootstrap\autoload.php** on line **17**
为了尝试修复该错误(通过我在此处找到的解决方案),我在终端中运行 composer install
以尝试下载丢失的文件。这将之前的错误消息切换为Whoops, looks like something went wrong.
(不是很有帮助)。
因此,我在此处找到了更多建议,以获得针对我的问题的更详细错误,并在四个单独的标题下输出了一长串错误。
标题 1
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES) (SQL: select * from `sessions` where `id` = hA02gV6ShpNslkw0N8Wrgm8QmyA0ZxoXfCNHsVTK limit 1)
标题 2
PDOException
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)
标题 3
QueryException
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES) (SQL: select * from `sessions` where `id` = hA02gV6ShpNslkw0N8Wrgm8QmyA0ZxoXfCNHsVTK limit 1)
标题 4
PDOException
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)
我的 PHP 版本是:PHP 7.2.28
我的 Laravel 版本是:Laravel Framework 5.4.36
另外,我通过复制.env-example
文件创建了一个.env
。
编辑:
我在database/migrations
目录中找到了数据库信息,因此我确实拥有数据库文件。但是,我仍然有错误。我跑了php artisan generate:key
,这很好。但是当我运行php artisan migrate
时出现以下错误:
In Connection.php line 647:
could not find driver (SQL: select * from information_schema.tables where ta
ble_schema = homestead and table_name = migrations)
In Connector.php line 68:
could not find driver
【问题讨论】:
您的数据库凭据有误。检查你的 .env 文件! 我应该在问题中提到这一点,但我已经将 .env-example 复制到了 .env 文件中。数据库属性已经在我收到的项目中设置,但我没有在批量 laravel 文件中发送的数据库。这是造成问题的原因吗? 你能发布你的config/database.php
吗?我假设您已经 read the docs 配置您的数据库?
如果你在终端/控制台运行mysql --version
,你用的是什么版本?
【参考方案1】:
您应该配置您的 .env
文件以启用对您的数据库的 laravel 访问。如果您没有,只需复制.env.example
文件并将其重命名为.env
。
然后更改以下属性:
DB_DATABASE=YOUR_DATABASE_NAME
DB_USERNAME=USER_NAME
DB_PASSWORD=密码
然后你应该运行php artisan key:generate
来生成一个新的加密密钥
编辑
对于您的新问题,您应该运行composer update
,然后运行composer require doctrine/dbal
如果这样不行
您可能需要在 php.ini 文件中注释掉以下内容。
;extension=pdo_mysql.so
正如here所说的
【讨论】:
我应该在问题中提到这一点,但我已经将 .env-example 复制到了 .env 文件中。数据库属性已经在我收到的项目中设置,但我没有在批量 laravel 文件中发送的数据库。这是造成问题的原因吗?我已经运行了php artisan key:generate
命令,但仍然没有运气。
您已经运行php artisan migrate
为您的数据库创建所有表了吗?
php artisan migrate
给了我一系列其他问题。但是我没有与项目的其余部分一起发送的数据库(我从另一组我无法沟通的开发人员那里继承了该项目)。
我明白,但是您应该使用正确的名称创建一个新的数据库,然后运行迁移,然后再试一次,看看您是否可以通过第一个问题。发生此错误是因为您设置的属性有问题。确保 DB_DATABASE、DB_USERNAME、DB_PASSWORD 正确
我知道卢卡斯了!我刚刚通过 phpmyadmin 创建了一个数据库并更新了.env
中的属性。请查看更新后的问题!【参考方案2】:
首先您将 .env.example 的名称更改为 .env,然后在其中配置您的数据库名称设置。之后运行 composer install 来安装你的项目依赖项。确保您的网络服务器已启动并正在运行
【讨论】:
我应该在问题中提到这一点,但我已经将 .env-example 复制到了 .env 文件中。数据库属性已经在我收到的项目中设置,但我没有在批量 laravel 文件中发送的数据库。这是造成问题的原因吗?【参考方案3】:这是一个 laravel 项目的基本安装过程。我将尝试解释它们中的每一个,以便您能够自己找出错误。
获取源代码您首先需要获取应用程序的源代码。大多数时候它是通过 git 完成的。例如,您需要输入 git clone https://github.com/miracuthbert/saas-boilerplate.git yoursaasproject
来克隆托管在 github 上的存储库 here
安装依赖
通过键入转到您之前获得的源代码目录的根目录
cd projectname
。
laravel 框架使用 composer 作为它的依赖管理器。所以你需要安装它。 (你已经做了什么)
然后,从项目的根目录中,按相同顺序键入以下指令:
composer install
composer update
环境配置
laravel 框架的环境变量是通过一个 .env 文件来管理的。通常会提供一个名为 .env.example 的示例文件。您将在项目文件夹的根目录中找到它。假设您使用的是带有 bash 提示符的终端,请键入以下命令将 .env.example 复制到 .env 文件:
cp .env.example .env
获得新的 .env 文件后,输入
php artisan key:generate
在您的 .env 文件中生成安全密钥
根据您打算使用的数据库管理系统的类型,这里有一些特定的配置可以添加到您的 .env 文件中:
MySQL如果您选择 MySQL 作为 DBMS,请在 .env 文件中设置以下值:
DB_CONNECTION
DB_DATABASE
DB_USERNAME
DB_PASSWORD
homestead 是默认的 DB_USERNAME,localhost 是默认的数据库主机。本地主机完全可以在本地工作,但您需要将 DB_USERNAME 更改为具有相应密码的 DBMS 的实际用户。
Sqlite如果您使用 sqlite,请键入以下内容创建一个新的 sqlite 数据库:
`touch database/database.sqlite`
设置数据库后,输入以下命令来创建和填充表:
php artisan migrate --seed
您可能还需要编辑 .env 中的其他变量。 laravel 官方文档是你最好的伙伴。 据我所知,这是您需要做的。
至于驱动程序错误,这里有几个潜在的解决方案改编自 here 提出的类似问题的答案:
请务必在 app/config/database.php 中配置 'default' 键
对于 mysql,这将是 'default' => 'mysql',
如果您收到 [PDOException] 找不到驱动程序错误,请检查您是否安装了正确的 PHP 扩展。您需要安装并启用 pdo_mysql.so 和 mysql.so。有关如何执行此操作的说明因操作系统而异。
对于 Windows,mysql 扩展应该与官方 PHP 发行版一起预下载。只需编辑您的 php.ini 并取消注释 extension=pdo_mysql.so 和 extension=mysql.so 行
另外,在 php.ini 中,确保将 extension_dir 设置为正确的目录。它应该是 PHP 安装目录中名为 extensions 或 ext 或类似的文件夹。
原始答案中给出了其他说明,但我只推荐我理解的那些。它最初是为 postgres dbms 编写的。
如果还有问题,请查看laragon。它有点像 xamp(您似乎在 Windows 操作系统上使用),但更强大且更易于使用。 可以在几分钟内轻松设置主要的后端语言和框架。这包括带有 laravel/symfony、ruby 和 Ruby on Rails、python 和 Django 的 php。 它允许您轻松管理同一编程语言的多个版本,并且是完全可扩展的。 如果您是 Laravel 或后端开发的新手,并且正在使用 Windows 操作系统,那么这是必须具备的。
【讨论】:
感谢您的回答!不幸的是,我仍然遇到could not find driver
错误以上是关于为啥我不能查看这个 laravel 项目?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能使用 composer 创建 Laravel 项目?