Google Cloud Platform을 이용한 NAS 시스템 구축 의 여덟번째 글입니다.
앞서 작성했던 글들에서 docker를 통한 nextcloud까지 구축은 완료했지만.. docker의 문제인지.. 속도가 꽤 느리고 불안하다고 판단되어 그냥 기본서버에 Nginx + PHP-FPM + MariaDB를 올려서 nextcloud를 구축하려고합니다.
크게 어려운점은 없기때문에 바로 진행하겠습니다.
진행 순서는 php-fpm 설치 , Maria DB 설치, php 연동확인, SSL인증서 설치, SSL 인증서 확인입니다.
PHP-FPM 설치하기
Nextcloud의 경우 php 기반이기 때문에 php 해석이 가능한 php관련 툴들이 설치되어야 합니다.
php의 경우 7.4버전까지 나왔지만 기본 apt repo에 있는 7.2버전으로 설치하도록 하겠습니다.
apt install -y php7.2-fpm php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring php7.2-intl php-imagick php7.2-xml php7.2-zip
설치하다보면 지역,도시를 고르라고하는데 타임존 설정이기때문에 Asis/Seoul 해주면됩니다.
설치 후 아래 명령어로 재부팅시 동작 + 실행을 시켜줍니다.systemctl enable php7.2-fpm
systemctl start php7.2-fpm
MariaDB 설치하기
마리아디비도 apt 레포에있는 버전인 10.1버전으로 설치하도록하겠습니다.
최신버전 설치의경우 블로그 내의 다른 글들을 참고 부탁드립니다.
apt install mariadb-server
설치 후 아래 명령어로 재부팅시 동작 + 실행을 시켜줍니다.systemctl enable mariadb
systemctl start mariadb
PHP 동작 확인하기
동작확인을 위해서는 php파일 생성하나가 필요합니다.
겸사겸사 web root 폴더도 생성하도록 하겠습니다.
mkdir -p /var/www/html
vi /var/www/html/info.php
내용은 아래 내용을 복사 붙여넣기 해주세요.
<?php
phpinfo();
?>
그리고 nginx default 파일도 변경이 필요합니다.
server {
listen 80 ;
listen [::]:80 ;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
access_log /var/log/nginx/web.access.log main;
error_log /var/log/nginx/web.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_cache off;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include mime.types;
}
location ~ /\.ht {
deny all;
}
}
이렇게 했을때 혹시 페이지가 안뜬다면
위 글을 참고해서 바꿔주세요.
domain/info.php 접속시 아래와같이 나와야합니다.
SSL 인증서 발급
사용도메인을 http로 보안없이사용할 수는 없기때문에 https 적용을 해주도록 하겠습니다.
위글을 보고 진행하시되 인증서 발급 및 암호키까지만 받고 다시 이쪽으로 와주시면됩니다.
nginx 설정수정
이부분도 그냥 default.conf를 삭제하고 아래 코드를 복붙하시는걸 추천합니다.
위 설정까지 함께 적용한 코드입니다. 코드에서 [도메인] 부분만자신의 도메인으로 변경하면 됩니다.
ex) [도메인] -> dalso.duckdns.org
rm -rf /etc/nginx/conf.d/default.conf
vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name [도메인];
location / {
return 301 https://[도메인]$request_uri; ## HTTPS로 리다이렉팅
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ /\.ht {
deny all;
}
}
server {
listen 443 ssl http2;
listen [::]:443 http2;
server_name [도메인];
root /var/www/html;
#ssl on;
ssl_certificate /etc/letsencrypt/live/[도메인]/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/[도메인]/privkey.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 1440m;
ssl_buffer_size 8k;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CB
C3-SHA +SHA !aNULL !eNULL !LOW !kECDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED';
ssl_prefer_server_ciphers on;
ssl_trusted_certificate /etc/letsencrypt/live/[도메인]/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;
access_log /var/log/nginx/web.access.log main;
error_log /var/log/nginx/web.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_cache off;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include mime.types;
}
location ~ /\.ht {
deny all;
}
}
그리고 service nginx restart
https://도메인/info.php 해보시면됩니다.
nas 관련 질문 좀 하고 싶은데 카톡 상담 부탁드려도 될까요..?
informal 친추 주시거나 오픈챗 알려주시면 대화드리겠습니다
https://open.kakao.com/o/sZbvQWxc 오픈채팅방입니다~
nas관련 질문좀 하고 싶은데요, 카톡상담 부탁드려도 될까요..?
informal 친추 주시거나 오픈챗 알려주시면 대화드리겠습니다.
vi /var/www/html/info.php
위의 명령어를 입력했을때 아래와 같이 오류가 발생하는 이유를 알수 있을까요?
root@nextcloud:~# vi /var/www/html/info.php
bash: vi: command not found
vi 문서 편집기 명령어가 없어서 그런거라 apt insatll vim 으로 문서 편집기 설치후에 vim 으로 하시면됩니다!