RHEL, CentOS, Rocky & AlmaLinux에 LAMP 서버 설치하는 방법

A LAMP stack is a collection of four different software (Linux, Apache, MySQL, and PHP) that programmers or web developers use to create and deploy websites or applications.

이 자습서는 LAMP 스택을 최신 RHELRHEL 기반 배포 (예: CentOS, Oracle Linux, Rocky, 및 AlmaLinux)에 설치하고 구성하는 방법에 중점을 둘 것입니다.

요구 사항

사용된 배포판에 따라 네트워크 구성을 위한 정적 IP 주소를 사용하여 최소 시스템 설치를 수행하는 데 다음 링크를 사용하십시오.

단계 1: Apache 웹 서버 설치

1. 최소 시스템 설치를 수행하고 서버 네트워크 인터페이스를 정적 IP 주소로 구성한 후 Apache(httpd) 서비스 바이너리 패키지를 다음 yum 명령어를 사용하여 공식 저장소에서 설치하세요.

# yum install httpd
Install Apache on Linux

2. Apache 설치가 완료되면 RHEL과 CentOS 모두 init 스크립트를 SysV에서 Systemd로 마이그레이션하였으므로 다음 명령어를 사용하여 Apache 데몬을 관리하세요 – 리눅스에서 init이 Systemd로 대체된 이유는 무엇인가요?.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Manage Apache in Linux

3. 다음 단계에서는 80번 포트와 443번 포트를 firewall-cmd를 사용하여 Firewalld 데몬을 통해 액세스를 허용하도록 방화벽에서 열어두세요.

# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# systemctl restart firewalld
NOTE: Make notice that using this rule will lose its effect after a system reboot or firewalld service restart because it opens on-fly rules, which are not applied permanently.

방화벽에서 iptables 규칙을 일관되게 적용하려면 --permanent 옵션을 사용하고 firewalld 서비스를 다시 시작하여 효과를 반영하세요.

# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# systemctl restart firewalld
Open Apache Ports in Firewalld

아래에 제시된 방화벽을 관리하기 위한 중요한 Firewalld 명령어들:

# firewall-cmd --state
# firewall-cmd --list-all
# firewall-cmd --list-interfaces
# firewall-cmd --get-service
# firewall-cmd --query-service service_name
# firewall-cmd --add-port=80/tcp

4. Apache 기능을 확인하기 위해 원격 브라우저를 열고 서버 IP 주소를 URL에 HTTP 프로토콜을 사용하여 입력하면, 아래 스크린샷과 같은 기본 페이지가 나타나야 합니다.

http://server_IP
Verify Apache in Linux

5. 현재 Apache DocumentRoot 경로는 /var/www/html 시스템 경로로 설정되어 있으며, 기본적으로 인덱스 파일을 제공하지 않습니다. DocumentRoot 경로의 디렉토리 목록을 보려면.

Apache welcome 구성 파일을 열고 Indexes 문을 에서 +LocationMatch 지시문에서 변경하고, 아래 스크린샷을 예로 사용하세요.

# vi /etc/httpd/conf.d/welcome.conf
Configure Apache Welcome Page

6. 변경 사항을 적용한 후 파일을 닫고 Apache 서비스를 다시 시작하여 변경 사항을 반영한 다음 브라우저 페이지를 다시 로드하여 최종 결과를 확인하세요.

# systemctl restart httpd
Apache Directory Listing

2단계: Apache용 PHP 지원 설치

7. PHP 동적 언어 지원을 설치하기 전에 Apache용으로 사용 가능한 PHP 모듈과 확장 목록을 확인하기 위해 다음 명령어를 사용하세요.

# yum search php
List PHP Modules

8. 어떤 유형의 애플리케이션을 사용하려는지에 따라 위의 목록에서 필요한 PHP 모듈을 설치하세요. 기본적인 MySQL/MariaDB 지원을 PHPPhpMyAdmin에 설치하려면 다음 모듈을 설치해야 합니다.

# yum install php php-mysql php-pdo php-gd php-mbstring
Install PHP Modules

