如何在不使用 artisan 的情况下在远程 ubuntu 服务器上连接 Laravel 7.12 项目的数据库

Posted

技术标签:

【中文标题】如何在不使用 artisan 的情况下在远程 ubuntu 服务器上连接 Laravel 7.12 项目的数据库【英文标题】:How to connect db of a Laravel 7.12 project on a remote ubuntu server without use artisan 【发布时间】:2021-06-03 00:23:13 【问题描述】:

我正在尝试在远程服务器上运行 laravel 项目而不执行 artisan 命令。设计正在正确执行。但我无法连接数据库。我根据我的要求编辑了 .env 和 databse.php 文件。这里我附上连接代码

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=user
DB_PASSWORD=secret

'mysql' => [
        'driver' => 'mysql',
        'url' => env('DATABASE_URL'),
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'mydb'),
        'username' => env('DB_USERNAME', 'user'),
        'password' => env('DB_PASSWORD', 'secret'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],

这个问题我该怎么办?

【问题讨论】:

您的数据库是否在同一主机上?我的意思是在本地主机上,您可以使用端口 3306 访问数据库吗?您的 mySql 是否在端口 3306 上运行?您的数据库位于何处? 我在虚拟机上托管了我的 laravel 项目。 Mysql 位于同一个虚拟机中。仅当我运行 php artisan serve 命令时才连接数据库。 您是否已将服务器主机文档根目录指向公用文件夹?您是否在 laravel 根应用程序上创建了 .htaccess 文件。 ? ***.com/questions/28788285/… 这会帮助你 我将服务器主机指向公用文件夹,并且我的项目正在运行而不执行 php artisan 命令。但是数据库没有与之连接。 【参考方案1】:

在不执行 artisan 命令的情况下运行 laravel 项目的步骤

    需要在/var/www/html/laravel上安装laravel框架

    将 index.php 文件改为

    需要DIR.'/vendor/autoload.php';

    $app = require_once DIR.'/bootstrap/app.php';

    编辑 server.php

    if ($uri !== '/' && file_exists(DIR.'/public'.uri)) 返回假;

    require_once DIR.'/index.php';

    在 /etc/apache2/sites-available/ 中创建 laravel.conf 文件

    听 8000

    服务器名称 ip_of_server

    ServerAdmin 用户名@ipaddress

    DocumentRoot /var/www/html/laravel //指定项目位置

    选项索引多视图

    AllowOverride None

    要求全部授予

    错误日志 $APACHE_LOG_DIR/error.log

    CustomLog $APACHE_LOG_DIR/access.log 合并

    最终运行项目

vm/index.php的http://ip

【讨论】:

以上是关于如何在不使用 artisan 的情况下在远程 ubuntu 服务器上连接 Laravel 7.12 项目的数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何在不配对的情况下在远程设备中安装 J2ME .jar 文件?

如何在没有 Artisan 的情况下在 Xampp 上运行 laravel

是否可以在不重新启动服务器的情况下在远程 weblogic 上重新部署应用程序?

如何在不通过 Web 调用的情况下在浏览器中查找地理位置

不使用 Artisan 的维护模式?

在不提示的情况下在 Powershell 中获取当前用户的凭据对象