이번 포스팅에서는아마존 aws 가상 사설 호스팅(VPS) 서버 1대가 생성된 곳에서 워드프레스를 구축할 수 있는 환경을 만들어 볼 것입니다.
리눅스(centos,redhat 등) 환경에서 APM( apache, php, mysql)을 설치하고, 각종 설정을 진행할 것이며, 워드프레스 뿐만 아니라 다양한 웹사이트를 구축하기 위한 기본적인 서버셋팅 입니다.
리눅스나 서버에 대한 지식이 없으시다면 본 글에 대한 이해가 어려울수 있고, 진행에 어려움이 생길수 있다는점 참고하시기 바랍니다.
일단 아마존 라이트세일 서버와 동일한 서버환경인 centos6.8에서 설치 진행을 하겠습니다. 어차피 하는 방법은 동일합니다.
아마존 서버도 레드헷 기반이고, centos도 레드헷 기반이라 큰 문제는 없습니다. 문제가 있을 경우 댓글 남겨주시면 답변 드리겠습니다.
*기본적인 설치 가이드는 아래 리스트를 통해서 Ctrl+c, Ctrl+v(복사, 붙여넣기)를 진행하시면 됩니다. 리눅스나 서버에 대한 지식이 있으신분들은 자신의 환경에 맞춰서 설정하시면 될 것이고, 처음 이신분들은 그대로 복사 붙여넣기 해보세요.
1) 시작에 앞서 아마존 라이트세일에 접속하셔서 자신의 만든 인스턴스(서버)에 고정ip등록을 해보도록 하겠습니다. 그림처럼 오른쪽 상단에 보시면 고정ip 생성이 있는데, 클릭해봅니다.

아마존 aws apm 설치-1
2) 이처럼 인스턴스에 고정ip 등록을 해봅니다. 이 고정ip는 바뀌지 않는 ip이기 때문에 혹시나 아마존 내에서 서버이전을 진행할 경우 매우 유용합니다.(별도의 ip변경작업이 없기 때문에 서비스장애타임이 줄어듭니다.)

아마존 aws apm 설치-2
3) 설치에 앞서 cd /usr/local/src/ 로 이동해 봅니다.

