웹사이트 검색

Ubuntu 18.04에서 LAMP로 WordPress를 설치하는 방법


소개

WordPress는 인터넷에서 가장 인기 있는 콘텐츠 관리 시스템(CMS)입니다. PHP 처리를 통해 MySQL 백엔드 위에 유연한 블로그와 웹사이트를 설정할 수 있습니다. WordPress는 놀라운 채택률을 보였으며 웹 사이트를 빠르게 시작하고 실행하는 데 탁월한 선택입니다. 설정 후 거의 모든 관리는 웹 프런트엔드를 통해 수행할 수 있습니다.

이 가이드에서는 Ubuntu 18.04 서버의 LAMP 스택(Linux, Apache, MySQL 및 PHP)에 WordPress 인스턴스를 설정합니다.

전제 조건

이 자습서를 완료하려면 다음이 필요합니다.

  • sudo 사용자로 Ubuntu 18.04 서버에 액세스: sudo 권한이 있는 루트가 아닌 사용자를 사용하여 이 가이드의 단계를 완료합니다. Ubuntu 18.04 초기 서버 설정 가이드에 따라 sudo 권한이 있는 사용자를 생성할 수 있습니다.
  • LAMP 스택 설치: WordPress가 올바르게 작동하려면 웹 서버, 데이터베이스 및 PHP가 필요합니다. LAMP 스택(Linux, Apache, MySQL 및 PHP)을 설정하면 이러한 모든 요구 사항이 충족됩니다. 이 소프트웨어를 설치하고 구성하려면 이 가이드를 따르십시오.
  • SSL로 사이트 보호: WordPress는 동적 콘텐츠를 제공하고 사용자 인증 및 승인을 처리합니다. TLS/SSL은 연결이 안전하도록 사이트의 트래픽을 암호화할 수 있는 기술입니다. SSL을 설정하는 방법은 사이트에 대한 도메인 이름이 있는지 여부에 따라 다릅니다.\n
    • 도메인 이름이 있는 경우... 사이트를 보호하는 한 가지 방법은 신뢰할 수 있는 무료 인증서를 제공하는 Let's Encrypt를 사용하는 것입니다. 이를 설정하려면 Apache용 Let’s Encrypt 가이드를 따르세요.
    • 도메인이 없고... 이 구성을 테스트 또는 개인 용도로만 사용하는 경우 대신 자체 서명된 인증서를 사용할 수 있습니다. 이는 동일한 유형의 암호화를 제공하지만 도메인 유효성 검사는 제공하지 않습니다. 설정하려면 Apache용 자체 서명 SSL 가이드를 따르세요.

    전제 조건을 완료하면 sudo 사용자로 서버에 로그인하고 1단계를 계속합니다.

    1단계 – WordPress용 MySQL 데이터베이스 및 사용자 생성

    당신이 취할 첫 번째 단계는 준비 단계입니다. MySQL이 이미 설치되어 있어도 WordPress에서 사용할 사용자 정보를 관리하고 저장하려면 데이터베이스를 만들어야 합니다. 시작하려면 다음 명령을 실행하여 MySQL 루트(관리자) 계정에 로그인합니다.

    1. sudo mysql

    소프트웨어를 설치할 때 MySQL 루트 계정에 대해 설정한 암호를 입력하라는 메시지가 표시됩니다.

    그러나 루트 사용자에 대해 암호 인증을 활성화한 경우 다음 명령을 실행하고 프롬프트가 표시되면 암호 정보를 입력할 수 있습니다.

    1. mysql -u root -p

    거기에서 WordPress가 제어할 새 데이터베이스를 만듭니다. 원하는 대로 이름을 지정할 수 있지만 이 가이드에서는 워드프레스를 예로 사용합니다. 다음을 작성하여 WordPress용 데이터베이스를 생성합니다.

    1. CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

    참고: 모든 MySQL 문은 세미콜론(;)으로 끝나야 합니다. 문제가 발생하면 이것이 있는지 확인하십시오.

    다음으로, 새 데이터베이스에서 작업하는 데 독점적으로 사용할 별도의 MySQL 사용자 계정을 만들 것입니다. 단일 기능 데이터베이스 및 계정을 생성하는 것은 관리 및 보안 관점에서 좋은 생각입니다. 이 가이드에서는 wordpressuser라는 이름을 예로 사용합니다. 원하는 경우 자유롭게 변경하십시오.

    이 계정을 만들고 암호를 설정한 다음 다음 명령을 실행하여 만든 데이터베이스에 대한 액세스 권한을 부여할 수 있습니다. 여기에서 데이터베이스 사용자에 대해 강력한 암호를 선택해야 합니다.

    1. GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

    이 사용자를 생성한 후 MySQL의 현재 인스턴스가 최근 변경 사항을 알 수 있도록 권한을 플러시합니다.

    1. FLUSH PRIVILEGES;

    MySQL 종료:

    1. EXIT;

    이제 MySQL에 각각 WordPress용으로 특별히 만들어진 데이터베이스와 사용자 계정이 생겼습니다.

    2단계 – 추가 PHP 확장 설치

    LAMP 스택을 설정할 때 프로세스는 PHP가 MySQL과 통신하도록 하기 위해 최소한의 확장 세트만 필요했습니다. WordPress 및 많은 플러그인은 추가 PHP 확장을 활용합니다.

    먼저 패키지 목록을 업데이트합니다.

    1. sudo apt update

    다음으로 WordPress에서 사용할 수 있는 가장 인기 있는 PHP 확장 프로그램을 다운로드하여 설치합니다.

    1. sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

    참고: 각 WordPress 플러그인에는 고유한 요구 사항이 있습니다. 일부는 추가 PHP 패키지를 설치해야 할 수도 있습니다. 플러그인 설명서를 확인하여 PHP 요구 사항을 확인하십시오. 사용 가능한 경우 위에서 설명한 것처럼 apt로 설치할 수 있습니다.

    다음 섹션에서 이러한 새 확장을 로드하려면 Apache를 다시 시작하십시오. 추가 플러그인을 설치하기 위해 여기로 돌아가는 경우 지금 Apache를 다시 시작할 수 있습니다.

    1. sudo systemctl restart apache2

    다음 단계에서는 Apache 구성을 일부 조정합니다.

    3단계 – .htaccess 재정의 및 재작성을 허용하도록 Apache 구성 조정

    Wordpress는 기본적으로 .htaccess 파일을 사용하여 영구 링크, 플러그인 및 리디렉션과 같은 사이트의 특정 기능을 관리합니다. Apache 웹 서버는 이러한 .htaccess 구성 파일을 사용하여 웹 서버가 따라야 할 규칙을 만듭니다. 그러나 Apache는 기본적으로 .htaccess 파일 사용을 비활성화하므로 이를 활성화하려면 웹 사이트의 Apache 가상 호스트 파일을 업데이트해야 합니다.

    활성화하려면 웹 사이트의 가상 호스트 파일을 엽니다.

    1. sudo nano /etc/apache2/sites-available/wordpress.conf

    참고: 이 자습서에서는 /etc/apache2/sites-available/wordpress.conf를 예로 사용하지만 적절한 경우 구성 파일의 경로를 대체해야 합니다.

    또한 /var/www/wordpressWordPress 설치의 루트 디렉토리로 사용합니다. 자체 구성에 지정된 웹 루트를 사용해야 합니다.

    000-default.conf 기본 구성을 사용하고 있을 수도 있습니다(/var/www/html를 웹 루트로 사용). 이 서버에서 하나의 웹사이트만 호스팅하려는 경우에 사용하는 것이 좋습니다. 그렇지 않은 경우 필요한 구성을 사이트당 하나의 파일로 논리적 청크로 분할하는 것이 가장 좋습니다.

    이 파일을 열면 .htaccess 파일 사용이 비활성화되었음을 알 수 있습니다. .htaccess 파일을 허용하려면 문서 루트를 가리키는 Directory 블록 내에서 AllowOverride 지시문을 설정해야 합니다. 구성 파일의 VirtualHost 블록 안에 다음 텍스트 블록을 추가합니다. 강조 표시된 예 대신 자신의 웹 루트 디렉토리를 사용하는지 확인하십시오.

    <Directory /var/www/wordpress/>
    	AllowOverride All
    </Directory>
    

    완료되면 파일을 저장하고 닫습니다. nano를 사용하는 경우 CTRL + X를 누른 다음 YENTER를 눌러 종료할 수 있습니다.

    다음으로 mod_rewrite를 활성화하여 WordPress 영구 링크 기능을 활용할 수 있도록 합니다.

    1. sudo a2enmod rewrite

    그런 다음 구성을 테스트하여 이러한 변경 사항을 활성화합니다. 그러나 변경 사항을 구현하기 전에 구문 오류가 없는지 확인하십시오.

    1. sudo apache2ctl configtest

    출력에는 다음과 같은 메시지가 있을 수 있습니다.

    Output
    AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

    맨 윗줄을 표시하지 않으려면 /etc/apache2/apache2.conf의 주(전역) Apache 구성 파일에 ServerName 지시문을 추가하십시오. ServerName은 서버의 도메인 또는 IP 주소일 수 있습니다. 그러나 이는 메시지일 뿐이며 사이트의 기능에는 영향을 미치지 않습니다. 출력에 Syntax OK가 포함되어 있으면 계속할 수 있습니다.

    변경 사항을 구현하려면 Apache를 다시 시작하십시오.

    1. sudo systemctl restart apache2

    다음으로 WordPress 자체를 다운로드하고 설정합니다.

    4단계 – 워드프레스 다운로드

    이제 서버 소프트웨어가 구성되었으므로 WordPress를 다운로드하고 설정할 수 있습니다. 보안상의 이유로 항상 해당 사이트에서 최신 버전의 WordPress를 다운로드하는 것이 좋습니다.

    먼저 쓰기 가능한 디렉토리로 변경합니다.

    1. cd /tmp

    그런 다음 다음을 실행하여 압축된 릴리스를 다운로드합니다.

    1. curl -O https://wordpress.org/latest.tar.gz

    압축 파일을 추출하여 WordPress 디렉토리 구조를 만듭니다.

    1. tar xzvf latest.tar.gz

    이 파일을 일시적으로 문서 루트로 이동하게 됩니다. 그 전에 WordPress에서 나중에 사용할 수 있도록 빈 .htaccess 파일을 추가하세요.

    다음을 실행하여 파일을 생성합니다.

    1. touch /tmp/wordpress/.htaccess

    그런 다음 샘플 구성 파일의 복사본을 만들고 이름을 WordPress가 실제로 읽는 파일 이름인 wp-config.php로 지정합니다.

    1. cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

    마지막으로 업그레이드 디렉토리를 생성하여 WordPress가 소프트웨어 업데이트 후 자체적으로 이 작업을 수행하려고 할 때 권한 문제가 발생하지 않도록 합니다.

    1. mkdir /tmp/wordpress/wp-content/upgrade

    이제 디렉토리의 전체 내용을 문서 루트에 복사할 수 있습니다. 소스 디렉토리 끝에 점을 사용하면 숨겨진 파일(예: 생성한 .htaccess 파일)을 포함하여 디렉토리 내의 모든 항목을 복사해야 함을 나타냅니다. 다시 강조 표시된 예 대신 실제 문서 루트의 이름을 사용하십시오.

    1. sudo cp -a /tmp/wordpress/. /var/www/wordpress

    다음으로 WordPress 디렉토리의 항목을 조정하고 구성해야 합니다.

    5단계 – WordPress 디렉토리 구성

    웹 기반 WordPress 설정을 시작하기 전에 WordPress 디렉토리에서 일부 항목을 조정해야 합니다.

    소유권 및 권한 조정

    수행해야 할 중요한 작업 중 하나는 합리적인 파일 권한 및 소유권을 설정하는 것입니다.

    www-data 사용자 및 그룹에 모든 파일의 소유권을 부여하여 시작하십시오. 이것은 Apache 웹 서버가 실행되는 사용자이며 Apache는 웹 사이트를 제공하고 자동 업데이트를 수행하기 위해 WordPress 파일을 읽고 쓸 수 있어야 합니다.

    chown을 사용하여 소유권을 업데이트합니다.

    1. sudo chown -R www-data:www-data /var/www/wordpress

    다음으로 두 개의 find 명령을 실행하여 WordPress 디렉토리 및 파일에 대한 올바른 권한을 설정합니다.

    1. sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
    2. sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

    시작하려면 합당한 권한 설정이어야 합니다. 일부 플러그인 및 절차에는 추가 조정이 필요할 수 있습니다.

    WordPress 구성 파일 설정

    이제 기본 WordPress 구성 파일을 일부 변경해야 합니다.

    파일을 열면 첫 번째 업무 순서는 일부 비밀 키를 조정하여 설치를 위한 보안을 제공하는 것입니다. WordPress는 이러한 값에 대한 안전한 생성기를 제공하므로 스스로 좋은 값을 찾으려고 노력할 필요가 없습니다. 이들은 내부적으로만 사용되므로 여기에 복잡하고 안전한 값이 있어도 유용성이 손상되지 않습니다.

    WordPress 비밀 키 생성기에서 보안 값을 가져오려면 다음을 실행합니다.

    1. curl -s https://api.wordpress.org/secret-key/1.1/salt/

    다음과 같은 고유한 값을 받게 됩니다.

    경고: 매번 고유한 값을 요청하는 것이 중요합니다. 아래 예에 표시된 값을 복사하지 마십시오.

    Output
    define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

    보안 키를 설정하기 위해 구성 파일에 직접 붙여넣을 수 있는 구성 라인입니다. 받은 출력을 복사합니다.

    이제 WordPress 구성 파일을 엽니다. 다음에서 강조 표시된 대로 파일 경로가 자신의 문서 루트 정보와 일치하는지 확인하십시오.

    1. sudo nano /var/www/wordpress/wp-config.php

    해당 설정에 대한 빈 값이 포함된 섹션을 찾습니다. 다음과 같이 표시됩니다.

    . . .
    
    define('AUTH_KEY',         'put your unique phrase here');
    define('SECURE_AUTH_KEY',  'put your unique phrase here');
    define('LOGGED_IN_KEY',    'put your unique phrase here');
    define('NONCE_KEY',        'put your unique phrase here');
    define('AUTH_SALT',        'put your unique phrase here');
    define('SECURE_AUTH_SALT', 'put your unique phrase here');
    define('LOGGED_IN_SALT',   'put your unique phrase here');
    define('NONCE_SALT',       'put your unique phrase here');
    
    . . .
    

    해당 줄을 삭제하고 명령줄에서 복사한 값을 붙여넣습니다.

    . . .
    
    define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
    define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
    define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
    define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
    define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
    define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
    define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
    define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
    
    . . .
    

    다음으로 파일 시작 부분에서 일부 데이터베이스 연결 설정을 수정해야 합니다. MySQL 내에서 구성한 데이터베이스 이름, 데이터베이스 사용자 및 관련 암호를 조정해야 합니다.

    다른 변경 사항은 WordPress가 파일 시스템에 쓰기 위해 사용해야 하는 방법을 설정하는 것입니다. 웹 서버에 필요한 곳에 쓸 수 있는 권한을 부여했으므로 명시적으로 파일 시스템 방법을 "direct\로 설정할 수 있습니다. 현재 설정으로 이것을 설정하지 않으면 일부 작업을 수행할 때 WordPress에서 FTP 자격 증명을 묻는 메시지가 표시됩니다.

    이 설정은 데이터베이스 연결 설정 뒤에 추가하거나 파일의 다른 위치에 추가할 수 있습니다.

    . . .
    
    define('DB_NAME', 'wordpress');
    
    /** MySQL database username */
    define('DB_USER', 'wordpressuser');
    
    /** MySQL database password */
    define('DB_PASSWORD', 'password');
    
    . . .
    
    define('FS_METHOD', 'direct');
    

    완료되면 파일을 저장하고 닫습니다.

    6단계 – 웹 인터페이스를 통해 설치 완료

    이제 서버 구성이 완료되었으므로 웹 인터페이스를 통해 설치를 완료할 수 있습니다.

    웹 브라우저에서 서버의 도메인 이름 또는 공용 IP 주소로 이동합니다.

    https://server_domain_or_IP
    

    사용하려는 언어를 선택하십시오:

    다음으로 기본 설정 페이지로 이동합니다.

    WordPress 사이트의 이름을 선택하고 사용자 이름을 선택합니다(보안을 위해 "admin”과 같은 것을 선택하지 않는 것이 좋습니다). 강력한 비밀번호가 자동으로 생성됩니다. 이 비밀번호를 저장하거나 다른 강력한 비밀번호를 선택하세요.

    이메일 주소를 입력하고 검색 엔진이 귀하의 사이트를 인덱싱하지 못하도록 할지 여부를 선택하십시오.

    미리보기를 클릭하면 로그인하라는 메시지가 표시되는 페이지로 이동합니다.

    로그인하면 WordPress 관리 대시보드로 이동합니다.

    여기에서 WordPress 사이트 사용 및 사용자 정의를 시작할 수 있습니다.

    결론

    이제 WordPress가 성공적으로 설치되고 사용할 준비가 되었습니다. 몇 가지 일반적인 다음 단계는 게시물에 대한 퍼머링크 설정을 선택하거나(설정 > 퍼머링크에서 찾을 수 있음) 새 테마를 선택하는 것입니다(모양 > 테마에서). WordPress를 처음 사용하는 경우 인터페이스를 조금 탐색하여 새 CMS에 익숙해지십시오.