如何从Digital Ocean Ubuntu Server连接到Azure SQL数据库?



当我在 ubuntu 服务器上使用我的 Laravel 应用程序时,我在连接和使用 Azure SQL 数据库时遇到了一些问题。

我已经浏览了从 PHP 应用程序连接到 SQL 数据库的Microsoft文档,并从 Azure 运行连接向导,以查看我的服务器是否可以连接,它们可以连接。

我相信我对 PHP.ini 配置有问题,但也遵循了微软的文档。有人有这方面的经验吗?

Digitial海洋服务器由Laravel Forge配置。

我们需要连接到的 Azure 数据库位于 Azure Microsoft,并通过其管理区域进行设置。

我已将 Azure 数据库服务器列入白名单,以接受来自数字海洋服务器的传入连接。

• 我建议您检查在Digital Ocean ubuntu VM上运行的Laravel应用程序的连接代码,并确保在与Azure SQL数据库连接方面如下所示:

DB_CONNECTION=<connection name of the sql db>
DB_HOST=<ip address of the SQL Server>
DB_PORT=<port number for the SQL DB>
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'),
]) : [],

将"mysql"连接参数更改为 Azure SQL 数据库连接的参数,然后再次尝试连接。建议您查看以下社区线程,以获取有关为此目的配置Laravel服务器的更多信息:-

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

• 在".env"文件中,请确保在其中配置以下行具有正确的值:-

APP_URL=http://laravel.example.com DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laraveldb DB_USERNAME=laravel DB_PASSWORD=password ’

和".conf"文件如下:-

<VirtualHost *:80> ServerAdmin admin@example.com ServerName laravel.example.com DocumentRoot /var/www/html/laravel/public <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/html/laravel> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

成功配置上述内容后,请确保 SQL数据库端口允许来自配置 Laravel 应用的 ubuntu 服务器的出站网络连接,并且 SQL Server 上也允许相应的传入网络连接。需要在与 VM 相关的 NSG 上进行这些更改,并在 Azure SQL Server 上的"网络"部分中进行这些更改,你可以在其中配置虚拟网络中允许的 VM 的 IP 地址

欲了解更多信息,请参阅以下链接: -

https://snapshooter.com/learn/guides/how-to-install-laravel-ubuntu

我最终发现我能够连接。我运行了php artisan db:show命令,发现我确实已连接到 Azure 数据库。问题是我正在运行的种子命令是一个非常长时间运行的命令,这让我认为它不起作用。

因此,有关连接到 SQL 服务器数据库的 laravel 文档是正确的。

您可以通过以下链接关注Laravel文档:https://laravel.com/docs/9.x/database#mssql-configuration

您可以按照此处的Microsoft文档从 PHP 应用程序进行连接: https://learn.microsoft.com/en-us/azure/azure-sql/database/connect-query-php?view=azuresql

相关内容

  • 没有找到相关文章

最新更新