Ubuntu 18.04 amd-64 server
우선 AWS에서 인스턴스 하나 생성해준다. 나는 Ubuntu 18.04로 선택했고, 모두 기본 설정대로 진행하였다. 이제 보안 그룹에서 인바운드 규칙을 아래와 같이 설정해주면 된다.
80은 http, 443은 https, 3306은 mysql의 포트다. 22는 ssh의 포트로 원격 제어를 위한 프로토콜이다.
원격 파일 전송을 위한 SFTP, SCP, FTP 클라이언트 프로그램
내 로컬 컴퓨터에서 원격지의 호스트 컴퓨터로 파일을 전송하는
설치는 쉽다. 아래 코드를 입력하면 된다.
sudo apt update
sudo apt install nginx
sudo apt install mysql-server
sudo apt install php-fpm php-mysql
NginX는 Apache와 다르게 php모듈이 포함되어 있지 않기 때문에 php-fpm
을 설치해줘야 한다. php-fpm
에 관한 자세한 내용은 https://velog.io/@du0928/PHP-fpm 을 참고하면 좋을 것 같다.
NginX설치가 정상적으로 되었다면 웹브라우저에 서버의 퍼블릭 IP주소를 입력할 경우 아래와 같은 화면이 뜰 것이다.
아래 코드를 입력해 로그인을 해본다. root 계정의 초기 비밀번호는 본인이 설정하지 않았다면 그냥 Enter키를 치면 된다.
$ mysql -u root -p
✅ Access denied for user 'root@'localhost' 오류가 난다면?
authentication plugin이 auth_socket
으로 설정되어 있기 때문일 것이다. 아래를 따라하면 해결된다.
$ sudo mysql
> SELECT user, plugin, host FROM mysql.user;
예상대로 plugin
이 auth_socket
이라고 뜬다면, 아래와 같이 변경해주면서 패스워드도 새로 만들어주면 된다.
> update user set plugin='mysql_native_password' where user='root';
> FLUSH PRIVILEGES;
NginX의 기본 경로인 /var/www/html/
에다가 index.php파일을 만들어 넣자.
sudo vi index.php
그리고 파일에 아래 내용을 저장하자.
<?php phpinfo(); ?>
nginx와 연동도 해줘야 한다. sites-available/default
파일을 열어보자.
sudo vi /etc/nginx/sites-available/default
파일에서 아래로 내리다보면 #pass PHP scripts to FastCGI server
라는 주석이 적힌 곳이 있다. 그 아래에 주석처리된 블록을 아래와 같이 해제하자.
location ~/.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
마지막 줄은 본인의 서버 버전이 사용하는 php 버전에 맞게 수정해줘야 한다. Ubuntu 18.04는 php7.2를 사용하므로 원래 php7.0-fpm.sock
라 적혀있던 것을 아래와 같이 수정해줬다.
이제 웹브라우저 주소창에 퍼블릭IP주소/index.php
를 입력해서 아래 같은 페이지가 뜨면 성공이다.