Hướng dẫn php getenv not working apache - php getenv không hoạt động apache

Tôi đặt một biến môi trường trên Windows (Propeties hệ thống-> nâng cao-> Biến môi trường) và cố gắng truy cập nó từ mã PHP, như thế này:

getenv('ENV');

PHP của tôi chạy trên máy chủ Apache của XAMPP và nó đã trả lại false.

Tôi đọc rằng vì lý do bảo mật, tôi phải sử dụng chỉ thị PassEnv cho Apache để nhận ra các biến môi trường. Tôi đã cố gắng sử dụng nó trong các tệp .htaccess.conf nhưng không thành công.

Muốn hiểu những gì tôi đang thiếu, và tôi nên làm gì để truy cập biến môi trường.

  • Php 5.6
  • Apache 2.0

Đã hỏi ngày 26 tháng 6 năm 2016 lúc 14:33Jun 26, 2016 at 14:33

Hướng dẫn php getenv not working apache - php getenv không hoạt động apache

2

Bạn phải khởi động lại PC của mình cho môi trường mới được PHP đọc. Đây là cách tôi đã làm. Tôi đặt một biến môi trường thông qua (System Propeties->Advanced->Environment Variables) và sau đó kiểm tra nó đã trả về bool(false). Tôi đã khởi động lại PC của mình và kiểm tra lại và bây giờ nó đã hoạt động. Vì vậy, tôi khuyên bạn nên khởi động lại và kiểm tra lại.

EDIT:

Ngoài ra, nếu bạn xóa biến môi trường Windows và kiểm tra biến trong PHP mà không khởi động lại; Nó vẫn sẽ hiển thị giá trị. Điều đó có nghĩa là các biến môi trường được lưu trữ tạm thời cho đến khi PC khởi động lại. Tôi không có nhiều ý tưởng về API Windows nhưng đây là cách nó hoạt động.

Tôi có hai liên kết hữu ích hơn có thể giúp bạn

  1. Đặt các biến môi trường yêu cầu khởi động lại trên 64 bit
  2. https://serverfault.com/questions/8855/how-do-you-add-a-windows-environment-variable-without-rebooting

EDIT:

Ngoài ra, có một giải pháp khác mà tôi đã tìm thấy trong các biến thay đổi php.NET đặt hàng trong tệp php.ini của bạn [variables_order = "GPCS"] thành [variables_order = "EGPCS"] và khởi động lại Apache. EGPC là phân tích phân tích biến (Environment, Get, Post, Cookie, and Server). Điều này sẽ tạo biến false0. Cố gắng truy cập biến môi trường thông qua false1;

Đã trả lời ngày 26 tháng 6 năm 2016 lúc 16:34Jun 26, 2016 at 16:34

Hướng dẫn php getenv not working apache - php getenv không hoạt động apache

Amit Rayamit RayAmit Ray

3,4452 Huy hiệu vàng19 Huy hiệu bạc34 Huy hiệu đồng2 gold badges19 silver badges34 bronze badges

2

Hãy thử trong tệp php.ini đặt biến false2 thành false3 thay vì nhà phát triển và giá trị sản xuất false4 và khởi động lại quy trình máy chủ.

Đã trả lời ngày 26 tháng 5 năm 2017 lúc 5:00May 26, 2017 at 5:00

Hướng dẫn php getenv not working apache - php getenv không hoạt động apache

Simhumilecosimhumilecosimhumileco

29.1k16 Huy hiệu vàng130 Huy hiệu bạc108 Huy hiệu đồng16 gold badges130 silver badges108 bronze badges

2

Cách nhận mã của bạn để đọc các biến môi trường được cập nhật:

  1. Dừng quy trình máy chủ Apache
  2. Đóng cửa sổ Bảng điều khiển XAMPP

Sau đó, bạn có thể mở lại cửa sổ và khởi động lại quy trình.

Tôi đã có cùng một vấn đề với bạn, nhưng khi tôi làm điều này, nó đã hoạt động. Miễn là cửa sổ mở, Apache chưa đăng ký biến môi trường mới. Khi một biến mới được đặt, Windows sẽ gửi một thông báo đến tất cả các chương trình, để lần tiếp theo mở, họ sẽ có biến mới được đăng ký. Bất kỳ cửa sổ nào được mở sẽ không đăng ký thay đổi.

Đồng thời đảm bảo rằng sau khi bạn đã thay đổi/đặt biến để chọn 'OK' nếu được thực hiện thông qua bảng điều khiển.

Đã trả lời ngày 31 tháng 12 năm 2021 lúc 0:37Dec 31, 2021 at 0:37

Chuck Dot Reeves tại Gmail Dot Com ¶

Jaraco tại Jaraco Dot Com ¶Gets the value of an environment variable

Sự mô tả

getenv (chuỗi false5, bool false6 = false): Chuỗi | Sai(string false5, bool false6 = false): string|false

getenv (): mảng(): array

