AWS 도커 PHP, MYSQL 설치
💡 시작하기전
AWS 도커 웹서버 설치 편에서 AWS EC2에 centos 설치하고
도커 인스턴스를 올리는 것까지 포스팅했다
이번 포스팅엔 인스턴스에 mysql, php를 설치해본다
💡 도커 명령
ps 명령어로 현재 돌고 있는 인스턴스를 확인 가능
sudo docker ps -a
이전 포스팅에서 사용한 run 명령의 옵션 확인
sudo docker run -it --name centos7 -v /centos7:/var/www
--privileged -p 8080:8080 -p 3307:3307 centos:7 sbin/init
옵션 | 설명 |
---|---|
i | 표준 입력(stdin)을 활성화하며 컨테이너와 연결(attach)되어 있지 않더라도
표준 입력을 유지 (bash) |
t | tty 사용 |
name | 별칭 (centos7) |
v | 호스트와 인스턴스 마운트 (폴더 공유) |
privileged | 커널 사용 (systemctl 등) |
p | 포트 노출 (8080,3307 포트 점유) |
옵션 확인 후 인스턴스에 접속
[centos@ip-172-31-2-149 ~]$ sudo docker exec -it centos8 /bin/bash
[root@e01345459bfd /]#
✍ 방화벽
AWS
AWS에 로그인 하여 보안그룹->launch-wizard-1->인바운드규칙 선택 후
우측 끝에 Edit inbound rules 클릭하면 방화벽 정책을 편집할 수 있다
도커 인스턴스에서 사용하는 웹포트로 지정한 8080 포트를 추가
firewalld
방화벽 데몬 설치 후 8080, 3307 포트 열고
yum install -y firewalld
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
설정 후 cyd.kr:8080 접속 확인
📝 MYSQL
wget은 HTTP, HTTPS, FTP 프로토콜을 이용하여 프로그램을 받을 수 있는 프로그램이다
rpm -ivh로 패키지를 설치하고 -ql로 내부파일 목록을 보고 -qi로 패키지 정보를 확인한다
✍ 설정파일 수정
mysql 기본포트는 3306이지만 인스턴스 올릴 때 3307포트를 열었기 때문에 포트번호를 바꿔준다
innodb_buffer_pool_size는 mysql 데몬 실행 시 기본 128M로 버퍼 설정이 되어 있는데
t2.micro 인스턴스를 사용하기 때문에 설치 시 오류가 나기 때문에 메모리를 줄여준다
yum update
yum install wget
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum repolist
rpm -ql mysql-community-release-el7-5.noarch
rpm -qi mysql-community-release-el7-5.noarch
yum install -y mysql-server
vi /etc/my.cnf.d/mysql-server.cnf
[mysqld] 아래에
port=3307
innodb_buffer_pool_size=64M
입력 후 저장
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
mysql_secure_installation
mysql -u root -p
✍ 데이터베이스
mysql_secure_installation 설치 명령을 실행하면 몇가지 질문을 하는데
아래와 같이 설정함
- 비밀번호 보안 강도 설정할 것인가? no
- 익명의 사용자 삭제할 것인가? yes
- root의 원격 접속을 막을것인가? no
- test 데이터베이스를 삭제할 것인가? yes
- 즉시 바뀐 권한을 적용할 것인가? yes
설정 후 mysql -u root -p 명령으로 mysql에 접속해 권한설정과 테스트용 테이블을 생성
create database conda;
use conda;
create table user (user_id varchar(8), user_pw varchar(8));
insert into user values ('conda', '1120');
select * from user;
+---------+---------+
| user_id | user_pw |
+---------+---------+
| conda | 1120 |
+---------+---------+
📝 PHP
✍ 설치 및 아파치 설정
아래 명령 실행 후 아파치 시작페이지 설정 부분에 php 확장자를 추가
yum install -y php php-cli php-common php-gd php-mysqlnd php-mbstring php-odbc php-pdo php-xml php-xmlrpc
yum list installed php*
rpm -qa | grep php
vi /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
아래와 같이 index.html 옆에 index.php 추가
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
✍ 테스트 소스
php로 테스트테이블 조회하는 파일 작성
vi var/www/html/index.php
<?php
$db_host = "localhost";
$db_user = "root";
$db_passwd = "1120";
$db_name = "conda";
$conn= mysqli_connect($db_host, $db_user, $db_passwd, $db_name);
if(mysqli_connect_errno($conn)){
echo "DB connect error:", mysqli_connect_errno();
echo "<br>";
}else{
echo "연결완료!<br>";
$sql = "select * from user";
$res = mysqli_query($conn, $sql);
for($i=0;$row=mysqli_fetch_array($res);$i++){
echo $row['user_id']." : ".$row['user_pw'];
}
}
?>
Author And Source
이 문제에 관하여(AWS 도커 PHP, MYSQL 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@conda/AWSPHPMYSQL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)