sudo passwd root
sudo(루트권한이용)하여 비밀번호 초기 설정을 한다.
sudo vi /etc/ssh/sshd_config
sshd_config를 vi(편집)하여 PermitRootLogin prohibit-password 의 주석을 풀고 값을 yes로 바꿔 root 접속을 허용한다
sudo cp /home/ec2-user/.ssh/authorized_keys /root/.ssh
루트로 비밀번호 없이 접속하기 위해 authorized_keys(접속 키)를 /root/.ssh에 cp(복사)한다.
sudo systemctl restart sshd
sshd의 설정 적용을 위해 service(시스템 서비스 조작)로 재시작한다.
루트로 로그인 할 수 있다.
sudo vi /etc/selinux/config
서버 초기 세팅을 원활하고 효율적으로 하기 위해
selinux(보안강화리눅스) 설정에서 SELINUX를 disable로 변경한다.
sudo reboot
서버를 재시작해 selinux의 변경을 적용한다.
yum -y update
yum(내장 설치,삭제)로 모든 패키지를 -y(최신) 업데이트를 한다.
yum -y install httpd
httpd(Hypertext Transfer Protocol Daemon, 아파치)를 설치한다.
systemctl enable httpd.service
systemctl(service와 같음)으로 enable 설정해 서버 부팅시 아파치 자동 시작되게 한다.
systemctl start httpd
아파치 서버 시작
yum repolist
외부에서 설치 진행하려고 yum repository 리스트 확인
vi /etc/yum.repos.d/MariaDB.repo
repo파일을 yum.repos.d(repository)에서 받아와서 vi(편집)
[mariadb]
name = MariaDB
baseurl = https://rpm.mariadb.org/10.6/rhel/$releasever/$basearch
gpgkey= https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
repo 파일안에 집어넣는다.
4. yum install wget -y
웹 서버로부터 컨텐츠를 가져오기위해 wget 인스톨
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
wget(네트워크 상에서 데이터를 다운로드) 으로 마리아db 셋업을 설치함
chmod +x mariadb_repo_setup
wget 으로 가져왔을때 r(읽기),w(쓰기) 권한만 있기때문에 chmod(파일의 모드변경) +x (실행(x) 권한 부여)을 한다.
./mariadb_repo_setup
설치한 셋업파일로 셋업을 한다.
yum install epel-release.noarch -y
epel-release.noarch(특정 패키지 설치를 위해 필요함) 설치한다.
yum install mariadb mariadb-server -y
mariadb, mariadb-server 를 설치한다.
rpm -qa | grep MariaDB
마리아 db에 관한 정보를 모아 확인
systemctl start mariadb
, systemctl enable mariadb
, systemctl status mariadb
마리아 DB를 실행하고, 시작프로그램으로 설정하고, 상태를 확인한다.
/usr/bin/mariadb-admin -u root password '비밀번호'
마리아DB의 비밀번호를 설정한다.
netstat -anp | grep 3306
3306 포트 정보를 확인한다.
mysql -u root -p
마리아DB 접속하기
show databases;
데이터베이스 리스트 확인
서버 방화벽에 3306 포트를 열어준다.
create user '유저네임'@'%' identified by '비밀번호';
@(어디에), '%'(외부에서), 'localhost'(내부에서)
grant all privileges on *.* to '유저네임'@'%' with grant option;
grant all privileges(모든권한부여)
on *.*(모든 DB.모든 테이블)
to '유저네임'@'%'(유저네임에게 외부에서의 접속 권한을)
with grant option(권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로 부여할 수 있게 된다.)
;
timedatectl
timedatectl set-timezone Asia/Seoul
dnf update -y
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf module reset php
dnf module enable php:remi-7.4 -y
dnf install php php-cli php-common php-fpm php-gd php-imap php-ldap php-mbstring php-mysqlnd php-odbc php-opcache php-pdo php-pdo-dblib php-pear php-pecl-imagick php-pgsql php-process php-snmp php-soap php-tidy php-xml php-bcmath -y
php 라이브러리들을 dnf한다
5-1. yum install php php-cli php-common
systemctl restart httpd
Route 53 > Hosted zones 에서 hosted zone을 만든다.
AWS Certificate Manager > Certificates 에서 SSL 발급을 원하는 도메인명을 입력한다.
Route 53 > Hosted zones > 도메인 에서 Create record 로 SSL 을 붙인다.
로드 프로토콜 HTTPS 를 받으면 인스턴스 프로토콜 80포트로 취급한다.
documentRoot에 ping 파일 생성해서 Health Check 를 연결한다.
/etc/httpd/conf/httpd.conf
에서 <Directory "/var/www/html">
의 AllowOverride
를 ALL
로 바꾼다.
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
DocumentRoot "/hi"
ServerName hi.jesang0.com
<Directory "/hi">
SetEnvIf Origin "https?://(hi\.)?(jesang0.com)$" AccessControlAllowOrigin=$0
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost> ```
를 붙여놓고 서버에 맞춰 변경한다.