Ubuntu에서 Nginx를 설치하고 가상호스팅을 설정하는 방법을 자세히 설명하겠습니다.
또한 PHP와 MariaDB를 연동하는 방법까지 포함하겠습니다.
1. Nginx 설치 #
- 패키지 목록 업데이트:
sudo apt update
- Nginx 설치:
sudo apt install nginx -y
- Nginx 서비스 시작:
sudo systemctl start nginx sudo systemctl enable nginx
- Nginx 상태 확인:
sudo systemctl status nginx
- UFW 방화벽 설정:
sudo ufw allow ssh sudo ufw allow http sudo ufw enable
2. MariaDB 설치 #
- MariaDB 설치:
sudo apt install mariadb-server -y
- MariaDB 보안 설정:
sudo mysql_secure_installation
- 프롬프트에 따라 root 비밀번호를 설정하고, 테스트 계정을 삭제하고, 원격 root 접속을 제한하는 등 보안 설정을 완료합니다.
- MariaDB 테스트:
sudo mysql -u root -p
- 로그인 후
select version();
쿼리를 실행하여 MariaDB가 정상적으로 작동하는지 확인합니다.
- 로그인 후
3. PHP 설치 #
- PHP-FPM 설치:
sudo apt install php-fpm php-mysql php-gd php-cli php-curl php-mbstring php-zip php-opcache -y
- PHP-FPM 서비스 시작:
sudo systemctl start php8.3-fpm sudo systemctl enable php8.3-fpm
- PHP-FPM 상태 확인:
sudo systemctl status php8.3-fpm
4. Nginx와 PHP-FPM 연동 #
- Nginx 설정 파일 수정:
sudo nano /etc/nginx/sites-available/default
- PHP 파일을 처리할 수 있도록 다음과 같이 수정합니다.
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; } location ~ /\.ht { deny all; } }
- PHP 파일을 처리할 수 있도록 다음과 같이 수정합니다.
- Nginx 설정 테스트:
sudo nginx -t
- Nginx 재시작:
sudo systemctl restart nginx
5. 가상호스팅 설정 #
- 가상호스팅 디렉토리 생성:
sudo mkdir -p /var/www/example.com
- 가상호스팅 설정 파일 작성:
sudo nano /etc/nginx/sites-available/example.com
- 다음 설정을 추가합니다:
server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.html index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; } }
- 다음 설정을 추가합니다:
- 가상호스팅 설정 파일 활성화:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
- Nginx 설정 테스트:
sudo nginx -t
- Nginx 재시작:
sudo systemctl restart nginx
- 가상호스팅 테스트:
/var/www/example.com
디렉토리에index.html
파일을 생성하고, 웹 브라우저에서http://example.com
을 방문하여 설정이 정상적으로 작동하는지 확인합니다.
6. PHP 테스트 #
- PHP 테스트 파일 생성:
sudo nano /var/www/example.com/index.php
- 다음 내용을 추가합니다:
<?php phpinfo(); ?>
- 다음 내용을 추가합니다:
- 웹 브라우저에서 테스트:
http://example.com/index.php
를 방문하여 PHP가 정상적으로 작동하는지 확인합니다.
이렇게 하면 Ubuntu에서 Nginx를 설치하고 가상호스팅을 설정하며, PHP와 MariaDB를 연동하는 작업을 완료할 수 있습니다.