Ví dụ này giải thích làm thế nào để gán phiên bản PHP khác nhau cho mỗi thư mục, nó cũng có thể được điều chỉnh để hỗ trợ thêm Python bằng cách chạy Python thông dịch như fast_cgi
trên đặc biệt cổng
Với mục đích của ví dụ, tôi giả sử có thư mục riêng biệt cho mỗi phiên bản PHP và chúng được đặt tên theo phiên bản PHP chạy chúng, nhưng điều này có thể được điều chỉnh
mkdir /home/user/www
mkdir /home/user/www/5.6.5
mkdir /home/user/www/7.0.2
mkdir /home/user/www/7.0.4
mkdir /home/user/www/7.0.6
tạo liên kết tượng trưng đến thư mục cần được xử lý bởi các phiên bản PHP khác nhau
sudo ln -s /home/user/www/7.0.2/ /var/www/html/7.0.2
sudo ln -s /home/user/www/7.0.4/ /var/www/html/7.0.4
sudo ln -s /home/user/www/7.0.6/ /var/www/html/7.0.6
sau đó thêm dòng sau vào /etc/apache2/sites-enabled/000-default.conf trong mặc định máy chủ ảo *:80
(đối với nhu cầu của bạn, bạn có thể thiết lập thêm một handler cgi nhanh vào đây để trang web đòi hỏi Python), tôi giả sử php 5.6.5
chạy trên cổng 9999
, 7.0.2
chạy trên cổng 9998
vv ...
DirectoryIndex index.html index.php
ProxyPassMatch ^/5.6.5/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9999/var/www/html/
ProxyPassMatch ^/7.0.2/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9998/var/www/html/
ProxyPassMatch ^/7.0.4/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9997/var/www/html/
ProxyPassMatch ^/7.0.6/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9996/var/www/html/
giả sử máy chủ của bạn được trỏ bởi example.com
bạn có thể thử nghiệm nó trên
http://example.com/5.6.5/
http://example.com/7.0.2/
http://example.com/7.0.4/
http://example.com/7.0.6/
Vâng vấn đề là tôi chỉ có 1 tên miền không có khả năng để thêm bất kỳ tên miền phụ hơn. Và tôi cần chạy 3 ứng dụng khác nhau trên đó. Chỉ thị thư mục không phải là một tùy chọn vì tôi không thể đặt các init scrpits WSGI vào nó. – Ruslan
@Ruslan: Nếu không có bất kỳ kinh nghiệm nào từ WSGI, một tài liệu nhanh cho thấy rằng bạn có thể 'WSGIScriptAlias / app1/usr/local/wsgi/scripts/app1.wsgi' theo sau là' WSGIScriptAlias / app2/usr/local/wsgi/scripts/app2.wsgi', v.v. Không chắc là đủ chưa? – PtPazuzu
Vâng tôi kết thúc với WSGIScriptAlias không được phép ở đây lỗi – Ruslan