สิ่งที่ฉันต้องการบรรลุคือการได้รับลิงก์สองลิงก์ที่แยกจากกันซึ่งเชื่อมโยงไปยังสองแอปพลิเคชันที่แตกต่างกัน
http://hostname.com <---เวิร์ดเพรส
http://hostname.com/openproject/ <--- openproject หรือในที่สุด http://openproject.hostname.com/ แต่ฉันเดาว่าต้องดำเนินการกับผู้ให้บริการ VPS ของฉัน
แอปพลิเคชันแรกจะเป็นบล็อก WordPress ที่มีการกำหนดค่าเช่น:
/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
นามแฝง /wordpress /var/www/HOSTNAME_HERE/wordpress
<ไดเรกทอรี /var/www/HOSTNAME_HERE/wordpress>
ตัวเลือก FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php.c>
<IfModule mod_mime.c>
แอปพลิเคชัน AddType/x-httpd-php .php
</หากโมดูล>
<FilesMatch ".+\.php$">
โปรแกรม SetHandler/x-httpd-php.ini
</FilesMatch>
</หากโมดูล>
</ไดเร็กทอรี>
<ไดเรกทอรี /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType พื้นฐาน
</หากโมดูล>
ต้องการผู้ใช้ที่ถูกต้อง
</หากโมดูล>
</ไดเร็กทอรี>
<ไดเรกทอรี /usr/share/phpmyadmin/libraries>
ต้องการปฏิเสธทั้งหมด
</ไดเร็กทอรี>
<ไดเรกทอรี /usr/share/phpmyadmin/setup/lib>
ต้องการปฏิเสธทั้งหมด
</ไดเร็กทอรี>
ใช้ได้กับ SSL ผ่าน
/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>
แอปพลิเคชันที่สองจะได้รับการกำหนดค่า openproject ผ่าน:
etc/apache2/mods-enabled/passenger.load
LoadModule Passenger_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>
PassengerRoot /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
</หากโมดูล>
/etc/apache2/sites-enabled/openproject.conf
ปิดใช้งาน SetEnv EXECJS_RUNTIME
<โฮสต์เสมือน *:8080>
ชื่อเซิร์ฟเวอร์ IP_ADDR_HERE
DocumentRoot /home/openproject/openproject/public
<ไดเรกทอรี /home/openproject/openproject/public>
AllowOverride ทั้งหมด
ตัวเลือก -MultiViews
ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>
<สถานที่ /ทรัพย์สิน/>
ExpiresActive On ExpiresDefault "การเข้าถึงบวก 1 ปี"
</สถานที่>
</เวอร์ชวลโฮสต์>
แอปพลิเคชันพร้อมใช้งานโดยไม่ต้องใช้ SSL บน http://HOSTNAME_HERE.com:8080 และการกำหนดค่าใดๆ ที่ฉันได้ลองจะใช้งานได้เพื่อโฮสต์แอปพลิเคชันนี้บน http://HOSTNAME_HERE.com/openproject/
การกำหนดค่าที่ฉันได้ลอง /etc/apache2/sites-enabled/openproject.conf
ปิดใช้งาน SetEnv EXECJS_RUNTIME
<โฮสต์เสมือน *:80>
ชื่อเซิร์ฟเวอร์ IP_ADDR_HERE
DocumentRoot /home/openproject/openproject/public
ProxyPass /openproject/ http://127.0.0.1:6002/openproject/ ลองใหม่=0
ProxyPassReverse /openproject/ http://127.0.0.1:6002/openproject/
<ไดเรกทอรี /home/openproject/openproject/public>
AllowOverride ทั้งหมด
ตัวเลือก -MultiViews
ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>
<สถานที่ /ทรัพย์สิน/>
ExpiresActive On ExpiresDefault "การเข้าถึงบวก 1 ปี"
</สถานที่>
</เวอร์ชวลโฮสต์>
ลองอีกครั้ง:
ปิดใช้งาน SetEnv EXECJS_RUNTIME
<โฮสต์เสมือน *:80>
ชื่อเซิร์ฟเวอร์ IP_ADDR_HERE
DocumentRoot /home/openproject/openproject/public
นามแฝง /openproject/ /home/openproject/openproject/public
<ไดเรกทอรี /home/openproject/openproject/public>
AllowOverride ทั้งหมด
ตัวเลือก -MultiViews
ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>
<สถานที่ /ทรัพย์สิน/>
ExpiresActive On ExpiresDefault "การเข้าถึงบวก 1 ปี"
</สถานที่>
</เวอร์ชวลโฮสต์>
ลองอีกครั้ง:
ปิดใช้งาน SetEnv EXECJS_RUNTIME
<โฮสต์เสมือน *:80>
ชื่อเซิร์ฟเวอร์ IP_ADDR_HERE/openproject/
DocumentRoot /home/openproject/openproject/public
<ไดเรกทอรี /home/openproject/openproject/public>
AllowOverride ทั้งหมด
ตัวเลือก -MultiViews
ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>
<สถานที่ /ทรัพย์สิน/>
ExpiresActive On ExpiresDefault "การเข้าถึงบวก 1 ปี"
</สถานที่>
</เวอร์ชวลโฮสต์>
และไม่มีอะไรทำงาน ฉันได้รับข้อผิดพลาด 301 หรือ 403 หรือ 404 โปรดช่วยฉันด้วยการตั้งค่าของฉัน
แอปพลิเคชัน PS ภายในทำงานบนพอร์ต 6002