Tôi đang sử dụng Github để triển khai các trang web của mình đến máy chủ sản xuất của mình. Bởi vì điều này tôi không muốn được lưu trữ .env. *. Php tập tin tất cả mọi thứ vì vậy họ đang ở trong .gitignore của tôi.Biến môi trường và nghệ nhân không hoạt động trên máy chủ sản xuất
Trong mỗi thư mục môi trường tôi đã thiết lập các cấu hình cơ sở dữ liệu để sử dụng getenv()
, ví dụ:
<?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' => '',
),
),
);
Tôi đã sau đó đi vào file conf apache cho các máy ảo của tôi và thiết lập các biến môi trường, như vậy:
SetEnv DB_HOST ***.***.***.***
SetEnv DB_NAME database
SetEnv DB_USERNAME databaseuser
SetEnv DB_PASSWORD databasepass
Tất cả đều hoạt động hoàn hảo trên máy chủ sản xuất.
Tuy nhiên, tôi vừa nhập thủ công cơ sở dữ liệu vào lúc này thay vì sử dụng php artisan migrate
vì nó không hoạt động.
Tôi biết nó không hoạt động bởi vì nó không đánh apache nên các biến không được thiết lập, nhưng tôi đã thử nhiều cách để thử và giải quyết vấn đề này nhưng tôi không có may mắn chưa.
tôi đã cố gắng buộc môi trường để xem nếu nó có thể nhận được các biến bằng cách sử dụng php artisan --env=production migrate
Tôi cũng đã thử kiểm tra xem nó bằng cách sử dụng môi trường đúng bằng cách chạy php artisan env
và nó sử dụng các môi trường sản xuất đó là chính xác .
Ý tưởng tiếp theo của tôi là tạo tệp .env.production.php theo cách thủ công trên máy chủ sản xuất. Tôi tạo ra một và sử dụng getenv() chỉ trong trường hợp nó làm việc như thế này, nhưng cùng một lỗi xảy ra, vì vậy tôi đã cố gắng thiết lập các biến bằng tay mà không sử dụng getenv() và tôi vẫn không có may mắn.
Bất kỳ ý tưởng nào cũng sẽ được đánh giá cao.
file sản xuất .env được gọi là .env.php không .env.production.php –
tôi đã thiết lập một môi trường trong bootstrap/start.php với tên 'sản xuất', sẽ này không làm việc sao? – Karl
Tôi vừa thử tệp .env.php, hoạt động nếu tôi đặt biến theo cách thủ công, có cách nào tôi có thể sử dụng các biến được đặt qua apache để làm việc với nghệ nhân không? – Karl