웹사이트 검색

우분투 14.04에 워드프레스를 설치하는 방법


소개

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

이 가이드에서는 Ubuntu 14.04에서 Apache 웹 서버로 WordPress 인스턴스를 설정하는 데 중점을 둘 것입니다.

전제 조건

이 가이드를 시작하기 전에 서버에서 완료해야 하는 몇 가지 중요한 단계가 있습니다.

sudo 권한이 있는 루트가 아닌 사용자로 이 단계를 진행하므로 사용 가능한 권한이 있어야 합니다. Ubuntu 14.04 초기 서버 설정 가이드의 1-4단계에 따라 sudo 권한이 있는 사용자를 생성하는 방법을 확인할 수 있습니다.

또한 VPS 인스턴스에 LAMP(Linux, Apache, MySQL 및 PHP) 스택이 설치되어 있어야 합니다. 이러한 구성 요소를 아직 설치 및 구성하지 않은 경우 이 가이드를 사용하여 Ubuntu 14.04에 LAMP를 설치하는 방법을 알아볼 수 있습니다.

이러한 단계를 마치면 이 가이드를 계속 진행할 수 있습니다.

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

우리가 취할 첫 번째 단계는 준비 단계입니다. WordPress는 관계형 데이터베이스를 사용하여 사이트 및 사용자 정보를 관리하고 저장합니다.

이 기능을 제공할 수 있는 MySQL이 설치되어 있지만 WordPress에서 작업할 데이터베이스와 사용자를 만들어야 합니다.

시작하려면 다음 명령을 실행하여 MySQL 루트(관리자) 계정에 로그인합니다.

mysql -u root -p

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

첫째, 워드프레스가 제어할 수 있는 별도의 데이터베이스를 만들 수 있습니다. 원하는 대로 이것을 호출할 수 있지만 설명적이고 단순하기 때문에 wordpress라고 부르겠습니다. 다음 명령을 입력하여 데이터베이스를 생성합니다.

<예비>

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

다음으로 새 데이터베이스에서 작업하는 데만 사용할 별도의 MySQL 사용자 계정을 만들 것입니다. 단일 기능 데이터베이스 및 계정을 생성하는 것은 관리 및 보안 관점에서 좋은 생각입니다.

wordpressuser를 만들고 있는 새 계정을 호출하고 password의 암호를 할당합니다. 반드시 설치 암호를 변경해야 하며 원하는 대로 사용자 이름을 지정할 수 있습니다. 다음은 사용자를 생성하는 데 필요한 명령입니다.

<예비>

이 시점에서 WordPress용으로 특별히 만들어진 데이터베이스와 사용자 계정이 있습니다. 그러나 이 두 구성 요소는 아직 관계가 없습니다. 사용자는 데이터베이스에 액세스할 수 없습니다.

다음 명령을 사용하여 사용자 계정에 데이터베이스에 대한 액세스 권한을 부여하여 문제를 해결해 보겠습니다.

<예비>

이제 사용자는 데이터베이스에 액세스할 수 있습니다. MySQL의 현재 인스턴스가 우리가 만든 최근 권한 변경 사항을 알 수 있도록 권한을 플러시해야 합니다.

FLUSH PRIVILEGES;

이제 모든 설정이 완료되었습니다. 다음을 입력하여 MySQL 프롬프트를 종료할 수 있습니다.

exit

이제 일반 명령 프롬프트로 돌아갑니다.

2단계 — 워드프레스 다운로드

다음으로 프로젝트 웹 사이트에서 실제 WordPress 파일을 다운로드합니다.

운 좋게도 WordPress 팀은 항상 최신 안정 버전의 소프트웨어를 동일한 URL에 연결하므로 다음을 입력하여 최신 버전의 WordPress를 얻을 수 있습니다.

cd ~
wget http://wordpress.org/latest.tar.gz

