
WordPress란?
자유 오픈 소스 콘텐츠 관리 시스템(CMS)으로 PHP로 작성되어 있으며, MariaDB(MySQL)을 기반으로 구축되는 소프트웨어입니다. 최초에는 블로그 위주였으나, 전 세계 웹사이트의 40% 이상 사용률이 돌파하면서 멀티 사이트, 소셜 네트워크, 커뮤니티 포럼, 온라인 상점 등 여러 가지 방면으로 이용하고 있습니다. 그만큼 사용자에게 커스텀하기 좋은 유연성 있는 방향으로 발전되어 왔다는 것을 알 수 있습니다. 워드프레스는 일반 공중 라이선스(GPLv2 이상)를 따라가고 있으며 오픈 소스를 다운로드하여 개인 클라우드 서버에 설치하여 운영하거나 공식 사이트에서 무료로 시작하여 성장에 따라 일정 비용을 내고 호스팅 서비스를 받을 수도 있습니다.
| 공식 홈페이지 | https://wordpress.org/ |
| 공식 홈페이지(호스팅) | https://wordpress.com/ko |
[설치환경 및 준비물]
릴리즈 설치 테스트 : 2021-11-11
□ VMware Workstation 가상화에서 Rocky Linux 8.4 OS 준비 [포스팅 참고]
□ [root@localhost ~]# dnf update [※ OS 설치 후 기본 패키지 최신 업데이트]
□ [root@localhost ~]# cat /etc/selinux/config | grep SELINUX [보안 설정]
SELINUX=disabled [빠른 테스트를 위해 비활성화, 재시작 필요]
□ WordPress 현재 릴리스 버전으로 요구하는 사항
| WordPress | 5.8.2 [2021-11-11 기준] |
| Apache(Httpd) 또는 Nginx | 버전은 언급하지 않음 |
| PHP | 7.4.X 이상 [7.3.X 이하 설치시 에러남] |
| MariaDB 또는 MySQL | 10.1 이상 / 5.6 이상 |
◆ [APM] Apache, PHP, MariaDB, WordPress Install Guide 시작
◇ dnf(패키지 자동 설치)로 진행할 경우는 설치 순서는 상관없습니다만, 소스로 설치할 경우는 연동 편의성을 위해 일반적으로는 Apache, MariaDB, PHP 설치 순서로 진행한다는 것만 기억하시면 됩니다.
STEP01 → 아파치[Apache] 설치
[root@localhost ~]# dnf install httpd

STEP02 → 마리아[Maria DB] 설치
[root@localhost ~]# dnf install mariadb-server mariadb

STEP03 → PHP 설치[7.4.X 이상]
사용 가능한 PHP 버전 확인
[root@localhost ~]# dnf module list php

PHP [7.4.X] 모듈을 사용하기 위한 활성화 설정
[root@localhost ~]# dnf module enable php:7.4

PHP [7.4.X] 설치
[root@localhost ~]# dnf install php

WordPress에 필요한 PHP-모듈 미리 설치
[root@localhost ~]# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-pecl-zip php-fpm php-opcache php-curl php-zip php-xmlrpc wget

설치된 PHP 모듈 확인
[root@localhost ~]# php -m

STEP04 → 설치 버전 확인
[root@localhost ~]# httpd -v
Server version: Apache/2.4.37 (rocky)
Server built: Nov 15 2021 03:12:26
[root@localhost ~]# php -v
PHP 7.4.19 (cli) (built: May 4 2021 11:06:37) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.19, Copyright (c), by Zend Technologies
[root@localhost ~]# mysql -V [옵션 대문자]
mysql Ver 15.1 Distrib 10.3.28-MariaDB, for Linux (x86_64) using readline 5.1
■ 여기서부터는 [APM] Apache, PHP, MariaDB config(설정) 및 구동
STEP05 → 아파치(Apache) 및 PHP 설정 및 구동
□ 5-1 기본 설정[수정 후 저장]
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
98 #ServerName www.example.com:80
99 ServerName 192.168.150.149:80 [도메인 또는 해당 서버 IP 입력 추가]
167 <IfModule dir_module>
168 DirectoryIndex index.html index.htm index.php [일부 추가]
169 </IfModule>
287 AddType application/x-compress .Z
288 AddType application/x-gzip .gz .tgz
289 AddType application/x-httpd-php .php [라인 추가]
290 AddType application/x-httpd-phps .phps [라인 추가]
□ 5-2 PHP-FPM 기본 설정[수정 후 저장]
[root@localhost ~]# vi /etc/php-fpm.d/www.conf
52 ; When POSIX Access Control Lists are supported you can set them using
53 ; these options, value is a comma separated list of user/group names.
54 ; When set, listen.owner and listen.group are ignored
55 listen.acl_users = apache,nginx [유지]
56 listen.acl_groups = apache [라인 추가]
□ 5-3 아파치/PHP-FPM 시작 및 프로세스 구동 확인[service httpd start(stop) 명령어 사용 가능]
[root@localhost ~]# systemctl start httpd [시작]
[root@localhost ~]# systemctl start php-fpm [시작]
[root@localhost ~]# systemctl enable httpd php-fpm [부팅 후 자동 실행 설정(비활성화 시 disable)]
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
[root@localhost ~]# ps -ef |egrep "httpd|www" [아파치/PHP-FPM 구동 확인]

□ 5-4 방화벽 설정 및 적용
[root@localhost ~]# firewall-cmd --permanent --add-port=80/tcp [HTTP 80번 포트 추가]
[root@localhost ~]# firewall-cmd --reload [적용]
[root@localhost ~]# firewall-cmd --list-all [추가된 포트 확인]
ports: 80/tcp
□ 5-5 웹 구동 확인 테스트[스크린샷 참고]

