2010-05-14 36 views
9

tôi đã thiết lập trong file custom.conf tôi trong apache2 này:Làm cách nào để thêm đường dẫn vào biến Apache PATH?

SetEnv PATH $PATH:/opt/local/lib/mysql5/bin:/this-is-a-test 

Tuy nhiên nó không làm việc. Khi tôi gọi:

$hey = shell_exec('env'." 2>&1"); var_dump($hey); 

tôi nhận được:

... PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/opt/local/bin 

bất cứ ai có thể giúp đỡ? Tôi đang sử dụng Mac trên Mac cho môi trường phát triển của mình. Cảm ơn!

Trả lời

2

Điều đó có vẻ kỳ lạ đối với tôi rằng bạn đang cố gắng đặt PATH từ bên trong Apache. Thay vào đó, bạn nên thiết lập PATH cho hệ thống của bạn. Có một số cách để làm điều này trong Mac OS X:

người dùng cụ thể
Đối với một người sử dụng duy nhất, bạn có thể chỉnh sửa ~/.profile và thêm:

export PATH="$PATH":/opt/local/lib/mysql5/bin:/this-is-a-test 

Hoặc bạn có thể tạo/chỉnh sửa ~/.MacOSX/environment.plist và định nghĩa PATH theo cách đó.

Hệ thống toàn
Trong các phiên bản mới hơn của Mac OS X, có một tập tin có tên "/ etc/đường dẫn" và có một thư mục có tên "/etc/paths.d" cho phép bạn mở rộng đường dẫn mặc định. Về cơ bản, bạn sẽ tạo một tệp trong "/etc/paths.d" liệt kê tất cả các đường dẫn mà bạn muốn thêm vào các đường dẫn mặc định. Trên các phiên bản của Mac OS X không hỗ trợ điều này (bạn có thể biết dựa trên việc "/ usr/libexec/path_helper" tồn tại), người ta có thể chỉnh sửa đường dẫn mặc định cho tất cả người dùng bằng cách đặt câu lệnh xuất ở trên trong/etc/profile.

+0

Michael, cảm ơn bạn đã trả lời. Cả hai tệp .profile và .bash_login của tôi đều có các đường dẫn được chỉ định, nhưng PHP chạy trên Apache không nhận ra chúng. Tôi vừa thử tùy chọn /etc/paths.d/, nhưng điều đó dường như không hoạt động, tôi có phải khởi động lại máy để những người đó có ảnh hưởng không? Tôi khởi động lại apache - không có gì. – TylerNZ

+0

@TylerNZ, bạn cần phải đóng, sau đó mở lại Terminal, và sau đó khởi động lại Apache từ bên trong môi trường của bạn, trong đó các biến được xác định. –

+0

đã thử rằng, vẫn không có gì ... Tôi nghĩ rằng một cái gì đó cụ thể cần phải được thực hiện cho apache hoặc người dùng root, mà apache đang chạy như? – TylerNZ

8

cho máy chủ ubuntu, trong/etc/apache2/envvars, cho centos server, trong/etc/sysconfig/httpd, thêm:

export PATH=<your php cli path> 

và khởi động lại apache

0

Câu hỏi này cũ, nhưng trong trường hợp nó giúp người khác, nếu bạn đang sử dụng Windows với mod_fcgid kiểm tra xem bạn có FcgidInitialEnv được đặt trong số httpd.conf và xóa nó để áp dụng Hệ thống PATH hay không.

Các vấn đề liên quan