안녕하세요 오늘은 CentOS7에 web server WordPress 설치 방법을 알아 보도록 하겠습니다.
참고로 저는  Linux를 8~9년전에 잠깐 사용을 해본게 전부입니다.
이 포스트를 보시면 리눅스를 사용해 보신적이 없는 분들도 쉽게 성공하실수 있을것입니다.
여기서는 웹서버 구성에 Maria DB, Nginx, PHP 7.1 을 사용하도록 하겠습니다.

이포스트를 보기전에 Web Server 사용을 위한 Linux CentOS 7 설치를 보고 리눅스를 설치 하시기 바랍니다.

1. yum update

yum 이란 ? RPM 기반의 시스템을 위한 자동 업데이트 겸 패키지 설치/제거 도구입니다.

yum -y update

yum을 업데이트 합니다.

2. Maria DB 설치

maria DB

vim /etc/yum.repos.d/MariaDB.repo

위에 명령어를 입력 하면 VIM이 실행 됩니다.
VIM은 파일 편집기로서 Dos의 Edit, Windows의 notepad와 비슷한 역활을 합니다.

키보드 “i”를 입력하여 insert 모드로 변경 후 아래 내용을 그대로 입력합니다.

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos8-amd64
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 0
enabled = 1

입력이 완료 되면 ESC를 눌러 insert 모드에서 나온 후 :wq 를 입력합니다.


yum install -y mariadb mariadb-server

Maria DB를 설치합니다.


systemctl start mariadb

Maria DB를 실행 합니다.


mysql_secure_installation

Maria DB 보안 설정을 실행 합니다.

Enter current password for root (enter for none)  : 처음 실행이라 비밀번호가 없습니다. 그냥 Enter를 입력 합니다.
Set root password? [Y/n] : root 관리자 비밀번호 설정을 위해 y를 입력비밀번호 2번을 똑같이 입력 합니다.
Remove anonymous users? [Y/n] : 익명 사용자를 삭제하기 위해 y를 입력 합니다.
Disallow root login remotely? [Y/n : root 원격 사용을 위해 y를 입력 합니다.
Remove test database and access to it? [Y/n] : test database 삭제를 위해 y를 입력 합니다.
Reload privilege tables now? [Y/n] : talbes Reload y를 입력 합니다.


systemctl enable mariadb

Maria DB 자동 실행을 등록 합니다.

3. php 7.4 설치

php71

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
wget http://rpms.remirepo.net/enterprise/remi-release-8.rpm
wget http://rpms.remirepo.net/enterprise/8/remi/x86_64/php74-php-7.4.7-1.el8.remi.x86_64.rpm
rpm -Uvh remi-release-8.rpm epel-release-latest-8.noarch.rpm
rpm -Uvh -e --nodeps php74-php-7.4.7-1.el8.remi.x86_64.rpm
dnf module reset php
dnf module install php:remi-7.4
yum -y install yum-utils
yum --enablerepo=remi update remi-release
yum-config-manager --enable remi

EPEL 저장소 구성 및 활성화를 합니다.


dnf --enablerepo=remi install -y php php-fpm php-mysql
dnf --enablerepo=remi install -y php-mbstring php-common php-cli php-json php-mcrypt php-soap php-bcmath php-dba php-pdo php-ldap php-mysqlnd php-opcache php-xml php-xmlrpc  php-pear php-gd  php-imagick php-devel
dnf --enablerepo=remi install -y zip unzip php-zip

PHP 7.4 설치를 진행 합니다.


systemctl start php-fpm.service

systemctl start php74-php-fpm.service

php-fpm 실행 합니다.


systemctl enable php-fpm.service

php-fpm 자동 실행을 등록 합니다.

4. Nginx 설치

nginx

vim /etc/yum.repos.d/nginx.repo

vim을 이용하여 nginx.repo 를 수정합니다.

키보드 “i” 클릭 후 아래 내용을 넣습니다.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

입력이 완료 되면 :wq를 입력하여 저장하고 나옵니다. 


yum-config-manager --enable nginx-stable
dnf install -y nginx

Nginx를 설치 합니다.


systemctl start nginx

Nginx를 실행 합니다.


systemctl enable nginx

Nginx 자동 실행을 등록 합니다.

 

5. 방화벽 설정

firewall-cmd --permanent --zone=public --add-service=http

방화벽에 HTTP 서비스를 등록합니다


firewall-cmd --permanent --zone=public --add-service=https

방화벽에 HTTPS 서비스를 등록합니다


firewall-cmd --reload

방화벽 설정 reload 합니다.

6. php.ini 수정 

vim 에서 단어 검색은 /검색어 입니다. 예: timezone 검색시      /timezone 엔터를 입력하시면됩니다.

vim /etc/php.ini

vim으로 php.ini 파일을 open 합니다.


date.timezone = Asia/Seoul

맨앞에 ; 삭제 후 Asia/Seoul 로 수정 합니다.


cgi.fix_pathinfo = 0

맨앞에 ; 삭제 후 1을 0으로 수정 합니다.

:wq를 입력하여 저장하고 나옵니다.

 

7. php-fpm 설정 변경

vim /etc/php-fpm.d/www.conf

vim으로 www.conf 파일을 open 합니다.


user = nginx 
group = nginx

apache 를 nginx 로 변경합니다.


listen.owner = nginx
listen.group = nginx
listen.mode = 0660

앞부분 ; 를 제거 후  apache 를 nginx 로 변경합니다.


listen = /var/run/php-fpm/php-fpm.sock

listen = 127.0.0.1:900을 위와 같이 변경 합니다. 

 

8. nginx.conf 설정 변경

vim /etc/nginx/nginx.conf

vim으로 nginx.conf 파일을 open 합니다.


worker_processes auto;

worker_processes 1;  1을 auto 로 수정합니다. 프로세서 수를 자동으로 확인합니다. 

 

9. php 환경 변수 설정

mkdir -p /etc/nginx/snippets

디렉토리를 생성 합니다.


vim /etc/nginx/snippets/fastcgi-php.conf

fastcgi-php.conf 파일을 생성 후 아래 내용을 입력 합니다.

fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
include fastcgi_params;

 

여기까지 진행을 하면 웹서버 구축을 위한 기본단계는 완료 된것입니다.
Maria DB, php7.1, Nginx 설치를 완료하였습니다.
다음 포스트에서 wordpress 설치를 진행 하도록 하겠습니다.

감사합니다.