Tôi chỉ muốn apache của tôi để đăng ký một số môi trường được xác định trước của tôi để tôi có thể lấy nó bằng cách sử dụng hàm getenv trong php. Tôi có thể làm cái này như thế nào? Tôi đã thử thêm /etc/profile.d/foo.sh với xuất FOO =/bar/baz bằng cách sử dụng root và apache khởi động lại.reinitialize biến môi trường hệ thống rộng trong linux
Trả lời
Biến môi trường được kế thừa bởi các quy trình trong Unix. Các tập tin trong /etc/profile.d chỉ được thực hiện (trong shell hiện tại, không phải trong một subshell) khi bạn đăng nhập. Chỉ cần thay đổi giá trị ở đó và sau đó khởi động lại một quá trình sẽ không cập nhật môi trường.
thể Sửa chữa:
- log ra/đăng nhập, sau đó bắt đầu apache
- nguồn tập tin:
# . /etc/profile.d/foo.sh
, sau đó khởi động lại apache - nguồn tập tin trong kịch bản apache init
Bạn cũng cần đảm bảo rằng /etc/profile.d/
có nguồn gốc khi Apache được bắt đầu bằng init
thay vì chính bạn.
Khắc phục tốt nhất cũng có thể phụ thuộc vào phân phối bạn đang sử dụng, vì chúng sử dụng các lược đồ khác nhau để định cấu hình.
Tốt. Hãy nhớ rằng init script của apache có thể thay đổi khi nâng cấp. –
Bạn có thể sử dụng SetEnv trong tệp cấu hình của mình (/etc/httpd/conf.d/*.conf, .htaccess ...). Ngoài ra, bạn có thể xác định chúng trong/etc/sysconfig/httpd (trên các bản phân phối dựa trên RPM) và xuất khẩu chúng (lưu ý: không được kiểm tra).
Lưu ý: nó sẽ không làm tôi ngạc nhiên nếu một số bản phân phối cố gắng khá nhiều để ẩn càng nhiều càng tốt, theo như cấu hình hệ thống, từ một dịch vụ công cộng có thể truy cập như Apache. Và nếu không, họ có thể bắt đầu làm điều này trong một phiên bản tương lai. Do đó tôi khuyên bạn nên làm điều này một cách rõ ràng. Nếu bạn cần chia sẻ như một thiết lập giữa Apache và vỏ của bạn, bạn có thể cố gắng tìm nguồn cung ứng /etc/profile.d/yourprofile.sh từ /etc/sysconfig/httpd
Apache tập tin cấu hình cho phép bạn thiết lập biến môi trường trên cơ sở mỗi trang web.
Vì vậy, nếu máy chủ web của bạn đang phục vụ các trang từ hai trang web logic, bạn có thể đặt cùng một biến môi trường khác nhau cho mỗi trang web và do đó làm cho PHP của bạn phản ứng khác nhau.
Xem Apache mod_env để biết chi tiết:
Nếu bạn cần env VAR chỉ Apache, những gì làm việc đối với tôi là chỉnh sửa /etc/apache2/envvars
và khởi động lại Apache. Tôi đã thêm các cài đặt này:
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'
- 1. Biến môi trường hệ thống Java
- 2. đặt biến môi trường cho hệ thống() trong R?
- 3. Đặt biến môi trường hệ thống từ tệp lô Windows?
- 4. Biến môi trường trong Python trên Linux
- 5. Làm thế nào để thiết lập biến môi trường cho tất cả mọi người trong hệ thống Linux của tôi?
- 6. Sử dụng các biến môi trường hệ thống trong một kịch bản sql
- 7. Làm cách nào để xuất biến môi trường phạm vi hệ thống trong bash
- 8. Trong TeamCity, có biến hệ thống/môi trường cho id xây dựng hiện tại không?
- 9. cách đọc biến môi trường hệ thống trong ứng dụng SpringContext
- 10. Cách đọc các biến môi trường Linux trong C++
- 11. Đặt biến môi trường Linux theo lập trình trong Java
- 12. C++ hệ thống linux lệnh
- 13. Thu thập thông tin hệ thống và môi trường
- 14. Môi trường ảo cho Linux Kernel hack
- 15. Thiết lập biến môi trường hiển thị cho hệ thống Unix từ xa
- 16. Đặt biến môi trường có linux không gian
- 17. Cách đọc biến môi trường người dùng trong C#?
- 18. Biến môi trường Ruby
- 19. Cách gỡ lỗi hệ thống tệp FUSE trong Linux
- 20. Biến môi trường Javascript
- 21. mở rộng tên tập tin đó có các biến môi trường trong con đường của mình
- 22. Cách đặt umask rộng của hệ thống?
- 23. Làm thế nào để đặt biến môi trường hoặc thuộc tính hệ thống trong các thử nghiệm mùa xuân?
- 24. Trong TeamCity, có biến hệ thống/môi trường cho id cấu hình xây dựng hiện tại không?
- 25. Tại sao PATHhell Environment PATH lại khác với PATH của môi trường hệ thống?
- 26. Trong trường hợp nào, bạn nên chọn tham gia hệ thống BSD thay vì Linux?
- 27. Biến môi trường CMAKE_INSTALL_PREFIX - không hoạt động?
- 28. Biến môi trường đơn điệu
- 29. UNIX, nhận biến môi trường
- 30. Xuất biến môi trường sang Makefile shell
Phân phối gì? Điều này tác động đến cách thực hành tốt nhất để làm điều này. – freespace