이 글의 실험 기기는 라즈베리파이 (Lasbian : Debian) 이지만, 라즈베리파이의 운영체제인 Lasbian이 Debian 계열이고, Debian 계열에는 Ubuntu도 포함되어 있으니 사실상 아주 많은 운영체제에서 구축할 수 있다.
제일 먼저 패키지 목록을 갱신한다.
sudo apt-get update
최신버전 패치
sudo apt-get upgrade
1. nginx 설치
터미널을 켜서 하단 코드를 실행하자.
sudo apt-get install nginx
서버 시작
sudo /etc/init.d/nginx start
이렇게 한 뒤에 라즈베리파이 안에 내장된 웹 브라우저 (Chromium) 로 루프백 주소인 localhost(127.0.0.1) 로 진입하거나 포트포워딩 주소로 방문하면
이런 화면이 뜨는데, 이렇게 될 경우 성공이다.
nginx 설치는 너무 쉽기 때문에 관리자가 Apache를 따로 다운받아 80번 포트에 적용시켰다든지 하는 불필요한 행동을 하지 않았다면 실패할 가능성이 매우 낮다.
2. PHP
apt-get 패키지 리스트의 php를 다운받으면 apache2까지 설치되는데, 이러면 apache2만 따로 지우는것도 귀찮고 번거롭다.
그러니 php가 아닌 php-fpm을 다운받아 최신 버전인 php7.2까지 패키징할 수 있도록 하자.
sudo apt-get install php-fpm
cd /etc/nginx
sudo nano sites-enabled/default
서버 블록 안에서
index index.html index.htm;
이 라인을 찾아 다음과 같이 바꾼다.
index index.php index.html index.htm;
밑에 있는 코드는 원래 모두 주석처리 되어있는데, 이를 풀어주고 안에 녹색 코드를 넣는다.
단, 굵게 표시되어 있는 부분은 다운받아진 php의 버전을 넣어야 한다.
php의 버전을 확인하는 방법은 매우 다양하지만, 제일 간단하게 콘솔창에
sudo service --status-all
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
nginx 재시작
sudo service nginx reload
마지막으로 /var/www/html 폴더에 index.php 파일을 생성한 후, 로컬호스트로 들어가 확인한다.
데이터베이스는 분리하는게 좋지만 소규모이거나 연습용일 경우에는 같은 VM에 있는 것이 아무래도 더 편하다. 그래서 필자는 원래 패키징할 계획이 없었지만 글의 유연함을 위해 쓴다.
- mysql 설치
먼저 버전을 확인한다. 아무거나 설치해도 상관없다. 여기서는 5.7을 설치할 것이다.
sudo apt-cache search mysql-server
sudo apt-get install mysql-server-5.7
중간에 비밀번호를 설정하라는 화면이 나오는데, 비밀번호 확인란까지 적어야하니 주의
mysql 시작
sudo service mysql start
mysql -u root -p