RHEL/CentOS 에서 워드프레스 설치하기
개요
wordpress 는 5분안에 설치할 수 있을 정도로 설치가 매우 간단하며 설정해 줄 게 별로 없다.
DB는 MySQL 만 지원하는데 ezSQL이라는 DB abstract layer 가 아닌 utility library 를 사용하기 때문이다.
사전작업
Apache/PHP/MySQL이 필요하므로 yum 으로 설치하자.
apache httpd
yum install -y httpd mod_ssl
php 를 설치한다. RHEL/CentOS 에는 예전 버전의 php만 있지만 wordpress 는 이걸로 충분하다. 혹시 wordpress 사이트를 laravel 로 만든 app 와 같이 돌아야 한다면 최신 버전의 php 를 설치해야 한다.
RHEL/CentOS 의 기본 php (5.3.3) 설치
yum install php php-cli php-mysql -y
- 최신 버전의 php 를 설치할 경우 RHEL/CentOS php 5.4 Installation 를 참고
- MySQL 을 설치한다. CentOS 6 에 yum 으로 MySQL 5.5 설치 를 참고한다.
httpd가 MySQL 에 연결할 수 있게 SELinux boolean 을 추가한다. (참고 : SELinux에서 apache 가 DB 에 연결 가능하게 설정하기)
setsebool -P httpd_can_network_connect_db on
- service httpd restart
Wordpress 설치
워드프레스는 개인 계정으로 설치하는게 나중에 플러그인이나 테마 설치/변경시 root 로 작업하지 않아도 되니 편리하며 보안 측면에서도 유리하다. 다만 웹서버에 Virtual Host 등으로 워드프레스 연결하는 작업은 root 로 진행해야 한다.
root 로 작업
- wordpress download (Ex: wordpress-3.8.3)
압축 해제 (/var/www/html/wordpress-3.8.3 에 압축 해제됨)
tar zxvf -C wordpress-3.8.3.tar.gz -C /var/www/html
워드 프레스 계정(ex: wordpress)으로 소유권 변경
chown -R wordpress:wordpress /var/www/html/wordpress-3.8.3
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>
- service httpd restart
wordpress 계정으로 작업
- cd /var/www/html/wordpress-3.8.3
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';
- cp wp-config-sample.php wp-config.php
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');
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');
워드프레스가 첨부 파일이나 이미지등을 저장하는 폴더인 uploads 폴더를 생성한다.
mkdir wp-content/uploads
apache server 가 upload 에 쓸 수 있게 권한을 부여한다.
setfacl -R -m u:apache:rwx wp-content/uploads
- Browser 로 연결 후에 wordpress 관리자 계정을 생성하고 로그인한다.
- 정상적으로 설치가 완료되었는지 확인한다.