Điều tôi muốn đạt được là nhận được hai liên kết riêng biệt liên kết đến hai ứng dụng khác nhau.
http://hostname.com <--- wordpress
http://hostname.com/openproject/ <--- openproject hoặc cuối cùng http://openproject.hostname.com/ nhưng điều này tôi đoán sẽ yêu cầu hành động trên nhà cung cấp VPS của tôi.
Ứng dụng đầu tiên sẽ là blog wordpress với cấu hình như sau:
/etc/apache2/sites-enabled/wordpress.conf
<VirtualHost *:80>
ServerAdmin admin@HOSTNAME_HERE.com
DocumentRoot /var/www/HOSTNAME_HERE/wordpress/
Redirect / https://HOSTNAME_HERE.com/
<Directory /var/www/HOSTNAME_HERE/wordpress/>
Options +FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
/etc/apache2/conf-enabled/wordpress.conf
Bí danh /wordpress /var/www/HOSTNAME_HERE/wordpress
<Thư mục /var/www/HOSTNAME_HERE/wordpress>
Tùy chọn FollowSymLinks
Directory Index index.php
<IfModule mod_php.c>
<IfModule mod_mime.c>
Ứng dụng AddType/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
Ứng dụng SetHandler/x-httpd-php
</FilesMatch>
</IfModule>
</Thư mục>
<Thư mục /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType cơ bản
</IfModule>
Yêu cầu người dùng hợp lệ
</IfModule>
</Thư mục>
<Thư mục /usr/share/phpmyadmin/libraries>
Yêu cầu tất cả bị từ chối
</Thư mục>
<Thư mục /usr/share/phpmyadmin/setup/lib>
Yêu cầu tất cả bị từ chối
</Thư mục>
có sẵn với SSL thông qua
/etc/apache2/sites-enabled/default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin admin@HOSTNAME_HERE.com
ServerName ip.address.of.hostname
DocumentRoot /var/www/HOSTNAME_HERE/wordpress/
<Directory /var/www/HOSTNAME_HERE/wordpress/>
Options +FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384...
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off
SSLCertificateFile /etc/apache2/ssl/certificate.crt
SSLCertificateKeyFile /etc/apache2/ssl/pkey.key
SSLCertificateChainFile /etc/apache2/ssl/chain-ca.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Ứng dụng thứ hai sẽ được cấu hình openproject thông qua:
etc/apache2/mods-enabled/passenger.load
LoadModule hành khách_module /home/openproject/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/passenger-6.0.10/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PasbahRoot /home/openproject/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/passenger-6.0.10
PassengerDefaultRuby /home/openproject/.rbenv/versions/2.7.3/bin/ruby
</IfModule>
/etc/apache2/sites-enabled/openproject.conf
SetEnv EXECJS_RUNTIME Đã tắt
<Máy chủ ảo *:8080>
Tên máy chủ IP_ADDR_HERE
DocumentRoot /home/openproject/openproject/public
<Thư mục /home/openproject/openproject/public>
AllowOverride all
Tùy chọn -MultiViews
Yêu cầu tất cả cấp
</Thư mục>
<Vị trí /tài sản/>
ExpiresActive On ExpiresDefault "truy cập cộng thêm 1 năm"
</Vị trí>
</Máy chủ ảo>
Ứng dụng khả dụng mà không cần SSL trên http://HOSTNAME_HERE.com:8080 và bất kỳ cấu hình nào tôi đã thử sẽ hoạt động để lưu trữ ứng dụng này trên http://HOSTNAME_HERE.com/openproject/
cấu hình mà tôi đã thử trên /etc/apache2/sites-enabled/openproject.conf
SetEnv EXECJS_RUNTIME Đã tắt
<Máy chủ ảo *:80>
Tên máy chủ IP_ADDR_HERE
DocumentRoot /home/openproject/openproject/public
ProxyPass /openproject/ http://127.0.0.1:6002/openproject/ retry=0
ProxyPassReverse/openproject/ http://127.0.0.1:6002/openproject/
<Thư mục /home/openproject/openproject/public>
AllowOverride all
Tùy chọn -MultiViews
Yêu cầu tất cả cấp
</Thư mục>
<Vị trí /tài sản/>
ExpiresActive On ExpiresDefault "truy cập cộng thêm 1 năm"
</Vị trí>
</Máy chủ ảo>
Một lần thử khác:
SetEnv EXECJS_RUNTIME Đã tắt
<Máy chủ ảo *:80>
Tên máy chủ IP_ADDR_HERE
DocumentRoot /home/openproject/openproject/public
Bí danh /openproject/ /home/openproject/openproject/public
<Thư mục /home/openproject/openproject/public>
AllowOverride all
Tùy chọn -MultiViews
Yêu cầu tất cả cấp
</Thư mục>
<Vị trí /tài sản/>
ExpiresActive On ExpiresDefault "truy cập cộng thêm 1 năm"
</Vị trí>
</Máy chủ ảo>
Một lần thử khác:
SetEnv EXECJS_RUNTIME Đã tắt
<Máy chủ ảo *:80>
Tên máy chủ IP_ADDR_HERE/openproject/
DocumentRoot /home/openproject/openproject/public
<Thư mục /home/openproject/openproject/public>
AllowOverride all
Tùy chọn -MultiViews
Yêu cầu tất cả cấp
</Thư mục>
<Vị trí /tài sản/>
ExpiresActive On ExpiresDefault "truy cập cộng thêm 1 năm"
</Vị trí>
</Máy chủ ảo>
và không có gì đã làm việc. Tôi đã nhận được lỗi 301 hoặc 403 hoặc 404. Xin hãy giúp tôi với thiết lập của tôi.
Ứng dụng PS nội bộ đang chạy trên cổng 6002