我正在我的 laravel 应用程序上的本地开发服务器上使用 MAMP,我正在尝试弄清楚如何安全地设置我的服务器,这样我就不必在数据库连接 mysql 数组中使用以下内容,因为它应该只在我在我的开发服务器上使用。当我将该行添加到 mysql 数组中时,它可以工作,但是如果我在生产服务器上,则不会使用它。有什么想法吗?
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
.env.development.php
<?php
return [
'DB_HOST' => '127.0.0.1',
'DB_USERNAME' => 'root',
'DB_PASSWORD' => '1234',
'DB_NAME' => 'mytable'
];
应用程序/配置/数据库.php
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => getenv('DB_HOST'),
'database' => getenv('DB_NAME'),
'username' => getenv('DB_USERNAME'),
'password' => getenv('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
甚至有简单的解决方案。 将其添加到您的 .env 文件
DB_HOST=localhost;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock
On config/database.php
:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'unix_socket' => env('UNIX_SOCKET'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
.env
:
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mytable
DB_USERNAME=root
DB_PASSWORD=1234
UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
检查bootstrap/start.php
中的环境检测部分。应将计算机的名称添加到具有local
键的数组中。(如果您不知道计算机的名称,请在终端中运行hostname
。如果这是愚蠢的东西,谷歌如何改变它。这很简单。然后将数据库配置复制并粘贴到 app/config/local/database.php
。如果文件不存在,请创建该文件。
确保 MAMP 首选项设置为 Apache 端口:80、Nginx 端口:80、MySQL 端口:3306
以下是对我使用 Laravel 5.7 的方法:
转到配置/数据库.php并在下面找到第 54 行:
以前:'unix_socket' => env('DB_SOCKET', ''),
后:'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),
保存文件。
然后在终端运行中:PHP Artisan Config:CachePHP 工匠迁移
如果上述解决方案都不适合您,
尝试实际启动您的网络服务器,因为这对我来说是修复程序