php 如何从Digital Ocean Ubuntu服务器连接到Azure SQL数据库?

pkwftd7m  于 2022-11-28  发布在  PHP
关注(0)|答案(2)|浏览(100)

我有一些问题,连接和使用Azure SQL数据库时,来自我的Laravel应用程序在ubuntu服务器上。
我已经通过了the Microsoft docs for connecting to a SQL database from a PHP app,并从Azure运行连接向导,看看我的服务器是否可以连接,他们可以。
我相信我有一个问题与PHP.ini配置,但遵循微软的文件,以及。有人有经验吗?
Digitial海洋服务器由Laravel Forge配置。
我们需要连接的Azure数据库位于Microsoft Azure上,并通过其管理区域进行设置。
我已将Azure数据库服务器列入白名单,以接受来自Digital Ocean Server的传入连接。

iq3niunx

iq3niunx1#

·我建议您检查运行在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服务器的详细信息:-

我的天啊
·在**'. 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地址,以允许在虚拟网络中使用
如需了解更多信息,请访问以下链接:-


nkcskrwz

nkcskrwz2#

最后我发现我可以连接。我运行了php artisan db:show命令,发现我确实连接到了Azure数据库。问题是我正在运行的种子命令是一个运行时间非常长的命令,这让我认为它不工作。
因此,有关连接到SQL Server数据库的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

相关问题