이렇게 하면 WordPress 파일의 보관된 디렉터리 내용이 포함된 압축 파일이 홈 디렉터리로 다운로드됩니다.

다음을 입력하여 필요한 WordPress 디렉토리를 다시 빌드하기 위해 파일을 추출할 수 있습니다.

tar xzvf latest.tar.gz

이렇게 하면 홈 디렉토리에 wordpress라는 디렉토리가 생성됩니다.

다운로드하는 동안 필요한 패키지를 몇 개 더 받아야 합니다. 로컬 패키지 인덱스를 업데이트한 후 Ubuntu의 기본 리포지토리에서 직접 가져올 수 있습니다.

sudo apt-get update
sudo apt-get install php5-gd libssh2-php

이렇게 하면 이미지로 작업할 수 있으며 플러그인을 설치하고 SSH 로그인 자격 증명을 사용하여 사이트의 일부를 업데이트할 수도 있습니다.

3단계 - WordPress 구성

우리가 수행할 대부분의 구성은 나중에 웹 인터페이스를 통해 이루어집니다. 그러나 이를 시작하고 실행하기 전에 명령줄에서 몇 가지 작업을 수행해야 합니다.

방금 압축을 푼 WordPress 디렉토리로 이동하여 시작합니다.

cd ~/wordpress

필요한 구성과 거의 일치하는 샘플 구성 파일이 기본적으로 포함되어 있습니다. 그러나 워드프레스가 파일을 인식하도록 하려면 기본 구성 파일 위치에 복사해야 합니다. 다음을 입력하여 지금 수행하십시오.

cp wp-config-sample.php wp-config.php

이제 작업할 구성 파일이 있으므로 설치를 보호하는 데 도움이 되는 몇 가지 비밀 키를 생성할 수 있습니다. WordPress는 이러한 값에 대한 안전한 생성기를 제공하므로 스스로 좋은 값을 찾으려고 노력할 필요가 없습니다. 이들은 내부적으로만 사용되므로 여기에 복잡하고 안전한 값이 있어도 유용성이 손상되지 않습니다.

WordPress 비밀 키 생성기에서 보안 값을 가져오려면 다음을 입력하십시오.

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&%');

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

다음으로 텍스트 편집기에서 구성 파일을 엽니다.

nano 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');

. . .

그런 다음 데이터베이스 정보를 보유하는 매개변수만 수정하면 됩니다.

WordPress가 우리가 만든 데이터베이스에 올바르게 연결하고 인증하려면 DB_NAME, DB_USERDB_PASSWORD에 대한 설정을 찾아야 합니다.

생성한 데이터베이스에 대한 정보로 이러한 매개변수의 값을 입력합니다. 다음과 같아야 합니다.

<예비>

/** MySQL 데이터베이스 사용자 이름 */

/** MySQL 데이터베이스 비밀번호 */

변경해야 하는 유일한 값입니다.

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

4단계 - 문서 루트에 파일 복사

이제 응용 프로그램을 구성했으므로 웹 사이트 방문자에게 제공할 수 있는 Apache의 문서 루트에 복사해야 합니다.

디렉토리에서 디렉토리로 파일을 전송하는 가장 쉽고 안정적인 방법 중 하나는 rsync 명령을 사용하는 것입니다. 이렇게 하면 권한이 유지되고 우수한 데이터 무결성 기능이 있습니다.

Ubuntu 14.04 LAMP 가이드의 문서 루트 위치는 /var/www/html/입니다. 다음을 입력하여 WordPress 파일을 전송할 수 있습니다.

sudo rsync -avP ~/wordpress/ /var/www/html/

이렇게 하면 압축을 푼 디렉토리의 모든 내용이 문서 루트에 안전하게 복사됩니다.

이제 문서 루트로 이동하여 최종 권한을 변경해야 합니다.

cd /var/www/html

보안 강화를 위해 파일 소유권을 변경해야 합니다.

