
간단설명🤔
인스턴스 : 아마존 웹 서비스(Amazon Web Services, AWS)에서 제공하는 가상 서버
퍼블릭 IP : 인터넷 상에서 고유한 식별자로 사용되는 IP 주소(외부에서 접속 가능)
프라이빗 IP : 로컬 네트워크 내에서 사용되는 IP 주소 (외부에서 접속 불가)
IP DNS : IP 주소랑 매핑되어 있는 인터넷에서의 도메인 이름
탄력적 IP : 클라우드 컴퓨팅 환경에서 사용되는 고정된 공인 IP 주소(외부에서 접속 가능)
보안그룹 : 네트워크 보안 그룹, 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할 수행
서브넷 : 가상 사설 네트워크를 나누어 관리하기 위한 세그먼트
putty 설치 설치 링크
putty 접속

→ ①②③④를 순서대로 클릭하여, public key 등록 화면에 접근
→ ⑤를 클릭하여 전달 받은 .ppk 파일을 업로드
→ ⑥을 클릭하여 ssh 정보 입력 화면 접근
→ ⑦에 전달받은 public IP 입력 후, ⑧을 클릭하여 서버 접속
→ 만약 connected time out 발생하면 보안그룹 방화벽 확인해볼것

→ 접속 시도 후, 방화벽 관련하여 접근 안내가 나오면 OK 누르기
→ login as : 발생하면 전달받은 user Id입력
→ 접속 완료
su
// 루트 권한 획들
yum update -y
// yum 업데이트
yum install -y gcc gcc-c++ make libtool cmake
yum install -y expat expat-devel
// 필수 패키지 설치
cd /home/rocky/Downloads
// 설치 위치로 이동
wget https://mirror.navercorp.com/apache/httpd/httpd-2.4.59.tar.gz
wget https://dlcdn.apache.org//apr/apr-1.7.4.tar.gz
wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
// 아파치 및 라이브러리 다운로드
tar -xvf apr-1.7.4.tar.gz
tar -xvf apr-util-1.6.3.tar.gz
tar -xvf pcre-8.45.tar.gz
tar -xvf httpd-2.4.59.tar.gz
// 압축해제
mv apr-1.7.4 apr-util-1.6.3 httpd-2.4.59 pcre-8.45 /usr/local/src/
cd /usr/local/src/
// 이동
cd apr-1.7.4
./configure --prefix=/usr/local/apr
make && make install
// apr 설치
cd ../apr-util-1.6.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
// apr-1.6.3 설치
cd ../pcre-8.45
./configure --prefix=/usr/local/pcre
make && make install
// pcre 8.45 설치
cd ../httpd-2.4.59
./configure --prefix=/usr/local/apache2.4 \
--enable-module=so --enable-rewrite --enable-so \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre=/usr/local/pcre/bin/pcre-config \
--enable-mods-shared=all
make && make install
// 아파치 설치
cd ../../apache2.4/conf
vi httpd.conf
(수정 ⇒ 주석해제)
#LoadModule rewrite_module modules/mod_rewrite.so
(수정)
#ServerName www.example.com:80 ⇒ ServerName 127.0.0.1
cd ../bin
./httpd -k start
ps -ef | grep httpd
> root 136436 6665 0 20:28 ? 00:00:00 ./httpd -k start
> daemon 136440 136436 0 20:28 ? 00:00:00 ./httpd -k start
> daemon 136441 136436 0 20:28 ? 00:00:00 ./httpd -k start
> daemon 136442 136436 0 20:28 ? 00:00:00 ./httpd -k start
> root 136528 7635 0 20:28 pts/0 00:00:00 grep --color=auto httpd
// 아파치 작동 확인
// 후에 127.0.0.1 접속하여 정상적으로 동작하는지 확인
cd /usr/local/src
yum install -y libjpeg* libpng* freetype* gd-* libxml* sqlite* openssl*
// 필수 패키지 설치
wget https://www.php.net/distributions/php-8.3.4.tar.gz
tar -xvf php-8.3.4.tar.gz
// 다운로드 및 압축해제
cd php-8.3.4
./configure \
--with-apxs2=/usr/local/apache2.4/bin/apxs \
--enable-mysqlnd \
--with-mysql-sock=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-imap-ssl \
--with-iconv \
--enable-gd \
--with-jpeg \
--with-libxml \
--with-openssl
make && make install
// php 설치
/usr/local/apache2.4/bin/httpd -k stop
// 아파치 추가 설정을 위한 작동 중지
vi /usr/local/apache2.4/conf/httpd.conf
(수정 => 압축해제)
#LoadModule php_module modules/libphp.so
(추가 => AddType 검색 후, 아래로 내렸을 때 가장 먼저 나오는 </IfModule> 아래에 작성)
AddType application/x-httpd-php .php .html
// php 사용을 위한 아파치 설정 파일 수정
cp php.ini-development php.ini
// php.ini 파일 생성
find / -name "libphp.so"
// apache2.4/modules 위치에 libphp.so 파일 있는지 확인
(없으면)
cp /usr/local/apache2.4/modules/libphp.so /etc/httpd/modules/
/usr/local/apache2.4/bin/httpd -k start
// 아파치 재기동
ps -ef | grep httpd
> root 136436 6665 0 20:28 ? 00:00:00 ./httpd -k start
> daemon 136440 136436 0 20:28 ? 00:00:00 ./httpd -k start
> daemon 136441 136436 0 20:28 ? 00:00:00 ./httpd -k start
> daemon 136442 136436 0 20:28 ? 00:00:00 ./httpd -k start
> root 136528 7635 0 20:28 pts/0 00:00:00 grep --color=auto httpd
// 아파치 작동확인
cd /usr/local/apache2.4/htdocs
vi phpinfo.php
(입력)
<?php
phpinfo();
?>
// 후에 127.0.0.1/phpinfo.php 접속하여 정상적으로 동작하는지 확인
cd /usr/local/src
// 다운로드 위치로 이동
yum install -y perl*
// 패키지 설치
rpm -ivh https://repo.mysql.com/mysql80-community-release-el8-9.noarch.rpm
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo
yum --enablerepo=mysql80-community install mysql-community-server
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum --enablerepo=mysql80-community install mysql-community-server
// mysql 설치
mysql -V
> mysql Ver 8.0.37 for Linux on x86_64 (MySQL Community Server - GPL)
// mysql 설치 확인
systemctl start mysqld
// mysql 서버 실행
grep 'temporary password' /var/log/mysqld.log
> 2024-05-02T00:35:34.281865Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: o9FCegefug(o
// 임시 비밀번호 확인( ":" 뒤의 랜덤 문자열이 임시비밀번호)
mysql -u root -p
// mysql 접속
alter user 'root'@'localhost' identified by 'Vlxjvoxm1!';
FLUSH PRIVILEGES;
// 비밀번호 변경
create user 'root'@'%' identified by 'Vlxjvoxm1!'
// 외부 접근 계정 생성
CREATE DATABASE samsungfire;
// 데이터베이스 생성
exit
// 빠져나오기
cd /usr/local/apache2.4/htdocs
vi mysql_conn.php
(입력)
<?php
$servername = "127.0.0.1"; // MySQL 서버 주소
$username = "root"; // MySQL 사용자 이름
$password = "Vlxjvoxm1!"; // MySQL 비밀번호
// MySQL 데이터베이스에 연결
$conn = new mysqli($servername, $username, $password);
// 연결 성공 여부 확인
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
후에 http://127.0.0.1/mysqlconn.php 접속해보기
vi /usr/local/apache2.4/conf/httpd.conf
(DocumentRoot 검색)
// DocumentRoot 경로에 public 추가
DocumentRoot "/usr/local/apache2.4/htdocs/public"
<Directory "/usr/local/apache2.4/htdocs/public">
// <Directory "/usr/local/apache2.4/htdocs/public"> 내부에 주석처리
#Options Indexes FollowSymLinks
// 수정
AllowOverride None => AllowOverride All
// (dir_module로 검색) index.php 추가 (순서중요.)
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
(esc) :wq
cd /usr/local/apache2.4/htdocs
cp .env.local .env
vi .env
(DB_CONNECTION 변경)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=samsungfire
DB_USERNAME=root
DB_PASSWORD=Vlxjvoxm1!
(esc) :wq
/usr/local/apache2.4/bin/httpd -k stop
/usr/local/apache2.4/bin/httpd -k start
chown -R daemon:daemon storage