워드프레스 설정파일 값 세팅하기 ( WordPress wp-config.php)

22

워드프레스를 처음 설치한 이전 글 다음에 해야할 일인 설정파일(wp-config.php)을 세팅하는 방법을 알아보겠습니다. 첫 설치후에는 DB 값을 필수로 해줘야하고 기타 설정을 추가로 해주는게 좋습니다.

이 글은 리눅스서버  LEMP 스택에 WordPress 설치하기 시리즈 연재작의 일환으로 작성되어 MariaDB 정보를 필요로 하지만 mySQL DB를 사용하는 경우에도 설정은 같습니다. 또한 웹서버로 nginx를 사용하든 아파치를 사용하든 설정방법은 같습니다.

워드프레스 설정파일인 wp-config.php 파일 만들기

워드프레스의 설정파일 이름은 wp-config.php 이지만 처음 설치했을 때는 해당파일은 아직 없고 샘플파일인 wp-config-sample.php 가 있습니다.

sftp 폴더트리에서 본 샘플설정파일

이 샘플파일을 wp-config.php라는 이름으로 복사하고 워드프레스를 설정하겠습니다. 

CLI 명령어를 사용해서 복사하려면 아래형태로 입력하면됩니다

cp -p /경로/원본파일 /경로/새로운파일

아래와 같이 명령어를 입력하세요.

cp -p /var/www/html/wp-config-sample.php /var/www/html/wp-config.php

아래 두 그림은 명령어 입력후 확인해본 모습입니다.

cp 명령어 입력으로 wp-config 파일을 만들었다

transmit 5에서 확인한 모습

이제 wp-config.php 파일을 열어보면 샘플 설정파일의 내용과 똑같이 나오게됩니다. 저는 SFTP를 이용해서 아래처럼 Atom 텍스트 편집기에서 이 새로운파일을 열어 수정하려고 합니다

Database (데이터베이스) 정보 값 수정하기

파일 내용중에는 아래와 같은 줄이 DB 정보가 설정된 곳입니다. MySQL 세팅이라고 안내되지만 MariaDB도 같습니다. 이 정보들의 값을 자신이 준비한 DB 내용으로 바꿔야합니다.

wp-config 에있는 DB 정보 Define 문들

여러분의 DB 정보는 시리즈 연재작의 지난글에서 DB를 추가할 때 만들어둔 그것입니다.

 

이제 define() 함수에 있는 설정 값을 내 서버 설정과 맞도록 값을 넣어주면 됩니다. DB_NAME(DB 이름)과 와 DB_USER(DB사용자), DB_PASSWORD(DB사용자의 비밀번호)만 수정합니다.

저는 아래처럼 입력하게 되었네요.

3가지 DB 비밀정보를 입력했다

나머지 DB_HOST, DB_CHARSET, DB_COLLATE 의 값은 그대로 둡니다. 

워드프레스 인증 키와 솔트 랜덤값 입력하기 (Authentication Unique Keys & Salts)

그리고 설정파일 중에는 KEY와 SALT 값을 넣어줘야하는데요. 아래 그림처럼 8줄이 있을 건데  put your unique phrase here 이라고 써진곳에 들어가야할 값들은 보안문자열로서 랜덤 문자열입니다.

wp-config 의 Key 값과 Salt 값들

 

이 값은 저와 다르게 입력해야하는데요.  위 코드의 위에 주석으로 안내된 링크(아래)가있는데 랜덤문자열을 발생시켜주는 제너레이터 웹사이트입니다.

이 페이지에 접속해보면 새로고침해 볼 때 마다 아래그림처럼 define 값에 들어가는 문자열이 랜덤으로 바뀝니다.

워드프레스 키와 솔트값 랜덤 제너레이팅 사이트

 

위 웹페이지에서 글자를 모두 선택해서 복사한다음 설정값 위치에 붙여넣어 아래처럼 대체해줍시다.

워드프레스 인증 키값과 암호 솔트값 입력 완료

참고로 이 값은 보안에 관련된 사항이고 사이트를 운영하면서 주기적으로 바꿔주는게 좋습니다. 차후 주기적으로 바꿔주도록 합시다. 참고: 워드프레스 인증키 솔트값 자동으로 바꿔주는 무료 플러그인 추천

워드프레스 wp-config.php 기타 값 설정

추가로 아래 값들을 설정파일 아래쪽에 추가해줍시다

  • temp 폴더 위치 지정
  • FTP 연결정보 설정
  • 워드프레스 사이트 주소 설정

temp 폴더위치 지정

