[GCP]Nextcloud 설치를 위한 PHP, MariaDB 설치하기 + SSL 적용.

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 해보시면됩니다.

자물쇠가 나와있으면 정상

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

5 thoughts on “[GCP]Nextcloud 설치를 위한 PHP, MariaDB 설치하기 + SSL 적용.”

  1. nas 관련 질문 좀 하고 싶은데 카톡 상담 부탁드려도 될까요..?
    informal 친추 주시거나 오픈챗 알려주시면 대화드리겠습니다

  2. nas관련 질문좀 하고 싶은데요, 카톡상담 부탁드려도 될까요..?
    informal 친추 주시거나 오픈챗 알려주시면 대화드리겠습니다.

  3. vi /var/www/html/info.php
    위의 명령어를 입력했을때 아래와 같이 오류가 발생하는 이유를 알수 있을까요?
    root@nextcloud:~# vi /var/www/html/info.php
    bash: vi: command not found

    1. vi 문서 편집기 명령어가 없어서 그런거라 apt insatll vim 으로 문서 편집기 설치후에 vim 으로 하시면됩니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

홈서버 IT 커뮤니티 SVRFORUM
Link