□ 5-6 PHP 적용 확인
[root@localhost ~]# cd /var/www/html/
해당 경로에서 PHP의 정보를 보여주는 함수 파일 생성 후 저장
[root@localhost html]# vi /var/www/html/phpinfo.php
<?php phpinfo();?> [라인 추가]
[root@localhost html]# ls
phpinfo.php
□ 5-7 PHP 웹 연동 확인 테스트[스크린샷 참고]

STEP06 → MariaDB 구동 및 설정
□ 6-1 MariaDB 구동
[root@localhost ~]# systemctl start mariadb
부팅 시 자동 시작 활성화
[root@localhost ~]# systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
구동 확인
[root@localhost ~]# ps -ef | grep mysql
mysql 41925 1 0 11월18 ? 00:00:00 /usr/libexec/mysqld --basedir=/usr
□ 6-2 Maria DB 기본 설정 [DB가 구동된 상태에서 진행 가능]
[root@localhost ~]# mysql_secure_installation
Enter current password for root (enter for none): [패스워드가 없기 때문에 엔터]
◇ 이 부분은 버전에 따라 안 나올 수 있습니다.
Switch to unix_socket authentication [Y/n] Y [MariaDB 실행 시 통신 소켓 생성 여부? Y 엔터]
Change the root password? [Y/n] Y [DB ROOT 패스워드 설정할 것인가? Y 엔터]
New password: 패스워드 입력
Re-enter new password: 재확인 패스워드 입력
Remove anonymous users? [Y/n] Y [익명의 접근을 막을 것인지? 보안을 위해 Y 엔터]
Disallow root login remotely? [Y/n] Y [DB ROOT 원격을 막을 것인지? 보안을 위해 Y 엔터]
Remove test database and access to it? [Y/n] Y [Test 용으로 생성된 데이터베이스를 삭제할 것인가? Y 엔터]
Reload privilege tables now? [Y/n] Y [현재 설정한 값을 적용할 것인지? 당연히 Y 엔터]
Thanks for using MariaDB! [설정 완료]
□ 6-3 MariaDB 접속 및 WordPress 데이터베이스 생성
◇ 데이터베이스 이름이나 유저ID/패스워드는 임의로 설정
[root@localhost mysql]# mysql -u root -p [DB 접속]
Enter password: 패스워드 입력
◇ WordPrees 데이터베이스 생성 : CREATE DATABASE 데이터베이스 이름;
MariaDB [(none)]> CREATE DATABASE wpdb;
Query OK, 1 row affected (0.000 sec)
◇ 접근 유저 ID 및 패스워드 생성 : CREATE USER '유저 ID'@'localhost' IDENTIFIED BY '패스워드';
MariaDB [(none)]> CREATE USER 'foxydog'@'localhost' IDENTIFIED BY 'test1234';
Query OK, 0 rows affected (0.037 sec)
◇ 접근 권한 설정[모든 권한] : GRANT ALL ON 데이터베이스 이름.* TO '유저 ID'@'localhost';
MariaDB [(none)]> GRANT ALL ON wpdb.* TO 'foxydog'@'localhost';
Query OK, 0 rows affected (0.000 sec)
◇ 저장 종료
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> EXIT;
Bye
STEP07 → WordPress 다운로드
◇ 공식 홈페이지 다운로드 : https://wordpress.org/download/

[root@localhost ~]# wget https://wordpress.org/latest.tar.gz -O wordpress.tar.gz [wget 다운로드]
2021-11-19 00:41:36 (8.77 MB/s) - ‘wordpress.tar.gz’ saved [15085301/15085301]
[root@localhost ~]# tar -xvf wordpress.tar.gz [압축 해제]
[root@localhost ~]# cp -R wordpress /var/www/html/ [웹 루트 경로에 복사 또는 이동]
[root@localhost ~]# chown -R apache:apache /var/www/html/wordpress [유저/그룹 권한 설정]
[root@localhost ~]# chmod -R 775 /var/www/html/wordpress [폴더 권한 설정]
[root@localhost ~]# ls -al /var/www/html/ | grep wordpress [폴더 경로 및 권한 확인]
drwxrwxr-x [775 확인] 5 apache apache [유저/그룹 확인] 4096 11월 19 00:42 wordpress
STEP08 → WordPress용 Apache 가상 호스트 구성 및 적용
[root@localhost ~]# vim /etc/httpd/conf.d/wordpress.conf [파일 생성 후 저장]
<VirtualHost *:80> [시작]
ServerName 도메인 호스트 주소 또는 서버 IP
ServerAdmin foxydog@localhost
DocumentRoot /var/www/html/wordpress
<Directory "/var/www/html/wordpress">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
ErrorLog /etc/httpd/logs/wordpress_error.log
CustomLog /etc/httpd/logs/wordpress_access.log common
</VirtualHost> [끝]

[root@localhost ~]# systemctl restart httpd [재시작 적용]
[root@localhost ~]# systemctl status httpd | grep active [구동 확인]
Active: active (running) since Fri 2021-11-19 01:06:06 EST; 39s ago
STEP09 → 브라우저에서 WordPress 설정 및 설치[스크린샷 순서대로 진행]
◇ http://서버IP/ 입력









설치하고 여러 가지 메뉴를 확인해보니 정말 간단하게 테마나 플러그인 등을 쉽게 적용할 수 있도록 인터페이스 개발이 잘 되어 있습니다. 웹 개발자로 공부하시는 분들은 개인 PC 가상 서버나 클라우드 서버에 업로드 설치하여 연습하면 좋을 것으로 보입니다.
'◈『Open(Source) Solution』 > 게시판(CMS)' 카테고리의 다른 글
| Rocky Linux - 라이믹스(Rhymix) 설치하기 (8) | 2022.07.13 |
|---|