Рейтинг:1

Не удается подключить Wordpress и MariaDB к стеку LAMP с помощью docker-compose

флаг se

Я новичок здесь, и это мой первый вопрос, поэтому скажите мне, если что-то не так в том, как я выразился.

Итак, вот проблема: я создаю стек LAMP с 3 отдельными контейнерами для nginx, maiadb и wordpress.

Кажется, что весь nginx и php-fpm работают хорошо, так как я могу получить доступ к индексу сайта и обрабатывать страницы php. Mdb создает базу данных wordpress и создает пользователя «wordpress@wordpress-php» со всеми привилегиями.

Когда я захожу на сайт для установки, все начинает идти не так, я застреваю с сообщением: «Ошибка установления соединения с базой данных».

Вот мой файл wp-config.php, который я копирую в каталог wordpress внутри контейнера:

 <?php                                                          

  4 define( 'DB_NAME', 'wordpress' );
  7 define( 'DB_USER', 'wordpress' );
 10 define( 'DB_PASSWORD', 'wordpress' );

 15 define( 'DB_HOST', 'mariadb' );                                                                                                                                                      
 16 define( 'DB_CHARSET', 'utf8' );                                                 
 17                                                                                              
 19 define( 'DB_COLLATE', '' );                                                     
 20 define('AUTHOR', 'yotillar');                                                   
 21                                                                                 
 22 // Authentication unique keys and salts.                                        
 23 define( 'AUTH_KEY',         'key' );
 24 define( 'SECURE_AUTH_KEY',  'key' );
 25 define( 'LOGGED_IN_KEY',    'key' );
 26 define( 'NONCE_KEY',        'key' );
 27 define( 'AUTH_SALT',        'salt' );                                    
 28 define( 'SECURE_AUTH_SALT', 'salt' );
 29 define( 'LOGGED_IN_SALT',   'salt' );
 30 define( 'NONCE_SALT',       'salt' );
 31                                                                                                               
 38 $table_prefix = 'wp_';       
        
 51 define( 'WP_DEBUG', true );                                    
 52 define( 'WP_DEBUG_LOG', true );                                
 53 define( 'WP_DEBUG_DISPLAY', false );                           
                                                                  
 59 if ( ! defined( 'ABSPATH' ) ) {                                
 60 »···define( 'ABSPATH', __DIR__ . '/' );                        
 61 }                                                                                            
 64 require_once ABSPATH . 'wp-settings.php';                      
 65 ?>                                            

Вот мой docker-compose.yaml:

версия: "3.5"                                                                  
  2                                                                                 
  3 сети:                                                                       
  4 фронт-сеть:                                                                
  5 водитель: мост                                                              
  6 прикрепляемый: ложный                                                           
  7 обратная сеть:                                                                 
  8 водитель: мост                                                              
  9 прикрепляемый: ложный                                                           
 10                                                                                 
 11 томов:                                                                          
 12 mdb-данные:                                                                     
 13 вордпресс:                                                                    
 14                                                                                 
 15 услуг:                                                                       
 16                                                                                 
 17 нгинкс:                                                                        
 18 зависит от:                                                                 
 19 - wordpress-php                                                           
 20 сборка: "./services/nginx"                                                   
 21 изображение: nginx:mytag                                                          
 22 тома:                                                                    
 23 - wordpress:/var/www/myserver/wordpress:rw                                
 24 - "../logs/nginx_logs:/var/log/nginx:rw"                                  
 25 перезапуск: при отказе                                                         
 26 портов:                                                                      
 27 - "80:80"                                                                 
 28 - "443:443"                                                               
 29 разоблачить:                                                                     
 30 - 9000                                                                    
 31 сеть:                                                                   
 32 - передняя сеть                                                           
 33                                                                                 
 34                                                                                 
 35 wordpress-php:                                                                
 36 зависит от:                                                                 
 37 - мариадб                                                                 
 38 сборка: "./services/wordpress"                                               
 39 изображение: wordpress-php:mytag                                                  
 40 томов:                                                                    
 41 - wordpress:/var/www/myserver/wordpress:rw
 42 - "../logs/php7.3-fpm.log:/var/log/php7.3-fpm.log:rw"                        
 43 перезапуск: при отказе                                                         
 44 среда:                                                                
 45 — WORDPRESS_DB_HOST=mariadb:3306                                          
 46 - WORDPRESS_DB_NAME=wordpress                                             
 45 - WORDPRESS_DB_USER=wordpress                                             
 48 - WORDPRESS_DB_PASSWORD=wordpress                                                                                      
 50 разоблачить:                                                                     
 51 - 3306                                                                    
 52 - 9000                                                                    
 53 сети:                                                                   
 54 - передняя сеть                                                           
 55 - задняя сеть                                                            
 56                                                                                 
 57                                                                                 
 58 мариадб:                                                                      
 59 сборка: "./services/mariadb"                                                 
 60 изображение: mariadb:mytag                                                        
 61 том:                                                                    
 62 - mdb-данные:/var/lib/mysql:rw                                              
 63 - "../logs/mariadb_logs/error.log:/var/log/mysql/error.log"               
 64 перезапуск: при сбое                                                         
 65 среда:                                                                
 66 - MYSQL_DATABASE = wordpress                                                
 67 - MYSQL_USER=wordpress                                                    
 68 – MYSQL_USER_PASSWORD=wordpress                                           
 69 - MYSQL_ROOT_PASSWORD=корень                                                
 70 разоблачить:                                                                     
 71 - 3306                                                                    
 72 сети:                                                                   
 73 - задняя сеть                                                            
 74                                                                                 

Я установил адрес привязки mariadb на 0.0.0.0 в ./etc/mysql/mariadb.conf.d/50-se rver.cnf и ./etc/mysql/my.cnf, чтобы убедиться, что th db действительно слушает с каждого айпи.

Я думаю, что проблема связана с wp-config.php , но, как я понял, в среде создания докеров вы можете ссылаться на каждый контейнер с его именем вместо ip, и я не знаю, как я могу получить IP-адрес mariadb из wordpress -php.

Пожалуйста, помоги мне, заранее спасибо всем, кто дочитал до этого места! ^^

Michael Hampton avatar
флаг cz
Проверьте журнал ошибок php-fpm на наличие подсказок. Вам, вероятно, придется войти в контейнер, чтобы получить к нему доступ, так как вы не экспортировали его в том.
Youn avatar
флаг se
Он говорит: [25-Jul-2021 00:06:47] ВНИМАНИЕ: fpm работает, pid 1 [25-Jul-2021 00:06:47] ВНИМАНИЕ: готово к обработке подключений [25-Jul-2021 00:06:47] ВНИМАНИЕ: интервал мониторинга systemd установлен на 10000 мс.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.