더 나은 WP-Config를 최대한 빨리 사용하고 싶으십니까?
define()
는 WordPress 코어에 필요한 모든 상수입니다..php
연관 배열, .env
파일 또는 JSON
파일로 구성합니다.db
, debug
, error
, salts
등 영역별로 구성됩니다.define()
대 ini_set()
등을 알 필요가 없습니다.define()
상수를 지정할 수 있습니다.private
디렉터리를 사용하여 구성을 저장합니다.ABSPATH
(예: WP 코어) 를 웹 루트, /wp
또는 기타 하위 디렉터리로 설정합니다.WP_CONTENT_DIR
/wp-content
, /app
또는 기타 하위 디렉터리로 설정하세요.local
, test
, stage
, prod
등HTTP_HOST
도메인에 매핑secrets
제외)index.php
또는 wp-config.php
에 필요한 빌드 변경 없이 배포$_ENV
, $_SERVER
또는 getenv()
에서 로드private
디렉토리wp_config()->print_config();
(참고: 다음 내용은 이 문제가 완료될 때까지 적용되지 않습니다. 그때까지는 빠른 시작을 참조하세요.)
/wp-content/config/config.php
라는 파일을 만들고 다음 형식을 사용하여 사이트 구성을 추가하세요.
<?php
return array(
'db[name]' => 'example_db',
'db[user]' => 'example_user',
'db[pass]' => '1234567890abcdef',
'db[charset]' => 'utf8mb4_unicode_ci',
'db[collate]' => 'utf8mb4',
'db[host]' => 'localhost',
'db[table_prefix]' => 'wp_',
'defines' => array(
'CONSTANT_REQUIRED_BY_A_PLUGIN' => 'it's value'
),
);
또한 사이트의 /index.php
및 /wp-config.php
각각 여기와 여기에서 찾을 수 있는 매우 간단한 대안으로 바꿔야 합니다.
그러나 잘못된 가정을 하기 전에:
더 나은 WP-Config는 ../config
, /private/config
또는 원하는 위치에서 구성 파일을 로드할 수 있습니다.
구성과 코드를 분리하는 것을 좋아한다면 file_format
'env'
로 설정할 수 있습니다.
쉽게 시작할 수 있도록 의도된 단순해 보일 수 있지만 Better WP-Config는 매우 복잡한 구성 요구 사항을 처리하도록 설계되었습니다. 일단 시작하고 다중 환경 및 자동화된 배포와 같은 보다 복잡한 사용 사례를 접하게 되면 Better WP-Config가 실제로 얼마나 유연하고 강력한지 알게 될 것입니다.
Better WP-Config가 해결하려는 문제가 무엇인지 물어볼 수 있습니다. "더 나은 WordPress 구성 솔루션이 필요한 이유는 무엇입니까?" 라고 질문하실 수 있습니다. 글쎄, 우리는 사소한 것 이상으로 너무 많은 사용 사례가 더 나은 구성 솔루션을 요구한다는 것을 발견했기 때문에 하나가 필요합니다. 계속 읽어보세요:
WordPress는 훌륭한 CMS이지만 test
/ stage
/ live
환경과 같이 보다 전문적인 워크플로우를 사용하려는 WordPress 개발자의 요구를 무시합니다. 기본 WordPress 구성은 하나의 환경에 대한 구성을 관리하도록 설계되었습니다. 더 많은 것을 관리하려면 자체 다중 환경 구성 솔루션을 구축해야 합니다.
WordPress를 사용하면 웹 루트 또는 한 수준 위의 디렉터리에 있는 wp-config.php
에 구성을 저장할 수 있습니다. 구성을 다른 파일에 저장한 다음 wp-config.php
( Better WP-Config의 기능) 에서 require()
수 있지만 사용자 정의 솔루션을 함께 해킹한다는 것은 이를 문서화하고 유지 관리해야 함을 의미합니다. 앞으로도 그것에 의지하고 싶다.
그리고 Better WP-Config와 같은 솔루션을 개발하고 문서화하는 데 어려움을 겪는다면 기본적으로 개발 및 문서화 노력 없이 방금 사용한 솔루션을 복제하는 데 시간 (그리고 돈?) 을 투자하게 될 것입니다.
Pantheon 및 WPEngine과 같은 각 WordPress 관리 호스트는 설상가상으로 자체적으로 관리되는 WordPress 제품을 지원하기 위해 임의로 호환되지 않는 구성 솔루션을 제공합니다.
다음은 다양한 WordPress 관리 웹호스트가 wp-config.php
사용하여 사용자를 처리 및/또는 제한하는 방법입니다.
다른 관리형 WordPress 웹사이트가 wp-config.php
처리하는 방법에 대해 잘 알고 계시다면 wp-config.php
처리하는 방법에 대한 문서와 함께 끌어오기 요청을 제출하여 우리와 다른 사람들에게 도움을 주시기 바랍니다.
WordPress를 사용해 본 사람이라면 누구나 PHP 상수 DB_HOST
, DB_NAME
, DB_USER
및 DB_PASSWORD
를 통해 WordPress의 데이터베이스 자격 증명을 구성하는 방법을 알고 있습니다. WordPress 작업을 처음 시작할 때는 간단하고 쉬운 것처럼 보이지만 시간이 지나면 WordPress의 기본값, 프로젝트의 기본값에서 환경의 세부 사항, 마지막으로 웹 호스트의 구성으로 구성을 계단식으로 배열할 수 없기 때문에 구성이 매우 유연하지 않게 된다는 것을 깨닫게 됩니다.
더 나은 WPConfig는 불변 상수의 사용을 제거하지 않지만 대신 이러한 상수를 define()
하기 전에 모든 계단식 구성이 병합될 때까지 기다립니다. (그러나 이것은 WordPress에서 PHP의 define()
d 상수 사용을 근절하기 위한 첫 번째 단계일 수 있습니다. PHP의 불변 상수는 WordPress 기능의 자동화된 테스트를 필요한 것보다 훨씬 더 어렵게 만들기 때문에 생각입니다.)
불행하게도 WordPress 코어에 사용 가능한 모든 옵션을 찾을 수 있는 간단한 방법은 없습니다. WordPress의 코드베이스와 온라인의 다양한 문서 위치에 암시되어 있기 때문입니다. 더 나은 WP-Config는 (대부분) phpinfo()
와 유사한 "wp_config()->print_config()
사용하여 이 문제를 해결합니다.
로컬 개발에 필요한 학습을 추가하는 데이터베이스 구성과 같은 많은 구성 옵션에는 기본값이 없습니다. 더 나은 WP-Config는 모든 "알려진" 옵션에 대한 기본 옵션을 제공합니다.
그 자체로 프로젝트에 필요한 다양한 환경에 대한 구성의 버전을 제어할 수 있는 일련의 실행 가능한 규칙을 생각해 낼 수 있습니다. 우리는 그렇게 했습니다. 그러나 그러면 각 웹 호스트가 이를 다르게 처리하고 시도할 수 있다는 것을 알게 됩니다. , 귀하와 귀하의 고객이 선택한 다양한 웹 호스트에서 작동할 수 있고 팀에서 사용할 수 있는 일관된 솔루션을 찾는 것이 불가능하다고 생각합니다.
이것이 왜 어려운지 더 잘 이해하려면 Pantheon과 WPEngine이 각각 wp-config.php
파일을 처리하는 방법을 읽어보세요.
마지막으로, wp-config.php
의 표준화 부족으로 인해 관리되는 WordPress 웹 호스트의 호환되지 않는 선택으로 인해 악화되는 전문 작업 흐름 및 버전 제어 사용 사례와 관련된 문제는 배포를 필요 이상으로 어렵게 만듭니다. 이는 SFTP 업로드를 사용하든, Pantheon과 같은 Git 배포를 사용하든, CircleCI와 같은 지속적인 통합 공급자를 통한 배포를 사용하든 적용됩니다.
좋은 소식은 Better WP-Config가 오늘날 이러한 모든 문제를 (거의) 해결한다는 것입니다! 시작하세요 .
우리는 Better WP-Config가 얼마나 잘 작동하는지 정말 만족합니다. 그러나 다음과 같은 상황이 발생할 수 있습니다.
ClassicPress 및 CalmPress 포크가 구성을 위해 더 나은 WP-Config를 채택했다면 훌륭합니다 .
WordPress 관리 웹호스트가 서비스를 Better WP-Config로 표준화한다면 더욱 좋습니다 .
무엇보다도 WordPress 자체가 새로운 설치를 위해 Better WP-Config를 사용하는 동시에 수년 동안 이미 wp-config.php
사용하고 있는 기존 사이트에 대한 지속적인 지원을 계속 유지한다면 가장 좋습니다 .
GPLv2