RHEL/CentOS 에서 워드프레스 설치하기

개요

wordpress 는 5분안에 설치할 수 있을 정도로 설치가 매우 간단하며 설정해 줄 게 별로 없다.

DB는 MySQL 만 지원하는데 ezSQL이라는 DB abstract layer 가 아닌 utility library 를 사용하기 때문이다.

 

사전작업

Apache/PHP/MySQL이 필요하므로 yum 으로 설치하자.

  1. apache httpd

    yum install -y httpd mod_ssl

  2. php 를 설치한다. RHEL/CentOS 에는 예전 버전의 php만 있지만 wordpress 는 이걸로 충분하다. 혹시 wordpress 사이트를 laravel 로 만든 app 와 같이 돌아야 한다면 최신 버전의 php 를 설치해야 한다.

    1. RHEL/CentOS 의 기본 php (5.3.3) 설치

      yum install php php-cli php-mysql -y
    2. 최신 버전의 php 를 설치할 경우 RHEL/CentOS php 5.4 Installation 를 참고
  3. MySQL 을 설치한다. CentOS 6 에 yum 으로 MySQL 5.5 설치 를 참고한다.
  4. httpd가 MySQL 에 연결할 수 있게 SELinux boolean 을 추가한다. (참고 : SELinux에서 apache 가 DB 에 연결 가능하게 설정하기)

    setsebool -P httpd_can_network_connect_db on
  5. service httpd restart

Wordpress 설치

워드프레스는 개인 계정으로 설치하는게 나중에 플러그인이나 테마 설치/변경시 root 로 작업하지 않아도 되니 편리하며 보안 측면에서도 유리하다. 다만 웹서버에 Virtual Host 등으로 워드프레스 연결하는 작업은 root 로 진행해야 한다.

 

root 로 작업

  1. wordpress download (Ex: wordpress-3.8.3)
  2. 압축 해제 (/var/www/html/wordpress-3.8.3 에 압축 해제됨)

    tar zxvf -C wordpress-3.8.3.tar.gz -C /var/www/html
  3. 워드 프레스 계정(ex: wordpress)으로 소유권 변경

    chown -R wordpress:wordpress /var/www/html/wordpress-3.8.3
  4. apache 설정

    <VirtualHost *:80>
        ServerName wordpress.example.com
        ServerAlias wordpress.example.com
        DocumentRoot "/var/www/html/wordpress-3.8.3/"
        ErrorLog logs/wordpress-error_log
        CustomLog logs/wordpress-acces_log common
    </VirtualHost>
  5. service httpd restart

wordpress 계정으로 작업

  1. cd /var/www/html/wordpress-3.8.3
  2. mysql -u root 로 연결후에 DB 생성

    DB 생성
    --MySQL DB 생성
    CREATE DATABASE wordpress CHARACTER SET utf8 COLLATE utf8_bin; 
    -- User 생성
    grant all privileges on wordpress .* to 'username'@'localhost' IDENTIFIED BY 'password';
  3. cp wp-config-sample.php wp-config.php
  4. vi  wp-config.php 후 위에서 설정한 DB 정보로 설정 파일을 수정한다.

    변경전
    define('DB_NAME', 'database_name_here');
    /** MySQL database username */
    define('DB_USER', 'username_here');
    /** MySQL database password */
    define('DB_PASSWORD', 'password_here');
    /** MySQL hostname */
    define('DB_HOST', 'localhost');
    DB 설정 수정후
    define('DB_NAME', 'wordpress');
    /** MySQL database username */
    define('DB_USER', 'username');
    /** MySQL database password */
    define('DB_PASSWORD', 'password');
    /** MySQL hostname */
    define('DB_HOST', 'localhost');
  5. https://api.wordpress.org/secret-key/1.1/salt/에 브라우저로 연결하여 생성된 salt를  wp-config.php 의 기존 salt 설정에 덮어쓴다.

    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');
  6. 워드프레스가 첨부 파일이나 이미지등을 저장하는 폴더인 uploads 폴더를 생성한다.

    mkdir wp-content/uploads
  7. apache server 가 upload 에 쓸 수 있게 권한을 부여한다.

     setfacl -R -m u:apache:rwx wp-content/uploads
  8. Browser 로 연결 후에 wordpress 관리자 계정을 생성하고 로그인한다.
  9. 정상적으로 설치가  완료되었는지 확인한다.