본문으로 바로가기

[Ubuntu] 우분투 워드프레스 설치

category 리눅스/Ubuntu 2013. 8. 20. 21:34

이 글은 우분투에서 APM이 설치되어 있다는 가정하에 작성된 글입니다.

준비 사항

워드프레스 이미지 썸네일 생성시 gd 라이브러리가 필요

sudo apt-get install php5-gd 

mod_rewrite 활성화

sudo a2enmod rewrite

가상호스트 설정

하나의 사이트만을 운영할 경우에는 /etc/apache2/sites-available/default를 수정하고 여러 사이트를 운영할 계획이라면 원하는 VirtualHost를 생성후 수정한다.

sudo vi /etc/apache2/sites-available/default 

  <VirtualHost *:80>
    # 관리자 메일주소로 변경
    ServerAdmin webmaster@localhost   
    ServerName uzuro.com
    ServerAlias www.uzuro.com
    # 웹문서 디렉토리를 변경하려면 수정
    DocumentRoot /var/www    

    <Directory />
      Options FollowSymLinks
      AllowOverride None
    </Directory>

    # 웹문서 디렉토리를 변경하였다면 이 곳도 변경
    <Directory /var/www>    
      <LimitExcept GET POST>
        deny from all
      </LimitExcept>

      Options -Indexes -FollowSymLinks -MultiViews -ExecCGI +SymLinksIfOwnermatch -Includes -IncludesNOEXEC
      AllowOverride None 
      Order allow,deny
      allow from all

      # 짧은 주소 , wordpress 폴더채로 올렷을 경우의 예 - (SymLinksIfOwnerMatch 필요)
      RewriteEngine On
      RewriteBase /wordpress/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /wordpress/index.php [L]

      # 핫링크 방지
      RewriteCond %{HTTP_REFERER} !^$
      RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?uzuro.com [NC]
      RewriteRule \.(jpe?g|png|gif|bmp|GIF|JPG)$ - [NC,F,L]
    </Directory>

    # 업로드 디렉토리 안의 php 파일 실행 불가
    <Directory "/var/www/wordpress/wp-content/uploads/">
      php_admin_value engine off
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

    <Directory "/usr/lib/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
    </Directory>

    # error.log의 위치를 변경하고 싶다면 원하는 위치로 변경
    ErrorLog ${APACHE_LOG_DIR}/error.log    

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.

    LogLevel warn
    # access.log의 위치를 변경하려면 원하는 위치로
    CustomLog ${APACHE_LOG_DIR}/access.log combined   

    Alias /doc/ "/usr/share/doc/"

    <Directory "/usr/share/doc/">
      Options Indexes MultiViews FollowSymLinks
      AllowOverride None
      Order deny,allow
      Deny from all
      Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
  </VirtualHost>

워드프레스용 데이터베이스 생성

MySQL 로그인

mysql -u root -p

데이터베이스를 생성(유추하기 힘든 DB명 추천)

CREATE DATABASE wordpress;

데이터베이스에 접속할 유저생성(원하는 유저명으로)

CREATE USER wordpressuser@localhost

생성한 유저의 패스워드 생성 (원하는 패스워드로)

SET PASSWORD FOR wodrdpressuser@localhost=PASSWORD("password");

생성한 유저에게 권한 부여

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

리플레쉬 MySQL

FLUSH PRIVILEGES;

MySQL 종료

exit

워드프레스 설치

워드프레스 파일 다운로드

cd /var/www
wget http://wordpress.org/latest.tar.gz

# 아래는 한글판
wget http://ko.wordpress.org/wordpress-3.6-ko_KR.tar.gz

tar -xvzf latest.tar.gz

Apache 실행권한을 부여한다.

cd /var/www
sudo chown www-data:www-data * -R 
sudo usermod -a -G www-data username

권한문제가 가장 까다로운듯 싶다. 위와 같이 설정하고 접속해보니 FTP상으로 쓰기권한이 없어서 그룹권한에 7을 부여했다.

sudo chmod -R 775 /var/www

그래도 문제가 발생하면 아래와 같이 변경해보자

sudo chown -R www-data:$USER

아파치 재시작

sudo /etc/init.d/apache2 restart

이후의 워드프레스 설치는 아래의 링크를 참조한다

워드프레스 설치하기