https://ndb796.tistory.com/314
AWS EC2 인스턴스 생성, 접속, MySQL 설치, Apache, PHP 연동 [한 번에 끝내기]
AWS EC2 인스턴스를 생성한 뒤에, 거기에 접속해서 MySQL, Apache, PHP를 설치하여 연동하는 방법에 대해서 소개하겠습니다. AWS EC2 인스턴스 생성 1. AWS EC2 관리 페이지로 이동합니다. EC2 관리 페이지: ht
ndb796.tistory.com
솔직히 단어들 모르고 넘어간게 많아
정리하고 넘어가보자 정리해보았습니다
단어 정리 해설 및 주석을 달았습니다 개인적 기록인데 잘 하고 있는건지는 모르겠네요
AWS EC2 인스턴스 생성 무슨 말일까?
-aws에서 제공하는 클라우드 컴퓨팅 서비스 중 하나다 이 서비스를 사용하면 사용자는 가상의 컴퓨터를 구축하고 실행할 수있다 Amazon Machine Image(AMI)와 함께 제공되며 가상 머신 이미지 라고 한다

Ubuntu Server 18.04 LTS (HVM)
-필자는 Ubuntu Server 18.04 LTS (HVM) 버전이 없어서 Ubuntu Server 20.04 LTS (HVM) 버전을 채택했다
t2.micro
-프리티어로 공짜로 할 수 있는 건가 보다 무조건 공짜는 아니다 주의 정도만 하면 과금은 안 나가는 듯하다
키페어
chmod 400 {키 페어 파일 이름.pem}
- 키페어는 키 페어는 공개 키와 개인 키의 두 가지로 이루어진 한 쌍을 뜻하며 공개키와 비밀키가 있다
- chmod 는 리눅스에서 파일권한을 변경하는 커맨드이다 파일 권한을 변경하는 명령어인듯 하다
ssh -i "{키 페어 파일 이름.pem}" ubuntu@{AWS EC2 서버 URL}
- ssh는 간단하게 안전하게 통신을 하기 위해 사용하는 프로토콜이다 컴퓨터와 컴퓨터의 안전한 연결이다
2. MySQL를 설치하고 접속합니다.
sudo apt update # MySQL 설치를 위해 업데이트
sudo apt install mysql-server # MySQL 서버 설치
sudo mysql -u root -p # MySQL 접속
-sudo Super User DO의 뜻으로 강한 권한을 갖는듯하다
-su는 switch user의 약자입니다. 계정을 전환하는 명령어이다 보통 sudo su라고 쓴다
-apt는 Advanced Package Tool의 약자로 Debian시스템에 포함된 핵심 도구들의 집합체이다
3. MySQL 접속 이후에 비밀번호를 설정합니다.
use mysql;
CREATE USER '{생성할 사용자 이름}'@'%' IDENTIFIED BY '{비밀번호}'; # 생성할 사용자 비밀번호 설정
GRANT ALL PRIVILEGES ON *.* TO '{사용자 이름}'@'%'; # 외부 접속이 가능하도록 설정
FLUSH PRIVILEGES; #MySql의 캐시를 지우고 새로운 설정을 적용하기 위해서 사용되는 명령어
exit; #나가기
4. MySQL 설정 파일을 수정합니다.
cd /etc/mysql/mysql.conf.d;
sudo vi mysqld.cnf;
-vi는 한 화면을 편집하는 비주얼 에디터(visual editor)라고 한다 편집기이다
5. mysqld.cnf를 수정하여 MySQL의 외부 접속을 허용합니다.
bind-address = 0.0.0.0
-bind-address = 0.0.0.0는 네트워크 전체 대역, 즉 모든 트래픽에 대해서 요청을 허용한다는 뜻이란다
6. 수정 이후에 Mysql를 재시작 합니다.
sudo service mysql restart -Mysql #재시작 명령어
MySQL 외부 접속 테스트
1. AWS EC2 보안 그룹 페이지로 이동합니다.
2. 보안 그룹 설정을 진행합니다. [인바운드] - [편집] - [규칙 추가] - [MySQL/Aurora] - 허용 IP로 [0.0.0.0/0]를 설정합니다.
- 허용 IP로 [0.0.0.0/0]로 해야 mysql에서 접속할 수 있게 하는 듯하다

3. MySQL Workbench와 같은 MySQL 관리 도구를 이용하여 접속합니다.
Hostname: {AWS EC2의 공인 IP 주소}
Username: {생성한 사용자 이름}
Password: {비밀번호}


4. MySQL에 접속하여 간단한 쿼리를 날립니다.
select now();
Apache 웹 서버 설치 및 환경설정
1. Apache 웹 서버를 설치합니다.
sudo apt-get install apache2
2. AWS EC2 보안 그룹 페이지로 이동합니다.
3. 보안 그룹 설정을 진행합니다. [인바운드] - [편집] - [규칙 추가] - [HTTP] - 허용 IP로 [0.0.0.0/0]를 설정합니다.
-위에 보안 그룹대로 했다면 할 필요 없다
4. 공인 IP로 접속하여 웹 서버가 정상적으로 구동하는지 확인합니다.

5. apache2.conf 설정 파일을 엽니다.
sudo vi /etc/apache2/apache2.conf
6. 루트 디렉토리를 [/home/project]로 변경합니.
<Directory /home/project/>
Options Indexes
FollowSymLinks
AllowOverride None Require all granted
</Directory>
7. default.conf 설정 파일 열기
sudo vi /etc/apache2/sites-available/000-default.conf
8. 루트 디렉토리를 [/home/project]로 변경합니다.
DocumentRoot /home/project
9. /home/project 폴더 생성 및 index.html 파일을 생성합니다.
sudo mkdir /home/project sudo vi /home/project/index.html
10. index.html 파일을 작성합니다.
Hello World!
11. Apache 웹 서버 재시작
sudo apachectl restart
PHP 웹 서버 설치 및 Apache 연동
1. 간단히 옛날 버전의 PHP 5.6를 설치해보겠습니다.
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php5.6
PHP 5.6 대신에 아래 링크보고 따라해보자 php 7.4 다운
https://blog.uncletom.co.kr/10
[Linux]Ubuntu 20.04 웹 서버 구축(3) - PHP 7.4 설치
[Linux]Ubuntu 20.04 웹 서버 구축(3) - PHP 7.4 설치 [Linux] Ubuntu 20.04 Web Server Construction - PHP 7.4 Installation PHP 개요 PHP를 소개하기 전에 웹 페이지 프로그래밍 언어에 대하여 설명을 드립니다. 웹 개발용 언
blog.uncletom.co.kr
2. 설치된 PHP 버전을 확인합니다.
php -version
3. Apache와 PHP 연동 테스트
sudo vi /home/project/test.php
4. PHP 소개 페이지를 작성합니다.
<?php phpinfo();?>
5. 공인 IP의 /test.php로 접속하여 PHP 연동이 제대로 됐는지 확인합니다.
(index.html 파일을 지워야 할 수 있습니다.)
1. 설치된 패키지를 확인합니다.
dpkg -l | grep php
2. index.php 소스코드를 작성합니다
데이터 베이스를 안 만들었다면 만들어야 한다
<?php
$conn = mysqli_connect(
'{데이터베이스 IP}',
'{사용자 이름}',
'{비밀번호}',
'{데이터베이스 이름}',
'3306');
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT VERSION()";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
print_r($row["VERSION()"]);
?>
'AWS' 카테고리의 다른 글
| 액세스가 거부되었습니다. (0) | 2023.09.13 |
|---|---|
| AWS EC2 인스턴스 종료 삭제 하기 (0) | 2023.09.13 |