๐ ์์
๐ ๋คํธ์ํฌ
๋คํธ์ํฌ๋ Net + Work ์ ํฉ์ฑ์ด๋ก์จ ์ปดํจํฐ๋ค์ด ํต์ ๊ธฐ์ ์ ์ด์ฉํ์ฌ ๊ทธ๋ฌผ๋ง์ฒ๋ผ ์ฐ๊ฒฐ๋ ํต์ ์ด์ฉ ํํ๋ฅผ ์๋ฏธํ๋ค. ์ข๋ ์ฝ๊ฒ ๋งํ์๋ฉด "๋ ๋ ์ด์์ ์ปดํจํฐ๋ค์ ์ฐ๊ฒฐํ๊ณ ์๋ก ํต์ (์ด์ผ๊ธฐ)ํ ์ ์๋ ๊ฒ"
๐ IP ์ฃผ์
- ๊ฐ๊ฒ์ ๊ฐ๋ ค๋ฉด ์ฃผ์๋ฅผ ์์์ผํ๋ ๊ฒ์ฒ๋ผ ์๋ฒ์ ์ฃผ์๋ฅผ ์์์ผ ํ๋ค.
- IP ์ฃผ์(์ซ์) & ๋๋ฉ์ธ ์ฃผ์(WWW.~~)
- IP ์ฃผ์๋ง์ ์ฌ์ฉํ์ง ์๊ณ ๋๋ฉ์ธ ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ์ง๊ด์ ์ด๊ณ ์ธ๊ฐ ์นํ์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋๋ฉ์ธ ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด IP ์ฃผ์๋ก ๋งคํํ๋ ์์ ์ด ํ์ํ๋ค. ์ด ์์ ์ DNS ์๋ฒ๊ฐ ๋งก๋๋ค.(Domain Name Server)
- ํฌํธ : ์๋ฒ ์ ๊ทผ ์ ๋ฌธ์ ํตํด ํต๊ณผํ๋ค(127.0.0.1:8080์์ 8080์ด port, ๋ฌธ์ ๋ฒํธ)
- ํฌ๊ฒ ๊ณ ๊ฐ ์ ์ฉ ๋ฌธ(์ฃผ๋ฌธ, ์์ฌ) & ์ง์ ์ ์ฉ ๋ฌธ(๊ด๋ฆฌ) ์ธ ๊ฒ๊ณผ ๊ฐ์ด ๋ค์ด์ค๋ ๋ฌธ์ ๋ฐ๋ผ์ ํ๋ ์ผ์ด ์ ํด์ ธ ์๋ค.
- ํ๋กํ ์ฝ : ์ธํฐ๋ท ์์์๋ ํต์ ๋ฐฉ์์ ์ ํด๋ ๊ฒ ์๋ค. (์ฃผ๋ฌธ ๋ฐฉ์์ ํค์ค์คํฌ, ์ ์, ์ฌ์ด๋ ์ค๋ ๋ฑ์ผ๋ก ํน์ ์ง๋ ๊ฒ์ฒ๋ผ)
- → ์ด๋ค ํฌํธ๋ก ๋ค์ด์ค๋๋์ ๋ฐ๋ผ ํ๋ ์ฃผ์ฒด์ ํ๋์ด ๊ฒฐ์ ๋๊ณ , ํ๋ ๋ฐฉ์ ํ๋กํ ์ฝ์ด ๊ฒฐ์ ์ด ๋๋ค.
- ๊ด๋ก์ ์ผ๋ก port์ protocol์ ๋งคํ๋์ด ์์(80 port๋ http, 443 port๋ https, 22 port๋ ssh ๋๋ sftp, 21 port๋ ftp, 3306 port๋ mysql/aws)
- httpd mysqld์์ d๊ฐ daemon
- ์ธ๋ฐ์ด๋ ๊ท์น, ์์๋ฐ์ด๋ ๊ท์น
- URI : uniform resource identier URL(Locator-์์น, ๊ฒฝ๋ก) & URN(Name-์ด๋ฆ)
๐ํฌํธํฌ์๋ฉ
- ๊ณต์ ๊ธฐ ์ : private IP / ๋ฐ : public IP
- ๋ฐ์์ ๋ณผ ๋๋ public IP๋ฐ์ ๋ณด์ด์ง ์์.
- ๋ด๋ถ ip ์ฃผ์ ํ์ธ ๋ช ๋ น์ด ํฐ๋ฏธ๋์์ ์ ๋ ฅํ๋ฉด ์ ์ ์์.
๐ ํด๋ผ์ฐ๋
- ์๋ฒ๋ ๊ฒ์ 24์๊ฐ ์ผ์ ธ ์์ด์ผ ํ๋ค. ํ๋์จ์ด์ ์ธ ๊ณ ๋ฏผ๋ณด๋ค ์ํํธ์จ์ด ์ ์ธ ๊ฒ๋ง ๊ด๋ฆฌํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ํด๋ผ์ฐ๋ ์๋น์ค์ด๋ค.
- ๋ํ : aws
๐ URL
- ํ๋กํ ์ฝ://์๋ธ๋๋ฉ์ธ.์๋ฒ์ฃผ์(IP, ๋๋ฉ์ธ):ํฌํธ๋ฒํธ/๊ฒฝ๋ก
- redirection(ํ๋กํ ์ฝ ์๋ ๋ณ๊ฒฝ, ๋๋ฉ์ธ ์ฃผ์ ๋ณ๊ฒฝ, ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ ํ ๋ฑ)
- ์ฟผ๋ฆฌ์คํธ๋ง(ํ๋ผ๋ฏธํฐ) : ์ฃผ์์ฐฝ์ ?๋ = ํํฐ๋ง ์กฐ๊ฑด
๐ ๊ณผ์ 1. Local ์๋ฒ ๊ตฌ์ถ / Window/MacOS + Apache PHP MySQL (Bitnami) - ์ธ๋ถ์์ ์ ์ํ๊ธฐ: phpinfo ๋์ฐ๊ธฐ (by ํฌํธํฌ์๋ฉ)
๐ Bitnami ์ค์น
๐ ์ธ๋ถ IP ์ฃผ์ ํ์ธ
๋์ผํ ๋คํธ์ํฌ(WIFI)๋ฅผ ์ฌ์ฉํ๊ณ ์์ด ์ธ๋ถ IP๋ ๋์ผํ๋ค.
๐ ๋ด๋ถ IP ์ฃผ์ ํ์ธ (ipconfig ๋ช ๋ น์ด๋ก ํ์ธ ๊ฐ๋ฅ)
๐ ํฌํธํฌ์๋ฉ
SK ๊ณต์ ๊ธฐ ์ฃผ์ 192.168.35.1 / ๊ณผ์ ์์ ์ฒจ๋ถ X
๐ ๊ณผ์ 2. AWS ์๋ฒ ๊ตฌ์ถ / Linux + Nginx PHP MySQL
๐ AWS ์ธ์คํด์ค ์์ฑ
๐ WinSCP ๋ค์ด๋ก๋
WinSCP๋ ๋ง์ดํฌ๋ก์ํํธ ์๋์ฐ์ฉ์ผ๋ก ๊ฐ๋ฐ๋ ์์ -์คํ ์์ค ์ํํธ์จ์ด์ด๊ณ , SFTP, SCP ๋ฐ FTP ํด๋ผ์ด์ธํธ์ด๋ค. ์ฃผ์ ๊ธฐ๋ฅ์ ๋ก์ปฌ ๋ฐ ์๊ฒฉ ์ปดํจํฐ ๊ฐ ๋ณด์ ํ์ผ ์ ์ก์ด๋ค.
SFTP๋ฅผ ์ด์ฉํ์ฌ ์์ฑํ ์ธ์คํด์ค์ ์ ๊ทผ
๐ PuTTY ์ค์น
๐จ putty์์ ์ด๊ธฐ ์คํ์ด ์๋๋ค๋ฉด Putty ๊ฒฝ๋ก ์ค์ ๋๋ ์ค์น ์์ฒด๊ฐ ์๋์ด ์๋ ๊ฒฝ์ฐ
๐ก ์ฐธ๊ณ ์ฌ์ดํธ
- putty์์ ngnix, php, mysql ์ค์น
sudo apt update
sudo apt install nginx
sudo apt install mysql-server
sudo apt install php-fpm php-mysql
cd /var/www/html
sudo vi index.php
<?php
phpinfo();
?>
sudo vi /etc/nginx/sites-available/default
# php ๋ถ๋ถ ์ฃผ์ ํด์
# php ๋ฒ์ ์ค์ ๋ณธ์ธ์ ๊ฒฝ์ฐ php7.4 -> php8.1
sudo service nginx restart
๐ ์ธ๋ฐ์ด๋ ๊ท์น ์์
๐ mysql user ์์ฑ
์ฐธ๊ณ ์ฌ์ดํธ : https://nickjoit.tistory.com/144
๐ MySQL ์ธ๋ถ์์ ์ ์ํ๊ธฐ - DataGrip ์ด์ฉ
๐ phpMyAdmin ์ค์น
์ฐธ๊ณ ์ฌ์ดํธ: https://velog.io/@vector13/AWS์-์ด์ฉํ-์๋ฒ-๊ตฌ์ถ-LinuxNginxPhpMysql
sudo apt update
sudo apt install phpmyadmin
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
sudo vi /etc/nginx/sites-available/default
# index.php ์ถ๊ฐ
sudo service nginx restart
๐ Domain ์ ์ฉ
์ฐธ๊ณ ์ฌ์ดํธ : https://mslilsunshine.tistory.com/163
๐ HTTPS ์ ์ฉ
sudo apt update
sudo apt install snapd
sudo snap install hello-world
sudo snap install --classic certbot
# ์ธ์ฆ์ ๋ฐ๊ธ
sudo certbot --nginx -d tulipa-dev.shop
# Successfully received certificate.
# Certificate is saved at: /etc/letsencrypt/live/tulipa-dev.shop/fullchain.pem
# Key is saved at: /etc/letsencrypt/live/tulipa-dev.shop/privkey.pem
# Successfully deployed certificate for tulipa-dev.shop to /etc/nginx/sites-enabled/default
# Congratulations! You have successfully enabled HTTPS on <https://tulipa-dev.shop>
๐ ์๋ธ๋๋ฉ์ธ
cd /var/www/html
sudo mkdir dev #์๋ธ๋๋ฉ์ธ ๋ช
์ผ๋ก ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
sudo mkdir prod
cd dev
sudo touch main.html
sudo vi main.html #๋ฉ์ธ ํ์ด์ง๋ฅผ ํ๋ ๋ง๋ค์ด๋๋ค.
cd prod
sudo touch main.html
sudo vi main.html
sudo vi /etc/nginx/sites-available/default
# ์๋์ ์ฝ๋ ์ถ๊ฐ
server{
root /var/www/html/dev;
index main.html;
server_name dev.tulipa-dev.shop;
location \\ {
try_files $uri/ =404;
}
location ~ \\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}
server{
root /var/www/html/prod;
index main.html;
server_name prod.tulipa-dev.shop;
location \\ {
try_files $uri/ =404;
}
location ~ \\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}
sudo service nginx restart
๐ ๋ฆฌ๋ค์ด๋ ์
sudo vi /etc/nginx/sites-available/default
# ์๋์ ์ฝ๋ ์ถ๊ฐ
server{
listen 80;
server_name 52.79.166.30;
return 301 https://www.tulipa-dev.shop$request_uri;
}
sudo service nginx restart
๐ ๊ณผ์ 3. Sub Domain์ ๋๋ง์ ํ์ด์ง ๋ง๋ค๊ธฐ
๐จ ๋ก์ปฌ์์ WinSCP๋ฃจํธ ๋๋ ํฐ๋ฆฌ๋ก ํ์ผ ์ ์ก ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ(๊ถํ ๋ฌธ์ )
๐ก ์ฐธ๊ณ ์ฌ์ดํธ : https://velog.io/@leesomyoung/WinSCP-Permission-denied-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0
sudo vi /etc/nginx/sites-available/default
# index.html ์ถ๊ฐ