Bạn có thể thấy một danh sách tất cả các biến môi trường bằng cách sử dụng phpinfo (). Nhiều biến số trong số các biến này được liệt kê trong »& NBSP; RFC 3875, cụ thể là Phần 4.1," Yêu cầu Meta-Variables ".phpinfo(). Many of these variables are listed within » RFC 3875, specifically section 4.1, "Request Meta-Variables".

Thông số

false8

Tên biến.

false9

Được đặt thành true để chỉ trả về các biến môi trường cục bộ (được đặt bởi hệ điều hành hoặc putenv).

Trả về giá trị

Trả về giá trị của biến môi trường false8 hoặc false nếu biến môi trường false8 không tồn tại. Nếu false8 bị bỏ qua, tất cả các biến môi trường được trả về dưới dạng mảng kết hợp.false if the environment variable false8 does not exist. If false8 is omitted, all environment variables are returned as associative array.

Thay đổi

Phiên bảnSự mô tả
7.1.0 false8 hiện có thể được bỏ qua để lấy một mảng kết hợp của tất cả các biến môi trường.array of all environment variables.
7.0.9 Tham số false9 đã được thêm vào.

Ví dụ

Ví dụ #1 getenv () ví dụgetenv() Example

PassEnv6

Ghi chú

Cảnh báo

Nếu PHP đang chạy trong SAPI như CGI nhanh, hàm này sẽ luôn trả về giá trị của biến môi trường do SAPI đặt, ngay cả khi putenv () đã được sử dụng để đặt biến môi trường cục bộ cùng tên. Sử dụng tham số false9 để trả về giá trị của các biến môi trường được đặt tại địa phương.putenv() has been used to set a local environment variable of the same name. Use the false9 parameter to return the value of locally-set environment variables.

Xem thêm

  • putenv () - Đặt giá trị của biến môi trường
  • apache_getenv () - Nhận biến SubacheS_ENV của Apache
  • Superglobals

Ẩn danh ¶

4 năm trước

PassEnv8

PassEnv9

.htaccess0

jcastromail tại yahoo dot es ¶

2 năm trước

.htaccess1

.htaccess2

.htaccess3

.htaccess4

.htaccess5

.htaccess6

.htaccess0

Eng.mrkto.com

12 năm trước

.htaccess8

yw () beeznest! com ¶

6 năm trước

.htaccess9

.conf0

.conf1

.htaccess0

PHP tại Keith Tyler Dot Com ¶

10 năm trước

.conf3

.conf4

.conf5

.conf6

.htaccess0

Kyong ¶

18 năm trước

.conf8

prumisn tại gmail dot com ¶

7 năm trước

.conf9

xin chào tại jabran dot tôi ¶

7 năm trước

(System Propeties->Advanced->Environment Variables)0

xin chào tại jabran dot tôi ¶

Sam tại sambarrow dot com ¶

(System Propeties->Advanced->Environment Variables)1

14 năm trước

Ẩn danh ¶

(System Propeties->Advanced->Environment Variables)2

3 năm trước

12 năm trước

(System Propeties->Advanced->Environment Variables)3

yw () beeznest! com ¶

6 năm trước

(System Propeties->Advanced->Environment Variables)4

(System Propeties->Advanced->Environment Variables)5

(System Propeties->Advanced->Environment Variables)6

(System Propeties->Advanced->Environment Variables)7

PHP tại Keith Tyler Dot Com ¶

10 năm trước

(System Propeties->Advanced->Environment Variables)8

(System Propeties->Advanced->Environment Variables)9

bool(false)0

bool(false)1

.htaccess0

Tôi có thể sử dụng .ENV trong PHP không?

Một .Tệp ENV là một tệp văn bản đơn giản 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 chúng, bỏ qua Apache, NGINX và PHP-FPM.Việc sử dụng các tệp .ENV rất phổ biến trong nhiều khung PHP như Laravel có hỗ trợ tích hợp để phân tích cú pháp.The usage of . env files is popular in many PHP frameworks such as Laravel which has built-in support for parsing .

Tại sao Getenv trở lại NULL?

Giá trị trả về Bạn nên sao chép chuỗi được trả về vì một cuộc gọi tiếp theo đến getenv () sẽ ghi đè lên nó.Nếu không tìm thấy varname, getenv () trả về một con trỏ null.Giá trị trả về là NULL nếu biến đã cho hiện không được xác định.if the given variable is not currently defined.

Getenv có nghĩa là gì trong PHP?

GetEnv - Nhận giá trị của một biến môi trường.Gets the value of an environment variable.

Mối quan hệ giữa hàm getenv () và http_user_agent trong PHP là gì?

PHP cung cấp một hàm getenv () để truy cập giá trị của tất cả các biến môi trường.Thông tin có trong biến môi trường http_user_agent có thể được sử dụng để tạo nội dung động phù hợp với trình duyệt.The information contained in the HTTP_USER_AGENT environment variable can be used to create dynamic content appropriate to the browser.