사이트와 상호 작용하는 데 사용할 예정인 루트가 아닌 일반 사용자(sudo 권한 포함)에게 사용자 소유권을 부여하고자 합니다. 원하는 경우 일반 사용자가 될 수 있지만 일부에서는 이 프로세스를 위해 추가 사용자를 생성하도록 제안할 수 있습니다. 당신이 선택하는 것은 당신에게 달려 있습니다.

이 가이드에서는 demo라고 하는 초기 서버 설정 가이드에서 설정한 것과 동일한 계정을 사용합니다. 이것은 이 가이드의 모든 작업을 수행하는 계정입니다.

웹 서버 프로세스에 부여할 그룹 소유권은 www-data입니다. 이렇게 하면 Apache가 필요에 따라 콘텐츠와 상호 작용할 수 있습니다.

다음을 입력하여 이러한 소유권 값을 빠르게 할당할 수 있습니다.

<예비>

이렇게 하면 우리가 찾고 있는 소유권 속성이 설정됩니다.

소유권과 권한을 처리하는 동안 업로드 디렉터리에 올바른 소유권을 할당하는 방법도 살펴봐야 합니다. 이를 통해 이미지 및 기타 콘텐츠를 사이트에 업로드할 수 있습니다. 현재 권한이 너무 제한적입니다.

먼저 문서 루트의 wp-content 디렉토리 아래에 uploads 디렉토리를 수동으로 생성해 보겠습니다. 이것은 콘텐츠의 상위 디렉터리가 됩니다.

mkdir /var/www/html/wp-content/uploads

이제 업로드된 파일을 보관할 디렉토리가 있지만 권한이 여전히 너무 제한적입니다. 웹 서버 자체가 이 디렉토리에 쓸 수 있도록 허용해야 합니다. 다음과 같이 이 디렉토리의 그룹 소유권을 웹 서버에 할당하여 이를 수행할 수 있습니다.

sudo chown -R :www-data /var/www/html/wp-content/uploads

이렇게 하면 웹 서버가 이 디렉토리 아래에 파일과 디렉토리를 생성할 수 있으며, 이를 통해 콘텐츠를 서버에 업로드할 수 있습니다.

5단계 - 웹 인터페이스를 통해 설치 완료

이제 파일이 준비되고 소프트웨어가 구성되었으므로 웹 인터페이스를 통해 설치를 완료할 수 있습니다.

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

<예비>

초기 관리자 계정을 생성할 WordPress 초기 구성 페이지가 표시됩니다.

만들고자 하는 사이트 및 관리 계정에 대한 정보를 입력합니다. 완료되면 하단의 설치 버튼을 클릭합니다.

WordPress는 설치를 확인한 다음 방금 만든 계정으로 로그인하라는 메시지를 표시합니다.

하단의 버튼을 누른 다음 계정 정보를 입력하십시오.

WordPress 인터페이스가 표시됩니다.

6단계(선택 사항) - WordPress용 Pretty 퍼머링크 구성

기본적으로 WordPress는 다음과 같은 URL을 동적으로 생성합니다.

<예비>

방문자나 검색 엔진에 가장 유용한 인터페이스는 아니므로 대부분의 사용자는 이를 수정하고 싶어합니다. WordPress에는 URL을 보다 인간 친화적인 형식으로 정리하는 \예쁜\ 퍼머링크를 생성할 수 있는 기능이 있습니다.

Ubuntu 14.04에서 Apache와 함께 작동하려면 몇 가지 작업을 수행해야 합니다.

URL 재작성을 허용하도록 Apache 수정

먼저 .htaccess 재정의를 허용하도록 WordPress용 Apache 가상 호스트 파일을 수정해야 합니다. 가상 호스트 파일을 편집하여 이를 수행할 수 있습니다.

기본적으로 이것은 000-default.conf이지만 다른 구성 파일을 만든 경우 파일이 다를 수 있습니다.

sudo nano /etc/apache2/sites-available/000-default.conf

