跳到主要内容

运行 Laravel 应用

· 阅读需 4 分钟

最近我遇到了一个 Laravel 项目:SAM,它是我们社团的历史项目。作为后端的纯新手,我对如何启动应用完全没有想法。

我做的第一件事是运行 index.php 文件,但这只把 HTML 文件输出到了控制台。肯定不是这么工作的——这就像在 Vue 应用里打开 index.html 文件一样。你得在 localhost 上真的开启一个 HTTPS 服务。

安装依赖

回忆 Vue 是如何用 yarn 运行的。

$ yarn install
$ yarn serve

在 Laravel 里,事情也差不多。使用的包管理器是 composer,我根据这里的指示,全局安装了它。接下来,可以安装在 composer.json 中指定的依赖项。

$ composer --version
Composer version 1.10.13 2020-09-09 11:46:34
$ composer install

配置环境

接下来,我们需要声明环境。这是前端和后端项目的第一个差别。因为前端项目是运行在浏览器里的,你不用担心和外界的通信。(你毕竟处于沙盒中,所有东西都通过 URL 获取。)但是在后端,应用需要和服务器、和数据库、和各种资源连接。对于这个项目,我们需要配置应用环境和数据库连接。

Laravel 包含了一个示例环境文件 .env.example。把它复制一份,重命名为 .env。然后修改开头的两段。

.env
APP_NAME=sam
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

空着的一个字段是 APP_KEY,这是用于各种加密服务的。用 artisan 生成一个秘钥。

$ php artisan key:generate
Application key [base64:yPl2zp1+ZCZ1/7TK8QEM1uQTzOetXp8pl+/bTnbLAuw=] set successfully.

配置数据库

我们把目光放到数据库部分上。

.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sam
DB_USERNAME=root
DB_PASSWORD=[the root password]

我知道在生产环境中我最好不要用 root 来管理数据库,因为这可能有安全隐患,但我们反正是在开发环境中,所以我决定一切从简。登录 MySQL,创建数据库。

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 38
Server version: 8.0.23 Homebrew

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE sam;
Query OK, 1 row affected (0.01 sec)

mysql> quit;
Bye

可以自动用 migrate 创建数据表格。

$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
...

启动服务

最后,启动 PHP 服务。

$ php artisan serve