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
và .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
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
- Đặt các biến môi trường yêu cầu khởi động lại trên 64 bit
- //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 false
0. Cố gắng truy cập biến môi trường thông qua false
1;
Đã trả lời ngày 26 tháng 6 năm 2016 lúc 16:34Jun 26, 2016 at 16:34
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 false
2 thành false
3 thay vì nhà phát triển và giá trị sản xuất false
4 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
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:
- Dừng quy trình máy chủ Apache
- Đó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 false
5, bool false
6 = false
]: Chuỗi | Sai[string false
5, bool false
6 = 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ố
false
8Tên biến.
false
9Đượ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 false
8 hoặc false
nếu biến môi trường false
8 không tồn tại. Nếu false
8 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 false
8 does not exist. If false
8 is omitted, all environment variables are returned as associative array.
Thay đổi
7.1.0 | false 8 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ố false 9 đã được thêm vào. |
Ví dụ
Ví dụ #1 getenv [] ví dụgetenv[] Example
PassEnv
6
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ố false
9 để 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 false
9 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
PassEnv
8
PassEnv
9
.htaccess
0jcastromail tại yahoo dot es ¶ ¶
2 năm trước
.htaccess
1
.htaccess
2
.htaccess
3
.htaccess
4
.htaccess
5
.htaccess
6
.htaccess
0Eng.mrkto.com ¶
12 năm trước
.htaccess
8
yw [] beeznest! com ¶ ¶
6 năm trước
.htaccess
9
.conf
0
.conf
1
.htaccess
0PHP tại Keith Tyler Dot Com ¶ ¶
10 năm trước
.conf
3
.conf
4
.conf
5
.conf
6
.htaccess
0Kyong ¶ ¶
18 năm trước
.conf
8
prumisn tại gmail dot com ¶ ¶
7 năm trước
.conf
9
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]
7PHP 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
.htaccess
0