docker-compose를 사용하여 LAMP 스택에서 Wordpress와 MariaDB를 연결할 수 없습니다.

docker-compose를 사용하여 LAMP 스택에서 Wordpress와 MariaDB를 연결할 수 없습니다.

저는 여기에 처음 왔으며 이것이 첫 번째 질문이므로 제가 말한 방식에 문제가 있으면 알려주십시오.

문제는 다음과 같습니다. 저는 nginx, maiadb 및 wordpress에 대한 3개의 별도 컨테이너로 LAMP 스택을 구축하고 있습니다.

사이트의 색인 및 프로세스 PHP 페이지에 액세스할 수 있으므로 전체 nginx 및 php-fpm이 잘 작동하는 것 같습니다. Mdb는 wordpress db를 구축하고 이에 대한 모든 권한을 가진 "wordpress@wordpress-php" 사용자를 생성합니다.

설치를 위해 사이트에 액세스할 때 문제가 발생하기 시작하고 "데이터베이스 연결 설정 중 오류가 발생했습니다."라는 메시지가 나타납니다.

다음은 컨테이너 내부의 wordpress 디렉토리에 복사한 wp-config.php입니다.

 <?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은 다음과 같습니다.

version: "3.5"                                                                  
  2                                                                                 
  3 networks:                                                                       
  4   front-network:                                                                
  5     driver: bridge                                                              
  6     attachable: false                                                           
  7   back-network:                                                                 
  8     driver: bridge                                                              
  9     attachable: false                                                           
 10                                                                                 
 11 volumes:                                                                          
 12   mdb-data:                                                                     
 13   wordpress:                                                                    
 14                                                                                 
 15 services:                                                                       
 16                                                                                 
 17   nginx:                                                                        
 18     depends_on:                                                                 
 19       - wordpress-php                                                           
 20     build: "./services/nginx"                                                   
 21     image: nginx:mytag                                                          
 22     volumes:                                                                    
 23       - wordpress:/var/www/myserver/wordpress:rw                                
 24       - "../logs/nginx_logs:/var/log/nginx:rw"                                  
 25     restart: on-failure                                                         
 26     ports:                                                                      
 27       - "80:80"                                                                 
 28       - "443:443"                                                               
 29     expose:                                                                     
 30       - 9000                                                                    
 31     networks:                                                                   
 32       - front-network                                                           
 33                                                                                 
 34                                                                                 
 35   wordpress-php:                                                                
 36     depends_on:                                                                 
 37       - mariadb                                                                 
 38     build: "./services/wordpress"                                               
 39     image: wordpress-php:mytag                                                  
 40     volumes:                                                                    
 41       - wordpress:/var/www/myserver/wordpress:rw
 42       - "../logs/php7.3-fpm.log:/var/log/php7.3-fpm.log:rw"                        
 43     restart: on-failure                                                         
 44     environment:                                                                
 45       - WORDPRESS_DB_HOST=mariadb:3306                                          
 46       - WORDPRESS_DB_NAME=wordpress                                             
 45       - WORDPRESS_DB_USER=wordpress                                             
 48       - WORDPRESS_DB_PASSWORD=wordpress                                                                                      
 50     expose:                                                                     
 51       - 3306                                                                    
 52       - 9000                                                                    
 53     networks:                                                                   
 54       - front-network                                                           
 55       - back-network                                                            
 56                                                                                 
 57                                                                                 
 58   mariadb:                                                                      
 59     build: "./services/mariadb"                                                 
 60     image: mariadb:mytag                                                        
 61     volumes:                                                                    
 62       - mdb-data:/var/lib/mysql:rw                                              
 63       - "../logs/mariadb_logs/error.log:/var/log/mysql/error.log"               
 64     restart: on-failure                                                         
 65     environment:                                                                
 66       - MYSQL_DATABASE=wordpress                                                
 67       - MYSQL_USER=wordpress                                                    
 68       - MYSQL_USER_PASSWORD=wordpress                                           
 69       - MYSQL_ROOT_PASSWORD=root                                                
 70     expose:                                                                     
 71       - 3306                                                                    
 72     networks:                                                                   
 73       - back-network                                                            
 74                                                                                 

./etc/mysql/mariadb.conf.d/50-se rver.cnf 및 ./etc/mysql/my.cnf에서 0.0.0.0에 mariadb의 바인드 주소를 설정하여 db가 실제로 수신 중인지 확인했습니다. 모든 IP에서.

문제는 wp-config.php에서 발생한 것 같지만 docker-compose 환경에서 이해했듯이 ip 대신 해당 이름으로 각 컨테이너를 참조할 수 있으며 wordpress에서 mariadb의 IP를 검색하는 방법을 모르겠습니다. -php.

저를 도와주세요. 지금까지 읽어주신 분들께 미리 감사드립니다! ^^

관련 정보