아마존 aws apm 설치-3
그리고 아래 리스트를 참고하시면서 설치 진행을 합니다.
[기본 설치파일 다운로드]
wget http://archive.apache.org/dist/httpd/httpd-2.4.23.tar.gz
wget http://am1.php.net/get/php-5.5.33.tar.gz/from/this/mirror -O php-5.5.33.tar.gz
wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.58-linux-glibc2.12-x86_64.tar.gz
wget http://mirror.apache-kr.org/apr/apr-1.6.3.tar.gz
wget http://mirror.apache-kr.org/apr/apr-util-1.6.1.tar.gz
tar xvfz httpd-2.4.23.tar.gz
tar xvfz php-5.5.33.tar.gz
tar xvfz mysql-5.5.58-linux-glibc2.12-x86_64.tar.gz
tar xvf apr-1.6.3.tar.gz
tar xvf apr-util-1.6.1.tar.gz
설치에 앞서 기본리눅스 라이브러리를 설치해야 됩니다. 아마존 라이트세일서버에서 있는 경우도 있고, 없는 경우도 있으며, 업데이트 해야되는 경우도 있기 때문에 그대로 복사해서 붙여넣기 하세요.
yum -y install vim
yum -y install zlib libpng freetype jpeg gd libxml2
yum -y install freetype-devel
yum -y install gmp-devel
yum -y install libX11-devel
yum -y install libtermcap-devel ncurses-devel
yum -y install make cmake
yum -y install gcc g++ cpp gcc-c++
yum -y install perl
yum -y install ncurses-devel
yum -y install bison
yum -y install zlib curl
yum -y install openssl openssl-devel
yum -y install bzip2-devel
yum -y install libtermcap-devel libc-client-devel
yum -y install wget unzip
yum -y install libxml2*
yum -y install libaio*
yum -y install expat*
yum -y install libjpeg-devel
yum -y install libpng-devel
yum -y install libXpm-devel
ln -s /usr/lib64/libjpeg.so /usr/lib
ln -s /usr/lib64/libpng.so /usr/lib
ln -s /usr/lib64/libXpm.so.4 /usr/lib64/libXpm.so
wget https://fossies.org/linux/privat/old/libmcrypt-2.5.8.tar.gz
tar xvfz libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure && make && make install
echo “/usr/local/lib” >> /etc/ld.so.conf
ldconfig
ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib
ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib64/
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
[ads-m1]
[mysql 설치]
> /etc/my.cnf
vi /etc/my.cnf
아래내용 추가
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
log-bin=mysql-bin
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
#####
mv mysql-5.5.58-linux-glibc2.12-x86_64 /usr/local/
ln -s /usr/local/mysql-5.5.58-linux-glibc2.12-x86_64/ /usr/local/mysql
useradd mysql
chown -R mysql.mysql /usr/local/mysql-5.5.58-linux-glibc2.12-x86_64/
cd /usr/local/mysql
ln -s lib lib64
#### 아래 내용 복사하실때 워드프레스 문서편집기가 버그인지, 화면표시되는게 버그인지는 알 수 없지만 – – 하이픈 2개가 붙어 있는것인데 – 개로만 복사 될 것입니다. 이건 복사 붙여넣기 하실때 수정하세요. – 가 아니라 – – 2개의 하이픈 입니다. ####
/usr/local/mysql/scripts/mysql_install_db –defaults-file=/etc/my.cnf –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chown -R mysql.mysql data/
mysql(DB) 서비스 시작
service mysqld start
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqldump /usr/sbin/
mysql -uroot -p
패스워드 물어보면 그냥 엔터.
use mysql;
update user set password = password(‘1234!@#$’) where User=’root’ and Host = ‘localhost’;
flush privileges;
[ads-m2]
[apache 설치]
cd /usr/local/src/
mv apr-1.6.3 httpd-2.4.23/srclib/apr
mv apr-util-1.6.1 httpd-2.4.23/srclib/apr-util
wget http://ftp.exim.llorien.org/pcre/pcre-8.30.tar.gz
tar xvf pcre-8.30.tar.gz
cd pcre-8.30
./configure && make && make install
cd httpd-2.4.23
./configure –prefix=/usr/local/apache_2.4.23 –with-included-apr –with-included-apr-util –enable-so –enable-http2 –enable-mods-static=most –with-mpm=event –enable-ssl –enable-modules=shared && make && make install
ln -s /usr/local/apache_2.4.23/ /usr/local/apache
이제 apache(웹서버) 몇가지 내용을 편집 해야 됩니다. 아래 내용을 찾아서 수정해주세요.
vi /usr/local/apache/conf/httpd.conf
<Directory />
AllowOverride all
# Require all denied
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
<IfModule mime_module>
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
[php 설치]
cd /usr/local/src/php-5.5.33
./configure –prefix=/usr/local/php_5.5.33 –with-libdir=lib64 –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-apxs2=/usr/local/apache/bin/apxs –with-zlib –with-gd –with-gmp –disable-rpath –with-iconv –enable-bcmath –enable-sysvsem –enable-sysvshm –enable-wddx –enable-inline-optimization –enable-mbstring –enable-mbregex –enable-ftp –disable-debug –with-jpeg-dir –with-freetype-dir –enable-gd-native-ttf –with-curl –with-xpm-dir=/usr –with-mcrypt –enable-exif –with-openssl –enable-sockets –enable-soap –enable-maintainer-zts && make && make install
ln -s /usr/local/php/bin/php /usr/sbin/
cp php.ini-development /usr/local/php/lib/php.ini
웹서비스 시작
/usr/local/apache/bin/apachectl start
방화벽 웹서비스 포트 추가
vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
/etc/init.d/iptables restart
브라우저 주소창에 자신의 ip나 도메인주소를 입력하면 아래와 같은 화면이 나오면 정상적으로 설치된 것입니다.
워드프레스를 설치하기 위한 기본적이 서버쪽 설치가 완료되었습니다. 아마 중간에 해매시는분들이 많이 계실것으로 생각됩니다.
단순히 워드프레스만 운영하실거면 워드프레스+리눅스 설치 패키지로 서비스중인 제품들을 사용하시면 됩니다. 그럼 손쉽게 워프를 할 수 있습니다.
다만, 저렇게 패키지로 설치된것은 서버를 스스로 커스터마이징 하면서 서버최적화를 하기가 힘든게 단점이고, 제가 올려드린 방법처럼 소스컴파일을 하게되면 서버최적화 하기에 적합하다고 말씀드릴수 있습니다.
아마존서버에서는 기본적인 라이브러리가 최신버전으로 업데이트된 상태이기 때문에 문제없이 설치는 될 것입니다.