PHP đặt biến môi trường

Việc sử dụng các biến môi trường để chứa thông tin đăng nhập của bạn ngăn bạn vô tình chia sẻ khóa truy cập bí mật AWS của mình. Chúng tôi khuyên bạn không bao giờ thêm trực tiếp khóa truy cập AWS của mình vào máy khách trong bất kỳ tệp sản xuất nào. Nhiều nhà phát triển đã bị xâm phạm tài khoản do khóa bị rò rỉ

Để xác thực với Amazon Web Services, trước tiên SDK sẽ kiểm tra thông tin xác thực trong các biến môi trường của bạn. SDK sử dụng hàm getenv[] để tìm các biến môi trường AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN. Những thông tin đăng nhập này được gọi là thông tin đăng nhập môi trường

Nếu đang lưu trữ ứng dụng của mình trên AWS Elastic Beanstalk, bạn có thể đặt các biến môi trường AWS_ACCESS_KEY_IDAWS_SECRET_KEY thông qua bảng điều khiển AWS Elastic Beanstalk để SDK có thể tự động sử dụng các thông tin xác thực đó

Để biết thêm thông tin về cách đặt biến môi trường, hãy xem Hỗ trợ biến môi trường trong Hướng dẫn tham khảo công cụ và SDK AWS. Ngoài ra, để biết danh sách tất cả các biến môi trường được hầu hết các SDK AWS hỗ trợ, hãy xem

Theo ứng dụng 12 yếu tố, cách tốt nhất để định cấu hình mọi thứ để triển khai là thông qua các biến môi trường, không nhất thiết phải là tệp biến môi trường mà chỉ cần bất kỳ biến môi trường nào. Vấn đề là làm thế nào để đưa các biến môi trường vào PHP. Nó khá phức tạp tùy thuộc vào những gì bạn đang làm

Bước đầu tiên là đảm bảo rằng bạn đang sử dụng getenv trong PHP cho các biến môi trường vì mảng $_ENV có thể không được đặt trừ khi bạn đặt variables_order=EGPCS trong cài đặt INI. Điều này là đủ cho các ứng dụng PHP dòng lệnh bao gồm máy chủ PHP dòng lệnh

Nếu bạn đang chạy PHP thông qua Apache thông qua mod_php hoặc CGI, thì cách duy nhất là sử dụng tệp getenv[]0 dọc theo đường dẫn từ getenv[]1 đến thư mục gốc của tài liệu và sử dụng chỉ thị getenv[]2. Hoặc bạn đặt chúng vào khối Máy chủ ảo bên trong cấu hình Apache

Nếu bạn đang sử dụng NGINX + PHP-FPM. Bạn có 3 lựa chọn

  1. Đặt getenv[]3 bên trong cấu hình nhóm FPM của bạn và đặt các biến môi trường trong NGINX thông qua chỉ thị getenv[]4 trong ngữ cảnh chính của cấu hình NGINX. Tuy nhiên, điều này đặt biến môi trường cho tất cả các công nhân NGINX bất kể máy chủ ảo
  2. Đặt chúng trong cấu hình nhóm bằng cách sử dụng chỉ thị getenv[]5
  3. Sử dụng chỉ thị getenv0 bên trong khối vị trí trong NGINX. Tuy nhiên, những biến này không xuất hiện trong $_ENV hay getenv2, chúng sẽ có trong getenv3. Điều này có thể hoặc có thể không được chấp nhận

Nếu bạn không có quyền truy cập vào cấu hình NGINX hoặc cấu hình nhóm PHP-FPM, thì bạn hoàn toàn không thể đặt biến môi trường. Nếu bạn đang sử dụng nhà cung cấp PAAS, nhà cung cấp đó thường sẽ có hệ thống cài đặt biến môi trường của riêng họ và bạn có thể sử dụng hệ thống đó

