아파치 오브비즈 기사내용 찾기
Ubuntu 20.04에 LAMP Apache, MySQL, PHP를 설치하는 방법
Ubuntu 20.04에 LAMP Apache, MySQL, PHP를 설치하는 방법. 이 가이드에서는 Apache2, MySQL 및 PHP 7.4를 설치하는 방법을 배웁니다.
또한 몇 가지 일반적인 PHP 확장을 설치하고 PHP 구성을 조정합니다. 마지막으로 Let’s Encrypt SSL을 사용하여 설정을 보호하고 HTTPS 리디렉션을 구성합니다.
이 설정은 Google 클라우드에서 테스트되었으므로 AWS, Azure 또는 VPS 또는 Ubuntu 20.04를 실행하는 모든 전용 서버와 같은 모든 클라우드 호스팅 서비스에서 작동합니다.
전제 조건
- 서버 또는 sudo 사용자에 대한 루트 액세스
1단계: 초기화 설정
다음 명령을 사용하여 패키지를 사용 가능한 최신 버전으로 업데이트하여 시작합니다.
$sudo apt update $sudo apt upgrade
설정을 업데이트했으면 설정을 시작할 수 있습니다.
2단계: Apache 설치
다음 명령을 사용하여 Apache를 설치합니다.
$sudo apt install apache2
그러면 apache2
모든 필수 종속 항목 이 설치됩니다 .
3단계: 방화벽 설정
이제 당신에 대한 기본 웹 포트에 대한 공용 액세스를 허용하도록 아파치와 방화벽 (UFW)을 설정할 수 있습니다 HTTP
및HTTPS
$sudo ufw app list
나열된 모든 응용 프로그램이 표시됩니다.
출력
사용 가능한 애플리케이션:
Apache
Apache Full
Apache Secure
OpenSSH
- Apache : 이 프로필은 포트를 엽니다
80
(일반, 암호화되지 않은 웹 트래픽). - Apache Full : 이 프로필은 포트
80
(일반, 암호화되지 않은 웹 트래픽)와 포트443
(TLS/SSL 암호화 트래픽)를 모두 엽니다. - Apache Secure : 이 프로필은 포트만 엽니다
443
(TLS/SSL 암호화된 트래픽). - OpenSSH : 이 프로필
22
은 SSH 액세스를 위한 포트 를 엽니다 .
SSL을 사용하지 않으려면 Apache 프로필만 활성화해야 합니다.
이제 Apache Full을 활성화합니다.
$sudo ufw allow “Apache Full”
이 명령으로 UFW의 상태를 볼 수 있습니다.
$sudo ufw status
다음과 같이 출력이 표시됩니다.
출력
상태: 활성
작업 시작
-- ------ ----
Apache 전체 ALLOW Anywhere
OpenSSH ALLOW Anywhere
Apache 전체(v6) ALLOW Anywhere(v6)
OpenSSH(v6) ALLOW Anywhere(v6)
단계: 4 Apache 설치 확인
Apache가 설치되면 자동으로 시작되어 이미 실행 중입니다.
Apache의 모든 프로세스는 systemctl
명령으로 관리됩니다 . 다음 명령어로 Apache의 상태를 확인합니다.
$sudo systemctl status apache2
산출
● apache2.service - 아파치 HTTP 서버
로드됨: 로드됨(/lib/systemd/system/apache2.service; 활성화됨, 공급업체 사전 설정: 활성화됨)
드롭인: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
활성: 활성(실행 중) 이후 Tue 2020-01-06 03:59:34 UTC; 5분 전
메인 PID: 10617(apache2)
작업: 55(한도: 667)
C그룹: /system.slice/apache2.service
├─10617 /usr/sbin/apache2 -k 시작
├─10619 /usr/sbin/apache2 -k 시작
└─10620 /usr/sbin/apache2 -k 시작
Jan 06 03:59:34 apache systemd[1]: Apache HTTP 서버 시작 중…
Jan 06 03:59:34 apache systemd[1]: Apache HTTP 서버를 시작했습니다.
이제 Apache를 설치하고 방화벽을 구성했습니다.
5단계: MySQL 설치
Ubuntu 20.04에서 MySQL 8은 Focal Fossa 리포지토리에 기본적으로 포함되어 있으므로 apt install
명령을 사용하여 쉽게 설치할 수 있습니다 .
$sudo apt install mysql-server
설치가 완료되면 MySQL 서비스가 자동으로 시작됩니다. MySQL 서버가 실행 중인지 확인하려면 다음을 입력하십시오.
$sudo service mysql status
출력은 서비스가 활성화되어 실행 중임을 표시해야 합니다.
● mysql.service - MySQL 커뮤니티 서버 로드됨: 로드됨(/lib/systemd/system/mysql.service; 활성화됨, 공급업체 사전 설정: 활성화됨) 활성: 활성(실행 중) 이후 Tue 2020-05-05 07:13:18 UTC; 1분 4초 전 메인 PID: 3333(mysqld) 상태: "서버가 작동 중입니다" 작업: 38(한도: 2010) 메모리: 322.9M C그룹: /system.slice/mysql.service └─3333 /usr/sbin/mysqld
6단계: MySQL 보안
MySQL 설치에는 mysql_secure_installation
MySQL 서버 보안을 쉽게 개선할 수 있는 이름의 스크립트가 함께 제공됩니다 .
$sudo mysql_secure_installation
VALIDATE PASSWORD PLUGIN
MySQL 사용자 암호의 강도를 테스트하고 보안을 개선하는 데 사용되는 구성을 묻는 메시지가 표시됩니다 .
를 눌러 y
당신은 암호의 유효성을 확인 플러그인 또는 다음 단계로 이동하려면 다른 키를 설정합니다.
암호 유효성 검사 정책에는 낮음, 중간 및 강력의 세 가지 수준이 있습니다.
강력한 암호 유효성 검사를 위해 2를 입력합니다.
다음 프롬프트에서 MySQL 루트 사용자의 비밀번호를 설정하라는 메시지가 표시됩니다.
비밀번호 확인 플러그인을 설정하면 스크립트에 새 비밀번호의 강도가 표시됩니다. 입력 y
하여 암호를 확인합니다.
다음으로, 익명 사용자를 제거하고, 로컬 시스템에 대한 루트 사용자 액세스를 제한하고, 테스트 데이터베이스를 제거하고, 권한 테이블을 다시 로드하라는 메시지가 표시됩니다. y
모든 질문에 답 해야 합니다.
7단계: PHP 설치
기본적으로 Ubuntu 20.04에는 최신 PHP 7.4 저장소가 추가되었습니다. 따라서 다음 명령을 사용하여 PHP를 설치할 수 있습니다.
$sudo apt install php libapache2-mod-php php-mysql php-common php-mysql php-xml php-xmlrpc php-curl php-gd php-imagick php-cli php-dev php-imap php-mbstring php7.4-opcache php-soap php-zip php-intl
PHP가 설치되면 다음 명령을 사용하여 버전을 확인할 수 있습니다.
$php -v
8단계: PHP 구성
이제 php.ini
파일의 일부 값을 변경하여 웹 애플리케이션용 PHP를 구성 합니다.
Apache가 설치된 PHP 7.4의 경우 php.ini
위치는 다음 디렉토리에 있습니다.
$sudo nano /etc/php/7.4/apache2/php.ini
히트 F6
편집기 내부 검색 및 성능 향상을 위해 다음과 같은 값을 업데이트합니다.
upload_max_filesize = 32M post_max_size = 48M memory_limit = 256M max_execution_time = 600 max_input_vars = 3000 max_input_time = 1000
PHP 설정을 수정했으면 변경 사항을 적용하려면 Apache를 다시 시작해야 합니다.
9단계: Apache 구성
기본 Apache 구성을 비활성화합니다.
$sudo a2dissite 000-default
웹사이트 디렉토리를 만듭니다.
$sudo mkdir -p /var/www/html/domain_name/public
올바른 권한을 설정하십시오.
$sudo chmod -R 755 /var/www/html/domain_name
$sudo chown -R www-data:www-data /var/www/html/domain_name
새 가상 호스트 구성을 만듭니다.
$sudo nano /etc/apache2/sites-available/domain_name.conf
새 파일에 다음 구성을 붙여넣습니다.
<VirtualHost *:80> ServerAdmin admin@domainname.com ServerName domainname.com ServerAlias www.domainname.com DocumentRoot /var/www/html/domainname/public <Directory /var/www/html/domainname/public> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
새 구성을 활성화합니다.
$sudo a2ensite domain_name.conf
10단계: Let’s Encrypt SSL 설치
HTTPS는 서버(인스턴스)와 클라이언트(웹 브라우저) 간의 보안 통신을 위한 프로토콜입니다. 무료 SSL 인증서를 제공하는 Let’s Encrypt의 도입으로 모든 사람이 HTTPS를 채택하고 청중에게 신뢰를 제공합니다.
$sudo apt install python3-certbot-apache
이제 Ubuntu 20.04용 Let’s Encrypt의 Certbot을 설치했습니다. 이 명령을 실행하여 인증서를 받으십시오.
$sudo certbot –apache –agree-tos –redirect -m yourmail@email.com -d domain_name.com -d www.domain_name.com
적절한 옵션을 선택하고 Enter
이 명령은 무료 SSL을 설치하고 HTTPS로 리디렉션을 구성하며 Apache 서버를 다시 시작합니다.
11단계: SSL 인증서 갱신
Let’s Encrypt에서 제공하는 인증서는 90일 동안만 유효하므로 자주 갱신해야 합니다. 그럼 다음 명령어를 사용하여 갱신 기능을 테스트해보자.
$sudo certbot update –dry-run
이 명령은 인증서 만료를 테스트하고 자동 갱신 기능을 구성합니다.
12단계: 설정 테스트
가능한 단계를 완료하면 웹 디렉토리에 새로운 테스트 PHP 파일을 생성할 수 있습니다.
$sudo nano /var/www/html/domain_name/public/info.php
파일 안에 아래 코드를 붙여넣습니다.
<?php phpinfor();
파일을 저장합니다.
이제 info.php
URL( domainname.com/info.php
) 에서 도메인 이름을 확인하십시오 .
도메인이 HTTPS로 리디렉션되고 PHP 정보 세부 정보가 표시됩니다.