9. 브라우저에서 PHP에 대한 전체 정보 목록을 얻으려면 다음 명령을 사용하여 Apache 문서 루트에 info.php 파일을 만들고, httpd 서비스를 다시 시작하고, 브라우저를 http://server_IP/info.php 주소로 지정하십시오.

# echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# systemctl restart httpd
List PHP Information

10. PHP 날짜 및 시간대에서 오류가 발생하면 php.ini 구성 파일을 열고 date.timezone 문을 찾아 주석 처리를 제거하고 물리적 위치를 추가하고 Apache 데몬을 다시 시작하십시오.

# vi /etc/php.ini

date.timezone 라인을 다음과 같이 변경하고 PHP 지원 시간대 목록을 사용하십시오.

date.timezone = Continent/City
Set PHP Timezone

단계 3: MariaDB 데이터베이스 설치 및 구성

11. RHEL 배포판은 기본 데이터베이스 관리 시스템으로 MySQL에서 MariaDB로 전환되었습니다. 다음 명령을 사용하여 MariaDB 데이터베이스를 설치하십시오.

# yum install mariadb-server mariadb
Install MariaDB on Linux

12. MariaDB 패키지를 설치한 후 데이터베이스 데몬을 시작하고 mysql_secure_installation 스크립트를 사용하여 데이터베이스를 보호하십시오(루트 암호 설정, 루트에서 원격 로그인 비활성화, 테스트 데이터베이스 제거, 익명 사용자 제거).

# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb
# mysql_secure_installation
Manage MariaDB Service
Secure MariaDB in Linux

13. 데이터베이스 기능을 테스트하려면 루트 계정을 사용하여 MariaDB에 로그인하고 quit 문을 사용하여 종료하십시오.

mysql -u root -p
MariaDB > show databases;
MariaDB > quit
Connect MariaDB to Linux

단계 4: MySQL 관리를 위해 PhpMyAdmin 설치

14. 기본적으로 공식 저장소에서는 PhpMyAdmin 웹 인터페이스에 대한 이진 패키지를 제공하지 않습니다. 데이터베이스를 관리하는 데 MySQL 명령줄을 사용하는 것이 불편하다면 다음 명령을 사용하여 PhpMyAdmin 패키지를 설치할 수 있습니다. 다음 명령을 사용하여 remi 저장소를 활성화합니다.

# yum install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm  [On CentOS/RHEL 7]

remi 저장소를 활성화한 후에는 PhpMyAdmin을 설치합니다.

# yum install phpmyadmin
Install PhpMyAdmin on Linux

15. 다음으로, PhpMyAdmin을 구성하여 원격 호스트에서의 연결을 허용하도록 phpmyadmin.conf 파일을 편집합니다. 이 파일은 아파치의 conf.d 디렉터리에 있으며 다음 줄을 주석 처리합니다.

# vi /etc/httpd/conf.d/phpMyAdmin.conf

다음과 같이 “Require local” 라인 아래에 “Require all granted” 라인을 추가합니다.

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   Require local
   Require all granted
</Directory>
Allow Remote PhpMyAdmin Access

16. PhpMyAdmin 웹 인터페이스에 로그인할 수 있도록 하려면 아파치 웹 서비스를 다시 시작하고 브라우저를 URL 주소로 이동합니다.

# systemctl restart httpd

http://server_IP/phpmyadmin/
PhpMyAdmin Dashboard

단계 5: Linux에서 LAMP 시스템 전체적으로 활성화하기

17. 재부팅 후 MariaDBApache 서비스를 자동으로 시작하려면 다음 명령을 사용하여 이를 시스템 전체적으로 활성화합니다.

# systemctl enable mariadb
# systemctl enable httpd

기본적인 LAMP 설치에 필요한 것은 모두 이것뿐입니다. LAMP 스택 관련 다음 시리즈의 기사에서는 Virtual Host를 생성하는 방법, SSL 인증서 및 키 생성, 그리고 Apache HTTP Server에 SSL 트랜잭션 지원 추가에 대해 논의할 것입니다.

Source:
https://www.tecmint.com/install-lamp-server-linux/