Назад | Перейти на главную страницу

Настройка виртуального хоста для интрасети в apache2 - suse linux

У нас есть сайты (название папки / SRV / www / vhosts / WP-интранет размещен на сервере в нашей локальной сети. Для этого нам нужен Vhost, чтобы сайт был доступен по адресу "http://192.168.20.25/intranet"и / или"http://intranet.mycompany.de"

Я выполнил инструкции в документации, но это не работает. Это конфигурация VirtualHost (/etc/apache2/vhost.d/wp-intranet.conf)

<VirtualHost 192.168.20.25>
  ServerName intranet.mycompany.de
  DocumentRoot /srv/www/vhosts/wp-intranet
  ServerAdmin myname@mycompany.de
  ErrorLog /var/log/apache2/intranet.mycompany.de_errorlog
  CustomLog /var/log/apache2/intranet.mycompany.de_customlog common
  <Directory "/srv/www/vhosts/wp-intranet">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

Я также добавил NameVirtualHost *:80 к /etc/apache2/listen.conf.

Затем я сделал запись hosts в своем клиенте Windows:

192.168.20.25   intranet.mycompany.de

Но если я перейду к intranet.mycompany.de с моего компьютера с Windows, затем файл /srv/www/htdocs/index.html открывается.

Я также перезапустил службу apache (service apache2 restart)

Я надеюсь, что кто-то может указать мне правильное направление. В документация не помогает, я следил за каждым шагом, но он все равно не работает.

Я наконец решил это. В официальной документации отсутствует важная информация и она устарела.

Мне пришлось включить мой файл конфигурации vhost /etc/apache2/vhost.d/wp-intranet.conf в /etc/apache2/httpd.conf

IncludeOptional /etc/apache2/vhosts.d/wp-intranet.conf

Затем я заметил, что не могу перезапустить службу apache2.

Задание для apache2.service завершилось неудачно, поскольку процесс управления завершился с кодом ошибки. См. "Systemctl status apache2.service" и "journalctl -xe" для подробностей.

Я казнил systemctl status apache2.service и получил:

● apache2.service - The Apache Webserver
   Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2018-07-10 12:59:07 CEST; 10s ago
  Process: 2017 ExecStop=/usr/sbin/start_apache2 -DSYSTEMD -DFOREGROUND -k graceful-stop (code=exited, status=1/FAILURE)
  Process: 7622 ExecReload=/usr/sbin/start_apache2 -DSYSTEMD -DFOREGROUND -k graceful (code=exited, status=0/SUCCESS)
  Process: 2008 ExecStart=/usr/sbin/start_apache2 -DSYSTEMD -DFOREGROUND -k start (code=exited, status=1/FAILURE)
 Main PID: 2008 (code=exited, status=1/FAILURE)

Jul 10 12:59:07 intern start_apache2[2008]: AH00526: Syntax error on line 8 of /etc/apache2/vhosts.d/wp-i...onf:
Jul 10 12:59:07 intern start_apache2[2008]: Invalid command 'Order', perhaps misspelled or defined by a m...tion
Jul 10 12:59:07 intern systemd[1]: apache2.service: Main process exited, code=exited, status=1/FAILURE
Jul 10 12:59:07 intern start_apache2[2017]: AH00548: NameVirtualHost has no effect and will be removed in...f:41
Jul 10 12:59:07 intern start_apache2[2017]: AH00526: Syntax error on line 8 of /etc/apache2/vhosts.d/wp-i...onf:
Jul 10 12:59:07 intern start_apache2[2017]: Invalid command 'Order', perhaps misspelled or defined by a m...tion
Jul 10 12:59:07 intern systemd[1]: apache2.service: Control process exited, code=exited status=1
Jul 10 12:59:07 intern systemd[1]: Failed to start The Apache Webserver.
Jul 10 12:59:07 intern systemd[1]: apache2.service: Unit entered failed state.
Jul 10 12:59:07 intern systemd[1]: apache2.service: Failed with result 'exit-code'.
Hint: Some lines were ellipsized, use -l to show in full.

Итак, я понял, что конфигурация виртуального хоста из официальной документации имеет синтаксические ошибки. Мне пришлось изменить его на это:

<VirtualHost *:80>
  ServerName intranet.mycompany.de
  DocumentRoot /srv/www/vhosts/wp-intranet
  ServerAdmin edward.black@mycompany.de
  ErrorLog /var/log/apache2/intranet.mycompany.de_errorlog
  CustomLog /var/log/apache2/intranet.mycompany.de_customlog common
  <Directory "/srv/www/vhosts/wp-intranet">
    #Order allow,deny
    AllowOverride All
    #Allow from all
    Require all granted
  </Directory>
</VirtualHost>

Теперь я смог перезапустить apache2, и если я перейду к http://intranet.mycompany.de/ тогда открывается сайт wordpress!

в <VirtualHost> Директива, синтаксис <VirtualHost addr[:port] [addr[:port]] ...>. Хотя полное доменное имя для IP-адреса поддерживается, это не рекомендуется. Поскольку Apache отличает имя хоста от Host: заголовок ServerName (и, возможно, с ServerAlias), он вам там не нужен. Пытаться <VirtualHost *:80>.