Я пытаюсь настроить Apache WebServer в Ubuntu 16.04 для обслуживания веб-сайта PHP и API-интерфейсов PHP через две директивы VirtualHost, как показано ниже:
`<VirtualHost *:80>
ServerName phpapi.my-domain.net
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/services
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName nodeapi.my-domain.net
<Location "/">
ProxyPreserveHost On
ProxyPass http://localhost:2040/
ProxyPassReverse http://localhost:2040/
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName admin.my-domain.net
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/admin
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>`
У меня есть папка администратора внутри html, и код работаетесли я просто вызываю http :: IP_Address / admin.
Когда я это сделал -> sudo apache2ctl -SI мог видеть VirtualHost, как показано ниже:
VirtualHost configuration:*:80 is a NameVirtualHost
default server phpapi.my-domain.net (/etc/apache2/sites-enabled/my-
domain.net.conf:1)
port 80 namevhost nodeapi.my-domain.net (/etc/apache2/sites-
enabled/my-domain.net.conf:8)
port 80 namevhost admin.my-domain.net (/etc/apache2/sites-
enabled/my-domain.net.conf:18)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex proxy: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
Теперь, когда я пытаюсь запустить http://admin.my -domain.net это работает и показывает страницу сервера Ubuntu (так работает мой DNS).И когда я даю путь для файлов моего проекта ... http://admin.my -domain.net / admin я получаю 404 ( Запрошенный URL / admin / не найден на этом сервере. ) То же самое относится и к http://phpapi.my -domain.net (получите 404).Но что интересно, настройка NodeAPI работает, и я получаю 200 Ok за мой вызов API POST.
Теперь я не уверен, почему параметр PHP VirtualHost не работает и работает только параметр Node API?Как вы можете сказать, я новичок в конфигурации Apache2.У меня действительно есть дефис в доменном имени по любой причине.Я надеюсь, что кто-то может направить меня в правильном направлении или помочь, поскольку я потратил много времени на это, пытаясь понять, что происходит и делает эту работу.
Спасибо за ваше время.