Bài viết này được cung cấp như một phép lịch sự. Cài đặt, định cấu hình và khắc phục sự cố ứng dụng của bên thứ ba nằm ngoài phạm vi hỗ trợ được cung cấp bởi [mt] Media Temple. Vui lòng dành chút thời gian để xem lại Tuyên bố hỗ trợ
Sử dụng và ví dụ
Bạn có thể truy cập các biến này bằng cách sử dụng $_SERVER và $_ENV arrays.
Ví dụ: nếu bạn muốn sử dụng biến
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
9 được đề cập ở trên, bạn có thể tạo một biến trong tập lệnh PHP của mình tương tự như sauTên tệp. môi trường. php
$site_path_var = $_SERVER["SITE_HTMLROOT"];
Điều này sẽ tạo ra một biến có giá trị tương tự như sau
$ touch .env
$ echo "PHP_DEBUG=true" > .env
0
Nếu bạn muốn kiểm tra đầu ra của biến, hãy thêm câu lệnh echo vào tập lệnh PHP của bạn. Ví dụ
Tên tệp. môi trường. php
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
Bây giờ hãy truy cập tập lệnh của bạn trong trình duyệt của bạn để xem đầu ra
GHI CHÚ
$ touch .env $ echo "PHP_DEBUG=true" > .env1 và
$ touch .env $ echo "PHP_DEBUG=true" > .env2 là các mảng siêu toàn cục PHP. Chúng không cần phải được khai báo là biến toàn cục. Đừng KHÔNG đặt dòng sau vào tệp của bạn.
Tên tệp. môi trường. php
global $_SERVER;
Công dụng thực tế
Trên Grid, việc sử dụng một vài biến môi trường được chọn sẽ đặc biệt hữu ích vì ba lý do. Đầu tiên, nếu bạn quyết định sử dụng lại tập lệnh trên một miền khác trên Lưới, bạn sẽ không phải thay đổi tất cả các biến của mình. Thứ hai, các biến thường thuận tiện hơn so với đường dẫn dài và tên máy chủ được sử dụng cho kiến trúc Grid. Thứ ba, cân bằng tải lưới đôi khi yêu cầu các trang web và cơ sở dữ liệu được chuyển sang các máy vật lý khác nhau, điều này có thể thay đổi môi trường của bạn. Đây không phải là một sự cố phổ biến, nhưng nó là một phần thiết yếu của chức năng Grid
0$site_path_var = $_SERVER["SITE_HTMLROOT"]; echo $site_path_var;
Đường dẫn đầy đủ đến tài liệu gốc của trang web của bạn, trả về kết quả như /home/00000/domains/example. com/html.
1 - Tên máy chủ cơ sở dữ liệu nội bộ, trả về đầu ra như internal-db. s00000. máy chủ lưới. com.$site_path_var = $_SERVER["SITE_HTMLROOT"]; echo $site_path_var;
Danh sách đầy đủ các biến được cung cấp
Tạo một phpinfo. php để xem tất cả các biến do Media Temple cung cấp [mt] của bạn. Xem phần "Làm cách nào tôi có thể tạo tệp phpinfo. php?" để biết chi tiết, chú ý đến phần Biến PHP của trang để biết thông tin liên quan.
Đặt biến của riêng bạn
Trong PHP
Trên Lưới, bạn có thể đặt các biến môi trường của riêng mình sẽ tồn tại trong phiên tạo ra chúng. Ví dụ: nếu bạn muốn sử dụng biến môi trường tùy chỉnh trong tập lệnh, bạn có thể thêm các dòng sau để tạo rồi sử dụng biến
Bạn có thể nhận được các biến môi trường của mình bằng cách sử dụng các hàm PHP tích hợp sẵn, chẳng hạn như
$ touch .env $ echo "PHP_DEBUG=true" > .env5 hoặc
$ touch .env $ echo "PHP_DEBUG=true" > .env6. Nhưng bạn có biết rằng bạn có thể làm điều đó một cách tinh tế, lấy giá trị của biến môi trường theo kiểu dữ liệu PHP phù hợp với một thư viện mạnh mẽ không?
Trong suốt bài viết này, chúng ta sẽ sử dụng thư viện
$ touch .env $ echo "PHP_DEBUG=true" > .env7 để tải các biến môi trường từ một tệp bên ngoài
Cài đặt phụ thuộc với thư viện vlucas/phpdotenv
Trước tiên, bạn cần cài đặt các phụ thuộc. Đơn giản chỉ cần gõ này trong thiết bị đầu cuối của bạn
________số 8Bây giờ, chúng ta cần tạo một tệp
$ touch .env $ echo "PHP_DEBUG=true" > .env8 và đặt biến môi trường đầu tiên vào đó
$ touch .env $ echo "PHP_DEBUG=true" > .env
Hãy đọc biến môi trường và đổ giá trị này ra màn hình
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
1Bạn có thấy rằng kiểu dữ liệu của giá trị này là bool chứ không phải chuỗi không?
Hãy chuyển sang bước tiếp theo và khám phá thêm các tính năng
Lưu cấu hình dưới dạng một mảng
Bạn nghĩ gì về việc lưu cấu hình của mình trong một biến môi trường duy nhất dưới dạng một mảng?
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
2____13tốt một. Bạn có thấy rằng bạn có thể xác định cấu trúc dữ liệu phức tạp cho các biến môi trường của mình không?
Nếu muốn, bạn có thể đọc tài liệu của
$ touch .env $ echo "PHP_DEBUG=true" > .env9 để hiểu có bao nhiêu loại dữ liệu bạn có thể sử dụng ở đó, với các ví dụ và chi tiết về những gì thư viện hỗ trợ
Mã hóa một ứng dụng thực tế
Trong phần tiếp theo, chúng ta sẽ mã hóa một ứng dụng thực sử dụng cùng một khái niệm được hiển thị bên dưới để nhận cấu hình. Chúng tôi sẽ thực hiện việc tạo một trình bao bọc cho
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
10Chà, chúng tôi sẽ sử dụng Rclone để kết nối trên Amazon Cloud Drive và liệt kê mọi tệp từ đó trong một thư mục cụ thể. Hãy thực hiện bất cứ nơi nào bạn muốn của ý tưởng này. Ví dụ: có thể tải các tệp của bạn lên Amazon Cloud Drive, có thể là các tệp như bản sao lưu cơ sở dữ liệu
Rclone là gì?
Rclone là một chương trình dòng lệnh có thể được sử dụng để đồng bộ hóa các tệp từ nguồn sang đích. Nó hỗ trợ một số nhà cung cấp như
Google Drive
amazon S3
Dropbox
Lưu trữ đám mây của Google
Ổ đĩa Amazon
Microsoft OneDrive
SFTP
Hệ thống tập tin cục bộ
Để xem danh sách đầy đủ các nhà cung cấp được hỗ trợ, vui lòng đọc thêm trên trang chủ của Rclone
Cách cài đặt rclone trên máy của bạn
Làm theo tài liệu chính thức sẽ giải thích cách cài đặt Rclone trên máy của bạn [nó hoạt động trên Windows, Linux và OS X, vì vậy đừng lo lắng]. Nếu bạn muốn cài đặt nó trên máy chủ của mình, vâng, bạn có thể làm điều đó mà không gặp vấn đề gì
Cách định cấu hình Rclone
Bạn sẽ cần định cấu hình Rlone cho bất kỳ nhà cung cấp đám mây nào mà bạn muốn sử dụng với nó. Trong trường hợp này, chúng tôi sẽ chỉ định cấu hình tài khoản Amazon Cloud Drive
Trước khi tiếp tục, hãy đảm bảo rằng bạn có Rclone trên biến hệ điều hành PATH của mình và chạy lệnh sau để định cấu hình Rclone để quản lý tệp trên ổ đĩa đám mây của bạn
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
6Bạn sẽ được hỏi về bí danh. Theo quy ước của hướng dẫn này, tôi giả sử rằng chúng ta đang sử dụng bí danh
11 và bạn có một thư mục cụ thể trong thư mục gốc có tên là$site_path_var = $_SERVER["SITE_HTMLROOT"]; echo $site_path_var;
12$site_path_var = $_SERVER["SITE_HTMLROOT"]; echo $site_path_var;
Điền thông tin theo câu hỏi. Sau đó, khi bạn chạy lệnh này, bạn sẽ thấy tất cả các tệp trong thư mục gốc trên đám mây của mình
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
9Lệnh này sẽ in ra bảng điều khiển mọi tệp có trong thư mục Codeship của Amazon Cloud Drive của bạn. Nếu nó hoạt động, hãy tiếp tục
Đăng ký tài khoản Codeship miễn phí
Tạo dự án PHP của chúng tôi
Chúng tôi sẽ làm theo một số bước để ứng dụng của chúng tôi hoạt động. Nếu bạn có bất kỳ nghi ngờ nào về bất kỳ bước nào, vui lòng để lại nhận xét hoặc gửi tin nhắn trực tiếp cho tôi. tôi muốn nói chuyện với bạn về nó
Người quản lý phụ thuộc
Composer là công cụ quản lý phụ thuộc mà chúng tôi sẽ sử dụng. Hãy tạo một dự án PHP mới và nhập một số phụ thuộc bằng Composer
Khi bạn nhập lệnh đầu tiên
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
13, bạn sẽ được hỏi về cấu hình của dự án mới của mìnhglobal $_SERVER;
1Còn một việc nữa cần hoàn thành với cấu hình nhà soạn nhạc. Chúng ta cần nói không gian tên của ứng dụng của chúng ta là gì. Để thực hiện việc này, hãy thêm trường
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
14 vào tệp $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
15 như thế nàyglobal $_SERVER;
4Nhà soạn nhạc sẽ đăng ký trình tải tự động PSR-4 cho không gian tên
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
16Tạo các biến môi trường của chúng tôi
Các biến môi trường của chúng tôi sẽ giữ cấu hình của ứng dụng dòng lệnh của chúng tôi. Ví dụ, đây là điểm mà bạn có thể thay đổi đường dẫn thành nhị phân
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
10 hoặc thay đổi cấu hình của bất kỳ thứ gì bạn đang thấy ở trênHãy tạo tệp biến môi trường
$ touch .env $ echo "PHP_DEBUG=true" > .env8 trong thư mục gốc của dự án của chúng ta và điền vào đó một số cấu hình hữu ích cho phạm vi của ứng dụng này
global $_SERVER;
8Đó là nó.
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
19 có nội dung $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
20 và nội dung này sẽ được sử dụng để truy xuất thông tin về cấu hình cụ thể của bạn mà chúng tôi đã thực hiện trong $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
21$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
22 có một $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
23 sẽ trỏ đến đường dẫn cài đặt nhị phân của công cụ $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
10 trên máy của bạn. Ngoài ra, $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
25 có một $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
26 sẽ được sử dụng để gửi các lệnh Rclone với các đối số mặc định nàyLệnh Danh sách
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
27 sẽ là lớp chịu trách nhiệm liệt kê tất cả các tệp nằm trong thư mục $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
12 của chúng tôi trên Amazon Cloud Drive. Đầu tiên, tạo thư mục $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
29 trong thư mục dự án của bạn. Bên trong nó, tạo tệp $site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
30$ touch .env $ echo "PHP_DEBUG=true" > .env0
Nội dung của
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
30 sẽ là$ touch .env $ echo "PHP_DEBUG=true" > .env1
Cách chạy ứng dụng dòng lệnh này
Điều cuối cùng chúng ta cần làm là tạo một tệp điểm đầu vào [hàm
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
32 của chúng ta]$ touch .env $ echo "PHP_DEBUG=true" > .env2
Điền vào tệp này với nội dung sau
$ touch .env $ echo "PHP_DEBUG=true" > .env3
Để chạy ứng dụng này, chỉ cần nhập nó vào thiết bị đầu cuối của bạn
$ touch .env $ echo "PHP_DEBUG=true" > .env4
Nếu bạn có bất kỳ tệp nào trên thư mục
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
12 trong Amazon Cloud Drive của mình, những tệp đó sẽ được liệt kê trên bảng điều khiển của bạnVâng, tôi biết nó thực sự đơn giản, nhưng tôi muốn chia sẻ cách bạn có thể sử dụng các biến môi trường trong dự án của mình. Tại sao không nghĩ về các giá trị dữ liệu phức tạp?
Phần kết luận
Như bạn có thể thấy, chúng ta có thể sử dụng các biến môi trường để làm rất nhiều việc. Bạn có thể tăng chất lượng công việc của mình chỉ bằng cách đặt cấu hình trên các biến môi trường để thay đổi hành vi của một thành phần trong luồng ứng dụng của bạn mà không thay đổi dù chỉ một dòng mã nguồn của bạn
Bạn không cần phải chuyển đổi các loại của mình;
Hãy cho tôi biết nếu bạn gặp vấn đề khi làm theo hướng dẫn từng bước này và cách thức hoặc thời điểm bạn nghĩ đến việc sử dụng tính năng này cho dự án tiếp theo của mình
Một hạn chế duy nhất mà tôi có thể thấy khi sử dụng các biến môi trường là đặt thông tin đăng nhập cơ sở dữ liệu/API của bạn, vì vậy hãy cẩn thận về điều đó
Làm sao để truy cập. env trong PHP?
php function DBConnect[] { $user = getenv["DB_USER"]; . biến môi trường. php. environment-variables.tôi có thể sử dụng. env trong PHP?
Một. env là một tệp văn bản thuần túy chứa các định nghĩa biến môi trường được thiết kế để ứng dụng PHP của bạn sẽ phân tích cú pháp chúng, bỏ qua Apache, NGINX và PHP-FPM. Việc sử dụng. tệp env phổ biến trong nhiều khung công tác PHP chẳng hạn như Laravel có hỗ trợ tích hợp để phân tích cú pháp .Làm cách nào để chuyển biến môi trường sang PHP?
Không có cách nào để đặt các biến môi trường từ dòng lệnh dành riêng cho việc thực thi tập lệnh bằng cách chuyển các tùy chọn sang tệp nhị phân PHP. Bạn có một vài lựa chọn. Đặt biến chung trên hệ thống . Đặt biến trên dòng lệnh trước khi gọi tập lệnh.$_ env trong PHP là gì?
$_ENV là một mảng kết hợp siêu toàn cục khác trong PHP . Nó lưu trữ các biến môi trường có sẵn cho tập lệnh hiện tại. $HTTP_ENV_VARS cũng chứa thông tin tương tự, nhưng không phải là siêu toàn cầu và hiện không được dùng nữa. Các biến môi trường được nhập vào không gian tên chung.