워드프레스는 플러그인과 테마 설치, 업데이트할 때 필요한 파일을 임시폴더에 다운로드 했다가 업데이트하고 임시폴더를 비우는 형태로 이루어진다고 합니다. 이 폴더가 없거나, 쓰기권한이 없으면 아래와 같은 에러가 나곤 합니다

“업데이트 실패: 다운로드 실패. 파일 스트리밍을 위한 대상 디렉터리가 존재하지 않거나 쓰기 가능하지 않습니다.” “Destination directory for file streaming does not exist or is not writable.”

이 임시폴더를 마련하고, 웹서버 사용자인 www-data가 쓰기 가능하도록 하는 것은 시리즈 연재작 이전단계에서 했습니다. 이제 이 임시폴더 위치가 어디인지 워드프레스 설정파일에 지정해줄 차례입니다. 그런 문제가 없도록 wp-config.php 파일에 아래 문구를 작성해주세요.

define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp');

temp 폴더 위치를 지정하는 define 문

 wp-config.php 파일이 위치한 현재위치 기준[dirname(__FILE__)]으로 하위의 /wp-content/temp/ 경로에 있음을 설정한 것입니다.

FTP 연결정보 증명서 요청 우회 설정

워드프레스 플러그인을 업데이트, 설치하면 인터넷에서 파일을 다운로드 받게되는데 서버가 파일을 받는 과정에서 연결이 필요합니다. 그 과정에서 워드프레스는 디폴트로 FTP 프로토콜을 이용하게 되고 FTP 사용자명과 FTP 비밀번호를 아래 그림처럼 요구하게 됩니다.

SFTP 연결정보 요구화면 팝업창
연결정보 요구화면: “요청한 작업을 수행하려면, 워드프레스는 웹 서버에 접속해야 합니다. 계속 진행 하기 위해 FTP 증명서를 입력하세요. 증명서가 기억나지 않는다면 웹 호스트에게 연락하세요.”

자신이 서버에 FTP를 설정하지 않았다면 직접연결(direct)로 바꾸어서 이것을 우회할 수 있습니다. 아래 설정코드 한 줄을 추가해주면 플러그인 업데이트, 설치할때 위 그림같은 대화상자가 나타나지 않습니다.

define('FS_METHOD', 'direct');

FS_METHOD를 direct로 설정하는 define문

이제 파일을 저장하고 닫아줍니다.

다음단계

WordPress 설치후 필수적인 설정값은 위와 같이 끝났는데요. 시리즈 연재작 다음 단계로 파일 업로드 용량 제한을 늘려봅시다.

참고자료: codex.wordpress.org