Cùng với sự phức tạp ở trên là việc xử lý các cài đặt INI, một số cài đặt này chỉ khả dụng trong tệp getenv4 của hệ thống. Đối với CGI và FastCGI [và cả FPM], bạn có thể sử dụng getenv5. Đối với mod_php, bạn cần sử dụng các lệnh đặc biệt bên trong getenv[]0, nhưng nó phải có điều kiện đối với phiên bản mod_php. Đây là một ví dụ


  php_value variables_order "EGPCS"
  php_value date.timezone "UTC"
  php_value session.auto_start 0
  php_value session.use_trans_sid 0
  php_value session.use_strict_mode 1
  php_value session.use_cookies 1
  php_value session.use_only_cookies 1

Tuy nhiên, đối với các ứng dụng dòng lệnh, khởi chạy qua getenv7, chúng sẽ không đọc getenv5. Bạn có thể buộc một getenv4 cụ thể bằng cách sử dụng tùy chọn $_ENV0 [nhưng khi đó tệp getenv4 cụ thể của bạn sẽ cần thiết lập mọi thứ, không có cách nào để hợp nhất INI] hoặc bạn có thể chỉ định cài đặt INI cụ thể thông qua tùy chọn $_ENV2

Như bạn có thể thấy, đó là shit-show. Nếu bạn muốn viết một ứng dụng PHP có thể di động được triển khai qua Apache, NGINX hoặc thông qua thực thi dòng lệnh [điều này rất quan trọng khi bạn đang thực hiện kiểm tra đơn vị, máy chủ cục bộ, ReactPHP hoặc Swoole hoặc xem xét nội tâm thông qua PHP REPL như Psysh], . Nó thậm chí còn trở nên phức tạp hơn nếu một số biến môi trường này cần được chia sẻ với các ứng dụng khác [như SPA phía máy khách sử dụng cùng các biến như phía máy chủ]

Hôm nay tôi sẽ giải thích cách thêm thư mục thời gian chạy PHP vào biến môi trường Windows 10 AWS_ACCESS_KEY_ID9 của bạn. Điều này sẽ cung cấp cho bạn quyền truy cập toàn cầu vào AWS_SECRET_ACCESS_KEY0 từ bất kỳ dấu nhắc lệnh nào

Xin lưu ý rằng bạn phải mở lại các cửa sổ nhắc lệnh của mình [nếu bạn đã mở bất kỳ cửa sổ nào trước khi cập nhật]

Dấu nhắc lệnh tải biến môi trường AWS_ACCESS_KEY_ID9 khi nó được mở lần đầu tiên

Khán giả mục tiêu

  • Người dùng Windows 10
  • Các nhà phát triển PHP muốn PHP có thể truy cập toàn cầu từ bất kỳ dấu nhắc lệnh nào [ví dụ:. php. exe cho “linting” hoặc để bắt đầu một nhà phát triển. người phục vụ]

Lưu ý rằng bạn không bị giới hạn đối với PHP, đây có thể là bất kỳ thư mục nào chứa bất kỳ chương trình nào - ví dụ:. AWS_SECRET_ACCESS_KEY2

Làm cách nào để đặt biến môi trường trong PHP?

Sử dụng putenv[] . // Đặt biến môi trường NAME. putenv['NAME="Robert Smith"']; . echo getenv['TÊN']; .

Làm cách nào để đặt biến môi trường cho PHP trong Windows 10?

Từ cửa sổ Thuộc tính hệ thống, nhấp vào tab Nâng cao, sau đó nhấp vào nút Biến môi trường ở dưới cùng. Chọn biến Đường dẫn từ phần Biến hệ thống, sau đó nhấp vào Chỉnh sửa. cộng. c. \php vào đường dẫn hệ thống của bạn. Nhấn OK cho đến khi bạn thoát khỏi cửa sổ System Properties

Làm cách nào để đặt biến môi trường trong PHP trong Ubuntu?

2 câu trả lời .
chỉnh sửa. bashrc [trong trường hợp bạn chạy bash dưới dạng trình bao] # Thêm phần sau. export DB_NAME="Tên cơ sở dữ liệu của tôi".
Lưu file và thoát
nhấp vào lệnh sau. nguồn ~/. bashrc
kiểm tra xem biến Môi trường có hợp lệ không echo $DB_NAME. .
Chỉnh sửa tệp PHP của bạn. .
Chạy thử nghiệm tệp PHP php. php

$_ ENV có nghĩa là gì trong PHP?

$_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.

Chủ Đề