LAPM를 이용해 웹 서버를 구축하고 Wordpress를 활용해 웹 사이트를 운영해보는 프로젝트를 진행하고자 한다.
프로젝트를 위한 순서는 다음과 같다.
1. MariaDB 설치
2. 웹 서버 (Apache) 설치
3. PHP 설치
4. MariaDB 설정, 웹 서버 설정, PHP 설정
dnf 명령을 이용해 APM을 설치한다.
우선 httpd, php, mariadb-server가 설치되었는지 확인해보자
[root@localhost ~]# rpm -qa httpd php mariadb-server
아직 설치가 안되어 있으므로 아무것도 출력되지 않는다.
CentOS 7의 기본 저장소에서는 DNF를 사용할 수 없다. RHEL/CentOS 시스템에 DNF를 설치하려면 먼저 epel-release 저장소를 설치하고 활성화해야 한다.
다음으로 epel-release 저장소 에서 yum 명령을 사용하여 DNF 패키지를 설치 한다.
[root@localhost ~]# yum install epel-release -y
[root@localhost ~]# yum install dnf
설치를 위해 다음 명령을 입력한다.
다시 rpm -qa 패키지이름 명령을 입력하면 설치된 아파치, PHP, MariaDB의 버전을 확인할 수 있다.
[root@localhost ~]# dnf -y install httpd php php-mysqlnd mariadb-server
[root@localhost ~]# rpm -qa httpd php mariadb-server
php-5.4.16-48.el7.x86_64
mariadb-server-5.5.68-1.el7.x86_64
httpd-2.4.6-97.el7.centos.4.x86_64
mariadb 설정
우선 mariadb가 정상적으로 설치되어 있는지 확인한다.
[root@localhost ~]# rpm -qa mariadb*
[root@localhost ~]# rpm -ql mariadb-server
mysql 보안 설정을 해준다.
[root@localhost ~]# mysql_secure_installation
Would you like to setup VALIDATE PASSWORD plugin? : 비밀번호 가이드. 복잡한 비밀번호를 사용하도록 제한해주는 플러그인을 사용하려면 yes, 그냥 쓰던 비밀번호 제한받지 않고 쓰고 싶다면 no
Remove anonymous users? : 익명사용자 삭제할지/계속 사용할지 여부. no 하면 $ mysql -uroot가 아니라 $ mysql만으로도 접속 가능. yes하면 -u 옵션 필수
Disallow root login remotely? : localhost외에 다른 ip에서 root 아이디로 원격접속 가능하게 할지. yes하면 원겹접속 불가
Remove test database and access to it? : mysql에 기본적으로 설정된 test 디비 삭제 여부
Reload privilege tables now? : 하나라도 권한 변경을 했다면 yes
mysql 서비스 활성화
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/mysqld.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
웹 서버 설정
httpd 설치 및 설치 확인
[root@localhost ~]# yum install httpd
[root@localhost ~]# rpm -qa httpd
[root@localhost ~]# rpm -ql httpd
방화벽 정책을 추가하기 위해 방화벽 리스트를 확인한다.
[root@localhost ~]# firewall-cmd --list-all
http 서비스를 영구적으로 추가한다.
[root@localhost ~]# firewall-cmd --add-service=http
success
[root@localhost ~]# firewall-cmd --add-service=http --permanent
success
[root@localhost ~]# firewall-cmd --list-all
다시 한번 방화벽 리스트를 확인하면 http가 추가된 것을 확인할 수 있다.
PHP 설정
yum으로 설치한 PHP는 5.4 버전이므로 remi와 yum-utils로 버전을 변경한다.
[root@localhost ~]# yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@localhost ~]# yum install -y yum-utils
만약 yum install -y yum-utils 명령 입력 시
14: curl#7 - "Failed to connect to 2a00:c70:1:109:238:14:107:1: 네트워크가 접근 불가능합니다" 와 같은 에러가 난다면 다음과 같이 설정해준다.
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# ls
[root@localhost network-scripts]# nmcli con up enp0s3
본인의 이더넷명을 확인한 후 nmcli con up 명령을 이용해 활성화시킨다.
[root@localhost ~]# yum-config-manager --disable remi-php54
[root@localhost ~]# yum-config-manager --enable remi-php74
php 5.4 버전을 끄고 php 7.4 버전을 활성화 시킨다.
[root@localhost ~]# yum install -y php74
[root@localhost ~]# yum install -y php74-php php-cli php74-scldevel \
> php74-php-xml php74-php-xmlrpc php74-php-soap \
> php74-php-process php74-php-pgsql php74-php-pdo \
> php74-php-opcache php74-php-mbstring php74-php-ldap \
> php74-php-json php74-php-ioncube-loader php74-php-intl \
> php74-php-gmp php74-php-gd php74-php-fpm php74-php-devel \
> php74-php-dba php74-php-common php74-php-cli \
> php74-php-bcmath php74-php-phpiredis php74-php-pecl-igbinary \
> php74-php-pecl-imagick-im7 php74-php-pecl-imagick-im7-devel \
> php74-php-pecl-igbinary-devel php74-php-pecl-geoip \
> php74-php-pecl-xdebug php74-php-pecl-mysqlnd-azure
필요한 php 7.4 라이브러리를 설치한다.
[root@localhost ~]# systemctl restart httpd.service
[root@localhost ~]# systemctl status httpd.service
php 7.4는 웹 데몬에 라이브러리처럼 동작하므로 웹 데몬을 재시작한다.
http.conf 파일 내에 index.html 이 아닌 index.php 파일이 로딩될 수 있도록 설정해주어야 한다.
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
vi 에디터를 열어 /IfModule을 입력하여 하단의 코드를 찾아 index.php를 추가해준다.
</IfModule> 상단에 2줄을 추가한다.
[root@localhost ~]# systemctl restart httpd
설정을 완료했다면 아파치를 재시작한다.
아파치의 설정 파일을 건드리지 않았다면 기본 홈페이지의 디렉토리는 /var/www/html이다.
이 디렉토리에 파일을 하나 만들어 다음과 같이 수정해준다.
<?php phpinfo(); ?> => 웹 서버에 설치된 PHP 정보를 보여준다.
virtualBox로 돌아가 graphical 모드로 변경하기 위해 다음 명령을 입력한다.
run level을 임시로 변경하는 명령이다.
systemctl isolate graphical.target
그러면 우리가 사용하던 그래픽 모드로 변경이 되고 여기서 root로 로그인을 해준다.
상단의 머신을 눌러 Firefox에 접속한다.
http://아파치 서버가 설치된 ip 주소/phpinfo.php 를 입력하여 확인해본다. 위와 같이 뜨면 PHP 모듈이 정상적으로 작동하는 것이다.
[root@localhost ~]# hostname -I
10.0.2.10 192.168.56.101 192.168.122.1
아파치 서버가 설치된 ip 주소를 확인하기 위해서는 다음 명령을 입력한다.
'Project' 카테고리의 다른 글
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 4 (0) | 2022.03.18 |
---|---|
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 3 (0) | 2022.03.15 |
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 2 (0) | 2022.03.15 |
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (Web, DB, DNS 서버 분리) - 1 (0) | 2022.03.15 |
APM을 이용한 웹 서버 구축 및 Wordpress를 활용한 웹 사이트 (2) (0) | 2022.03.15 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!