22 댓글

  1. 안녕하세요
    템프폴더 지정하는부분에서

    define(‘WP_TEMP_DIR’, dirname(FILE) . ‘/wp-content/temp’);

    이부분이 없구요
    지금현재는 wordpress-5.0.3 인데 강의글은 4번대라서 그런지 똑같은게 없더라구요
    가장 비슷한부분이

    define(‘WP_DEBUG’, false);

    /* That’s all, stop editing! Happy blogging. */

    /** Absolute path to the WordPress directory. */
    if ( !defined(‘ABSPATH’) )
    define(‘ABSPATH’, dirname(FILE) . ‘/’);

    /** Sets up WordPress vars and included files. */
    require_once(ABSPATH . ‘wp-settings.php’);

    이부분입니다 다 무시하고 dirname(FILE) 뒤에 ‘/wp-content/temp’ 만 붙여주면 될까요?

  2. 아참 그리고 더 궁금한게

    Absolute path to the WordPress directory. */
    if ( !defined(‘ABSPATH’) )
    define(‘ABSPATH’, dirname(FILE) . ‘/wp-content/temp’);
    요부분에 ABSPATH 는 그냥 나두면 되는지요?

    또한 마지막에 define(‘FS_METHOD’, ‘direct’); 추가하라는건
    wp-config.php 파일의 제일 아랫부분에 그냥 넣어주기만 하면 되는거죠?

  3. 안녕하세요. 사이트에 유용한 포스팅 잘 보고 있습니다.
    설치시 어려운 점이 있어서 문의드립니다.

    퍼블릭IP 하위에 test1 폴더를 만들어서, 워드프레스를 하나 더 설치하려고 합니다.
    업로드 및 압축은 완료된 상태이고,

    퍼블릭IP/test1 접속해서 워드프레스 초기설정을 하려고 하는데,
    DB Name, Username, 패스워드, DB호스트 입력시 다 안되더라구요. (물론 테이블값은 다른 값으로 변경)

    해당 정보는 기본 설치된 워드프레스의 wp-config 파일을 보고, 그대로 입력했는데 안되더라구요.

    이러한 값들을 어떻게 입력하면 좋을까요?
    조언 부탁드립니다.

    감사합니다.

    • 도메인도 달리하고 nginx 설정에서 해당도메인의 도큐먼트 루트를 /test1/ 폴더로 분리해줘야합니다

      만일 같은 도메인으로
      swiftcoding.org/
      swiftcoding.org/test1/
      이런식으로 하고 싶다면 차라리 워드프레스 멀티사이트 기능을 이용하는게 낫겠습니다.

  4. 안녕하세요.

    가비아 도메인 구입/호스팅을 하다가 무료 SSL 인증 때문에 네임서버를 Cloudflare로 옮기면서 문제가 생겼습니다.
    가비아에 문의해서 호스트를

    /** MySQL hostname */
    //define(‘DB_HOST’, ‘db.noori-korea.com 1’);
    define(‘DB_HOST’, ‘211.xx.xxx.77’);
    

    로 변경했는데도 다음과 같은 문제가 계속됩니다.

    제 사이트가 익스플로러에서는 열리는데 크롬에서는 레이아웃이 깨집니다.
    https://www.noori-korea.com/wordpress/
    워드프레스 관리자로 접속했을 때, 크롬에서는 레이아웃이 깨지고
    익스플로러는 로그인이 창에서 아이디와 비번이 먹지 않습니다. 크롬에서도 로그인을 못하는 건 마찬가지입니다.
    분명 바꾼 일이 없는데요.
    https://www.noori-korea.com/wordpress/wp-admin/

    이 문제를 Cloudflare forum측에 문의하니 웹서버에 HTTPS인증서가 설치되어 있지 않다고 하네요.
    (The problem at this point is you dont have an HTTPS certificate on your webserver installed.)

    Cloudflare를 쓰는 이유는 HTTPS 인증서가 무료이기 때문인데 이쪽 서버에 설치해야 한다고 하니 이해가 가지 않습니다.

    포스팅과는 다른 문제인 듯 하지만 비슷한 분야인 것 같아서 질문 올려봅니다. 도움 부탁합니다.

    • 아마도 클라우드플레어가 서비스하는 두가지, CDN과 DNS 서버를 혼동하신 것같습니다.

      클라우드 플레어의 CDN은 네임서버가 아니라, 클라우드플레어 회사 서버가 데이터를 캐싱해두고 각 지역 서버에서 가까운 사용자에게 보여주는 서비스입니다. 이경우 아마도 인증서를 제공할 거예요.(이건 저도 잘 모르겠네요)

      반면 클라우드 플레어의 DNS서버는 라이트세일 DNS 영역처럼 네임서버죠. 네임서버는 HTTPS 를 다루지 않습니다. 도메인 이름에 따라 서버 IP를 돌려줄 뿐이죠. 그렇게 DNS서버를 거친 요청을 받아 HTTPS 인증을 해야하는건 서버입니다.

      • 안녕하세요.

        클라우드 플레어에서 추가로 온 내용에 http와 https의 혼용 에러 (Mixed content error)가 있으므로 http를 https로 바꾸어 주어야 한다고 합니다.
        그래서 여기서 추천하는 Automatic HTTPS Rewriter나 워드프레스 추턴 플러그인을 설치하려 해도 워드프레스 접속이 안됩니다.
        정확히는 레이아웃이 깨져 텍스트만 나왔는데, 해결해 보려고 설정->일반에서 사이트/URL 주소를 http ->https로 바꿔보니 그나마도 연결이 끊깁니다. (301 리디렉션 에러, 순환참조 오류)

        클라우드 플레어 연결을 끊고 원래의 가비아로 네임서버를 옮겨 처음부터 다시 해볼까도 생각중인데,
        문제는 워드프레스로 그동안 작업한 사이트 데이터가 다 날라갈까봐 망설이고 있습니다.
        가능하시다면 도움 부탁드립니다.

        • 클라우드 플레어는 제가 안붙여봐서 모르겠네요. 도메인의 네임서버를 옮기는 것은 데이터 서버와는 상관이 없으니 네임서버를 옮겨보시면 될 듯하네요.

  5. 안녕하세요.
    로컬(제 컴퓨터)에 워드프레스를 깔아서 연습해보려고 하니
    글 쓰기시에 이미지 업로드도 불가하고 글 공개도 되지 않습니다.
    혹시 로컬 설치시에 별도의 초기 설정이 필요한가요??
    제가 워드프레스는 처음이라 도움 부탁드립니다.

  6. 글쓰기시에 이미지 업로드가 불가능 한 것은 업로드 파일에대한 제한이 있어서 일 수 있거나 폴더 편집 권한이 없어서 일 수 있습니다.

    보통, 이미지파일은 /wp-content/uploads/ 폴더에 들어가게 되는데, 이 폴더에대한 편집권한을 웹서버 사용자(www-data 또는 daemon)가 가지고 있어야합니다.
    리눅스 컴퓨터 사용자 권한 및 파일소유자 변경에대한 내용으로 아래링크를 읽어볼 만 하실 겁니다.
    https://swiftcoding.org/changing-owner-of-linux-files#change
    https://swiftcoding.org/downloading-wp#permission

    또는 PHP 설정이 매우 제한적이어서 일 수도 있으니 아래글을 참고해보세요.
    https://swiftcoding.org/wp-plugin-requirements

    글이 공개가 되지 않는 문제는 어떤 것인지 모르겠네요. 저장이 아닌 발행을 하셨는지 확인해보시고요.

  7. 안녕하세요.운영에서 돌아가는 페이지를 테스트서버로 소스를 압축해서 가져오고 디비도 별도 파일로 내려받아 테스트디비에 같은 데이타베이스이름으로 업로드 했습니다.그런데 디비연결계정과 옵션테이블에서의 주소경로도 바꿨는데 사이트가 안떠서 질문드립니다.host파일도 설정했습니다.
    테스트서버 로그에 [24/Jul/2019:18:22:44 +0900] “GET / HTTP/1.1” 303 425 이런 에러가 뜨고 별다른 로그는 없습니다.
    제가 어떤 부분을 다시 체크해야할까요..?조언부탁드립니다.

    • 새로 웹어플리케이션 설정하고
      web.config 에서 https로 넘어가는 부분들 주석처리하고 해서 드뎌 페이지를 봅니다.^^’;;

      < rule name=”redirect to https” enabled=”true” stopProcessing=”true”>

      /* add ssl / // wp-admin호출시 https로 넘어가는 부분 테스트에선 주석처리
      /
      define(‘FORCE_SSL_ADMIN’, true);*/

  8. 안녕하세요
    Cloud 플랫폼 기반에 CentOS 에 PHP 7 / Apache 2.4 로 WEB VM 따로 MariaDB 10.3 으로 DB VM 따로 구성 후 WEB VM 에 WordPress 최신 버전 구성했는데
    위 글대로 wp-config.php 에 DB IP랑 정보 넣어주고 ₩http://WEP IP/wp-admin₩ 접속하면 Site 접속도 안되고 WEB VM이 계속 죽어버립니다..
    대체 무슨 문제일까요..?

  9. 안녕하세요. 항상 양질의 컨텐츠 올려주셔서 감사합니다! 혹시 wp-config.php 파일을 수정하는동안, 임시로 사이트에 “서버 작업중이오니 00:00부터 사이트 사용이 가능합니다.” 같은 안내창을 띄워두는 법은 없을까요?

  10. 안녕하세요. 스위프트님께 많은 도움을 받으며 ‘워드프레스 시작하기(설치,세팅) 시리즈’를 참고하여 잘 완료하였습니다.
    이후에 보안을 위해 salt shaker를 사용해보고자 설치하였다가 적용이 되지 않아 wp-config.php 파일의 문제라 판단하고 이것 저것 해보려다 ‘사이트에 연결할 수 없음’ 문제가 발생하였습니다.
    제가 한 내용은 wp-config.php 파일이 있는 폴더에서 cp -p wp-config.php wp-configdefalt.php 하여 wp-configdefalt.php파일 복사,
    이 때 ls -al로 확인 했을 때 wp-config.php파일이 deamon에서 bitnami로 변경 되었습니다.
    당연히 wp-configdefalt.php파일도 bitnami구요.
    이후 wp-configdefalt.php 파일을 다시 복사해서 wp-config.php로 해봐도 해결 되지 않고, root모드로 wp-config-sample.php를 wp-config.php로 복사하니 deamon으로 유지 되어서 내용을 다 지우고 원래 wp-config.php파일의 내용으로 바꾸어주고 재부팅까지 했는데도 사이트에 연결을 할 수가 없다네요.

    입문자라 뭐가 문제인지 도통 알 수가 없네요.

    재설치 밖에 답이 없는 것 인지……
    만약 재설치를 한다면 주의사항은 뭐가 있을까요?

댓글은 익명이나 SNS, wordpress.com 로그인 지원). 마크다운 문법 사용가능(Shift+~ 키로 특정문구 혹은 위아래 ~~~으로감싸서 여러줄을 코드블락으로 작성)