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

PHPmyadmin не работает с корнем документа после успешной установки Varnish

На прошлой неделе я установил Varnish, и мои веб-сайты теперь работают с ним нормально - я могу перемещаться и изменять их без ошибок. Когда я его установил, я поставил Varnish на порт 80 и переместил Apache на порт 8080.

Позже я заметил, что если я запустил в своем браузере следующее, я не смогу получить доступ к phpmyadmin:

МОЙ_IP: 80 / phpmyadmin МОЙ_IP: 8080 / phpmyadmin

Тем не менее, если я перемещу phpmyadmin, чтобы сказать / var / www / html / site_dir / phpmyadmin, я действительно смогу получить к нему доступ без проблем через domain.tld / phpmyadmin

Но вот что-то странное, теперь кажется, что ничего с IP_ADDRESS не работает, даже сайт, который работает без него в браузере:

MY_IP / domain.tld MY_IP / domain.tld / phpmyadmin MY_IP: 8080 / domain.tld / phpmyadmin

У меня вопрос: почему я не могу получить доступ к чему-либо на сервере с IP-адресом, кроме страницы Apache index.html, из любого браузера?


Я установил Varnish следующим образом:

cd ~
apt-get update && apt-get install varnish -y
sed -i 's/Listen 80/Listen 8080/g' /etc/apache2/ports.conf
sed -i 's/\*\:80/\*\:8080/g' /etc/apache2/sites-available/000-default.conf
sed -i 's/\*\:80/\*\:8080/g' /etc/apache2/sites-available/domain.tld.conf && domain.tld.conf
mkdir -p /etc/systemd/system/varnish.service.d # Be aware! You might not need this in the future.
cat <<-'VARNISH' > /etc/systemd/system/varnish.service.d/customexec.conf
    [Service]
    ExecStart=
    ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
VARNISH
systemctl restart apache2.service && systemctl daemon-reload && systemctl restart varnish.service

Это (относительно) нормальное поведение.

Ваша конфигурация Apache настроена для обслуживания /var/www/html/site_dir из вашего домена. Это означает, что вы фактически не можете получить доступ ни к чему не в этом каталоге, когда вы проверяете свой сайт из своего домена. Если вы хотите получить доступ к PHPmyAdmin с доменного имени, вам придется переместить его в site_dir, или измените свой веб-корневой каталог на /var/www/html и переместите все остальные файлы.

В качестве альтернативы вы можете создать новый виртуальный хост для PHPmyAdmin с его собственным доменным именем, например:

<VirtualHost pma.example.com:8080>
    ServerName pma.example.com

    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/html/phpmyadmin/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    [ anything else ... ]
</VirtualHost>

Что касается того, почему вы не можете получить доступ ни к чему по своему IP-адресу, так это потому, что ваш виртуальный хост для вашего домена настроен на ваш домен. Когда Apache не может сопоставить ни один из ваших виртуальных хостов, он возвращается к 000_default, который не имеет установленного ServerName и слушает все. Если вы хотите, чтобы к вашему сайту всегда был доступ (по IP или какому-либо другому), вам необходимо настроить текущий виртуальный хост таким же образом, как и 000_default настроен (или просто перенастроить 000_default и отключите свой собственный виртуальный хост). Или создайте новый виртуальный хост, соответствующий вашему IP.

Если вы хотите использовать свой IP-адрес в качестве «черного хода» для управления такими вещами, как PHPmyAdmin и всем остальным, хранящимся в /var/www/html, вы можете настроить это, убедившись, что DocumentRoot является /var/www/html. Обратите внимание, однако, что это представляет незначительную угрозу безопасности, особенно если вы размещаете несколько доменов на своем веб-сайте.