๐Goal : AWS EC2 ์ธ์คํด์ค์ ๋ฆฌ๋ ์ค ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ , Nginx, PHP, MySQL๋ฑ์ ์ค์นํด ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๋ค. ๋ง์ง๋ง์ผ๋ก ์ธ๋ถ์์ ์๋ฒ์ ์๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์๊น์ง ์๋ฃํด๋ณด์.
1. AWS EC2 ๋ฆฌ๋ ์ค ์ธ์คํด์ค ์์ฑ
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance
: EC2 ์ธ์คํด์ค ์์ฑ์ ๋งค์ฐ ์ฝ๋ค. ์ฝ์์ ์ค์ ์ ์ญ ๋ฐ๋ผ๊ฐ๋ฉด ์ธ์คํด์ค๊ฐ ๋ง๋ค์ด์ง๋ค. ์ด๋ฒ์๋ free tier ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด Ubuntu 20.04 ๋ฒ์ ์ ์ค์นํ๊ณ , ์ฉ๋ 30GB ์ค์ ์ ๋๋ง ํ๊ณ ๋๋จธ์ง๋ ๊ธฐ๋ณธ ์ค์ ์ ๋ฐ๋๋ค.
- ๋ง์ง๋ง ๊ณผ์ ์์ SSH๋ฅผ ํ์ฑํ ์์ผ ์๊ฒฉ์ผ๋ก ์ปดํจํฐ์ ์ ์ํ ์ ์๋๋ก ํ์๋ค.
2. ์ธ๋ถ์์ AWS ์๋ฒ ์ ์
https://winscp.net/eng/download.php
: WinSCP๋ windows์ฉ ๋ฌด๋ฃ SFTP/FTP ํด๋ผ์ด์ธํธ์ด๋ค. SFTP๋ ํ์ผ์ ์๋ฒ์ ์ /๋ค์ด๋ก๋ ํ ์ ์๋ FTP์ ํํ๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ๊ทธ ์์์ SSH๋ฅผ ์ด์ฉํด ์ฐ๊ฒฐ์ ํ์ฌ ํจ์ฌ ๋ณด์ ๋ฉด์์ ์์ ํ๋ฉฐ, ์ถ๊ฐ ๊ธฐ๋ฅ์ ๊ถํ ์์ , ์์ฑ ์กฐ์ ๋ฑ์ ๋ ๋ง์ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์๋ค.
+) ์ฌ๊ธฐ์ AWS private ip๋ AWS ๋ด๋ถ ์๋ฒ๋ผ๋ฆฌ ํต์ ํ๋ ip์ด๋ฏ๋ก, ์ธ๋ถ ์ ์์ ์ํด์๋ public ip๋ฅผ ์ฌ์ฉํ๋ค.
3. Nginx, PHP, MySQL ์ค์น
โฌ๏ธํ๋จ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ค์น๋ฅผ ์งํํ์๋ค.
1) Nginx ์ค์น
sudo apt-get update
sudo apt-get install nginx
: Nginx ๋ฅผ ์ค์นํ ์ดํ์ AWS ์ธ๋ฐ์ด๋ ๊ท์น์ ์ค์ ํด์ค์ผ Nginx ์๋ฒ์ ์ ๊ทผํ ์ ์๋ค.
2) MySQL ์ค์น ๋ฐ ์ค์
sudo apt-get install mysql-server
#mysql ๋ณด์ ์ค์ - ์ ๋ถ y๋ก ํ๊ณ , ๋น๋ฐ๋ฒํธ๋ง ๋ฐ๋ก ์ค์ ํด์ฃผ์.
sudo mysql_secure_installation
#๋ก๊ทธ์ธ ์
sudo mysql -u root -p
3)PHP ์ค์น ๋ฐ ์ค์
sudo apt-get install php-fpm php-mysql #php-fpm์ nginx-php ์ฐ๋์ ํ์ํ ๋๊ตฌ์ด๋ค.
๐ Apache/Nginx PHP ์ฐ๋ ์ ์ฐจ์ด์
: Apache๋ php์ ์ฐ๋์ํค๋ ๋ชจ๋์ config๋ฅผ ํตํด ์๋์ผ๋ก ์ค์ ํด์ฃผ๋ ๋ชจ๋์ด ๋ด๋ถ์ ์์ง๋ง, nginx ์์๋ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ก ์ค์นํ๊ณ , Nginx configuration์์ ์ค์ ์ ์๋์ผ๋ก ํด์ค์ผ ํ๋ค.
- Nginx Configuration ํ์ผ ์ค์
sudo nano /etc/nginx/sites-avaliable/default
1) 56,57,60 ๋ฒ์งธ ์ฃผ์ ํด์ . 63๋ฒ์งธ ์ค { ์ฃผ์๋ ํด์
2) fastcgi_pass์ php ๋ฒ์ ์ ์์ ์ด ์ค์น๋์ด์๋ ๋ฒ์ ์ ๋ง๊ฒ ์์ ํด์ค๋ค.
- Nginx ๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ์ php ํ์ผ ์ถ๊ฐ
cd /var/www/html
sudo vim index.php
<?php
phpinfo();
?>
- ์๋ฒ ์ฌ์์
sudo service nginx restart
โ์๋ฌ ๋ฐ์
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
systemctl status nginx.service
4. MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ถ์ ์
- MySQL ์ฌ์ฉ์ ์์ฑ
: ์ธ๋ถ์์์ ์๊ฒฉ์ ์์ด๋ฏ๋ก root๋ณด๋ค๋ ์ฌ์ฉ์๋ฅผ ํ๋ ๋ง๋ค์ด์ ์ ๊ทผํ๋๊ฒ ํจ์ฌ ์์ ํ๋ค.
sudo mysql -u root -p
mysql > show databases;
mysql > use mysql;
mysql > select user, host from user;
mysql > create user '์ค์ ํ ์ด๋ฆ'@'%' identified by '๋น๋ฐ๋ฒํธ'; #์ธ๋ถ์์ ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ์์ฑ
mysql > flush privileges;
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ถํ ๋ถ์ฌ
mysql > grant all privileges on *.* to '์ฌ์ฉ์'@'%' with grant option; # MySQL 8 ๋ฒ์ ์ปค๋งจ๋
mysql > flush privileges;
- ์ธ๋ถ ์ ์์ ์ํ ์ค์ ํ์ผ ์์
cd /etc/mysql/mysql.conf.d
sudo vim mysqld.cnf
: bind-address / mysqlx-bind-address ๋ฅผ 0.0.0.0์ผ๋ก ์ค์ ํด์ค๋ค.
sudo service mysql restart #์ ์ฉ์ ์ํด ์ฌ์์
- aws ์ธ๋ฐ์ด๋ ๊ท์น ์์
- MySQL workbench์์ ์ธ๋ถ ์ ์
: Hostname์ ์๋ฒ์ IP๋ฅผ ์ ๋ ฅํ๊ณ , ์๊น ๋ฐ๋ก ์ธ๋ถ์ ์์ ์ํด ์์ฑํ๋ ์ฌ์ฉ์๋ช ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํด์ค๋ค.
5. phpMyAdmin ์ค์น
sudo apt update
sudo apt-get install phpmyadmin
#nginx ์น ์๋ฒ๊ฐ phpmyadmin ํ์ผ์ ์ฐพ์ ์ ์๋๋ก Nginx ๋ฌธ์ root dir๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
sudo ln -s /usr/share/phpmyadmin /var/www/html/pma_hidden
๐ ์ฐธ๊ณ ์๋ฃ
https://nhj12311.tistory.com/76
'Web > Server' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
REST API, ์๊ณ ์ฌ์ฉํ์! (0) | 2022.03.02 |
---|---|
AWS EC2 ์๋ฒ์ ๋๋ฉ์ธ/HTTPS/Redirection ์ ์ฉ (0) | 2022.02.17 |
Bitnami๋ก ๋ก์ปฌ ์๋ฒ ๊ตฌ์ถ/ํฌํธํฌ์๋ฉ์ ํตํ ์ธ๋ถ ์ ์ (0) | 2022.02.14 |
Ubuntu๊ฐ ๊ฒ์ ์ปค์์์ ๋ถํ ๋์ง ์๋ ์ค๋ฅ (10) | 2022.02.11 |
VMware์ ๋ฆฌ๋ ์ค ์๋ฒํ๊ฒฝ ๊ตฌ์ถ+ APM ์๋ ์ค์น (0) | 2022.02.09 |