
저는 여기에 처음 왔으며 이것이 첫 번째 질문이므로 제가 말한 방식에 문제가 있으면 알려주십시오.
문제는 다음과 같습니다. 저는 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.
저를 도와주세요. 지금까지 읽어주신 분들께 미리 감사드립니다! ^^