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

CentOS 7 не подключается к внешней базе данных MySQL. База данных работает с других серверов

У меня установлен новый сервер CentOS с Apache и php-fpm.

Приложению php не удается подключиться к внешнему серверу MySQL. Этот сервер доступен с других серверов, проблема не в брандмауэре на сервере базы данных.

Я проверил журналы apache и php-fpm, но не могу найти там никаких подсказок. Если я подключаюсь к внешней базе данных через MySQL на сервере CentOS, проблем нет, но приложение php не работает.

Это заставляет меня заключить, что путь от клиента к серверу базы данных без препятствий, но что CentOS 7 или php-fpm где-то вызывают проблемы.

Кто-нибудь знает, что это может быть? Не знаю, где еще искать. Возможно, какие-то новые изменения безопасности в CentOS 7, о которых я не знаю?

Вероятно, это проблема, связанная с SELINUX. Попробуйте следующее (в порядке предпочтения):

  1. setsebool httpd_can_network_connect_db on
    Если он работает, сделайте его постоянным, используя флаг «-P». Если не работает, переходите к шагу 2:
  2. setsebool httpd_can_network_connect on
    Как и выше, если это работает, используйте флаг «-P». В противном случае перейдите к шагу 3:
  3. setenforce 0
    Это переведет SELINUX в ​​разрешающий (то есть в неблокирующий) режим. Если это работает, вы должны попытаться понять какие заставляет selinux блокировать ваше соединение (хорошее место для начала - tail -f /var/log/audit/audit.log).

Если вы не можете понять, почему selinux блокирует вас, вы можете установить его в разрешающий режим навсегда, отредактировав файл / etc / selinux / config.

Я задал этот вопрос всего на 30 минут раньше. Была переменная SELinux, о которой я не знал: httpd_can_network_connect. Установка этого решила проблему :)