이 파일 내에서 몇 가지를 설정하려고 합니다. ServerName을 설정하고 재정의를 허용하는 디렉터리 섹션을 만들어야 합니다. 다음과 같아야 합니다.

<예비>

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

다음으로 URL을 수정할 수 있는 재작성 모듈을 활성화해야 합니다. 다음을 입력하면 됩니다.

sudo a2enmod rewrite

이러한 변경을 수행한 후 Apache를 다시 시작하십시오.

sudo service apache2 restart

.htaccess 파일 생성

Apache가 .htaccess 파일을 통한 재작성을 허용하도록 구성되었으므로 실제 파일을 생성해야 합니다.

이 파일을 문서 루트에 배치해야 합니다. 빈 파일을 만들려면 다음을 입력하십시오.

touch /var/www/html/.htaccess

사용자 이름과 사용자 그룹으로 생성됩니다. 하지만 웹 서버가 그룹 소유자가 되어야 하므로 다음을 입력하여 소유권을 조정해야 합니다.

sudo chown :www-data /var/www/html/.htaccess

이제 이 파일의 올바른 소유권을 갖게 되었습니다.

그러나 권한을 조정해야 할 수도 있습니다. 이것은 당신이 선호하는 작업 방식에 달려 있습니다. WordPress는 필요한 재작성 규칙을 생성합니다. 이 파일에 대한 쓰기 권한이 있으면 규칙을 자동으로 구현할 수 있습니다. 그렇지 않은 경우 이 파일을 수동으로 편집하여 올바른 규칙을 추가해야 합니다.

선택하는 구성은 보안보다 편리함을 얼마나 중시하는지에 따라 다릅니다. 이 파일에 대한 웹 서버 쓰기 액세스를 허용하는 것이 확실히 더 편리하겠지만 불필요한 보안 위험이라는 의견도 있습니다.

WordPress가 다시 쓰기 규칙으로 이 파일을 자동으로 업데이트하도록 하려면 다음을 입력하여 올바른 권한이 있는지 확인할 수 있습니다.

chmod 664 /var/www/html/.htaccess

약간의 보안 향상을 위해 이 파일을 수동으로 업데이트하려는 경우 다음을 입력하여 웹 서버에 읽기 권한만 허용할 수 있습니다.

chmod 644 /var/www/html/.htaccess

WordPress에서 퍼머링크 설정 변경

서버 측 변경 작업을 마치면 WordPress 관리 인터페이스를 통해 퍼머링크 설정을 쉽게 조정할 수 있습니다.

왼쪽의 설정 메뉴에서 고유 링크를 선택할 수 있습니다.

미리 구성된 설정을 선택하여 URL을 구성하거나 직접 만들 수 있습니다.

선택했으면 "변경 사항 저장\을 클릭하여 재작성 규칙을 생성하십시오.

웹 서버가 .htaccess 파일에 대한 쓰기 액세스를 허용한 경우 다음과 같은 메시지가 표시됩니다.

웹 서버가 .htaccess 파일에 대한 쓰기 액세스를 허용하지 않은 경우 파일에 수동으로 추가해야 하는 재작성 규칙이 제공됩니다.

WordPress에서 제공하는 줄을 복사한 다음 서버에서 파일을 편집합니다.

nano /var/www/html/.htaccess

이것은 동일한 기능을 제공해야 합니다.

결론

이제 Ubuntu 14.04 VPS에서 WordPress 인스턴스를 실행해야 합니다. 여기에서 취할 수 있는 많은 길이 있습니다. 아래에 몇 가지 옵션이 나열되어 있습니다.

  • WordPress용 보안 업데이트 및 설치 구성
  • WPScan을 사용하여 취약한 플러그인 및 테마 테스트
  • 명령줄에서 WordPress 관리
  • 여러 WordPress 사이트 설정(멀티사이트 아님)
  • 멀티사이트로 여러 WordPress 사이트 설정