synology | nginx + php70 + mariadb + wordpress

시놀로지를 처음 이용해 보았습니다.
워드프레스 홈페이지를 올리려고 했는데, 기본으로 제공되는 패키지를 통해서 설치를 진행 할 수 있습니다.

기본 패키지는 php 5.3 으로 설치 됨.

그래서, php70 으로 판올림하는 작업을 해서 설치하려고 합니다. php72로 설치하는 방법도 아래와 같은 방법으로 설치하면 될 것 같습니다. (추측’)

아래의 설치방법은 최대한 심플하고 간단하게 설치를 진행하려고 합니다.

준비

설치할 계정에 관리자 권한이 있어야 합니다.

SSH 접속환경

[제어판]에서 [고급모드]를 통해서 SSH 설정을 진행할 수 있습니다.
터미널 및 SNMP 메뉴를 클릭해서 SSH 서비스 활성을 통해 설정을 완료할 수 있습니다.

Imgur

Imgur

이제 아래 작업으로 진행해 주세요.

설치

대부분의 설치는 패키지 설치를 통해서 설치를 합니다. 아래와 같은 사항을 설치합니다.

  1. mariaDB 10
  2. php70
  3. php53 (phpMyAdmin 설치를 위한 필수)
  4. phpMyAdmin
  5. webstation
  6. 워드프레스 한글판 다운로드

mariaDB 10

설치할 때 root계정을 잘 메모 해 놓습니다. 나중에 phpMyAdmin에 접속 할 때 필요합니다.

php70

php70 기반으로 php70을 설치하기 위해서 필요합니다.

설치하고 난 뒤에 설정을 잡아야 사요할 수 있다.
아래 세팅 과정에서 다시 설명하겠습니다.

php53

시놀로지가 php53기반으로 돌아가는 패키지들이 있습니다.

phpMyAdmin

mariaDB 10을 웹을 통해서 접속하기 위해서 필요합니다.
외부에서 직접 서버로 접속하는 것은 보안에 위험이 있습니다. 또한, 접속하는 방법도 번거롭습니다.
반드시 설치를 진행하는 것이 좋습니다.

wordpress DB 및 계정 추가

wordpress 계정을 생성 해 준다

같은 네트워크단에서 설치를 진행할 경우 localhost권한만으로 가능하다.
But, 권한을 % 권한으로 전역 설정을 해 줘야 wordpress 설치가 외부에서 할 수 있다.

webstation

가상 호스팅기능을 사용하기 위해서 필요 합니다.
만약 여러개의 사이트를 운영하게 된다면 가상 호스팅을 통해서 진행하면 폴더관리 더 유연하게 할 수 있습니다.

설치가 되었다면 터미널상에서 web 폴더가 만들어 진 것을 확인할 수 있습니다.

기본 설치가 완료 되었다면 아래와 같은 화면을 패키지센터에서 확인 할 수 있습니다.

Imgur

워드프레스 설치

워드프레스 다운로드 페이지에서 한글판을 설치할 수 있습니다.
접속하면 볼 수 있는 다운로드 페이지에서 링크복사를 합니다.

링크 클릭을 눌러서 다운로드 받지 마세요.
터미널을 통해서 다운로드 하는게 편합니다.

SSH 접속

Imgur

입력하라는 암호는 사용자 암호를 입력하면 됩니다.

wordpress

webstation이 설치되어 있는 폴더에 가서 워드프레스 최신버전을 설치합니다.

다운로드 파일

# sudo wget https://ko.wordpress.org/wordpress-5.0.3-ko_KR.tar.gz

압축풀기

# sudo tar xvfz wordpress-5.0.3-ko_KR.tar.gz

/volume1/web/wordpress라는 폴더가 생성된 것을 확인할 수 있습니다.

참고 : sudo 항목을 입력하기 귀찮다면,
# sudo -i
명령어를 통해서 관리자로 로그인이 가능합니다.

설정

PHP 7.0 module 설정

module 사용설정을 해줘야 wordpress가 제대로 실행이 됩니다.

webstation에서 PHP 설정에서 PHP 7.0항목을 클릭합니다.

Imgur

Imgur

확장 모듈에 있는 모든 항목을 클릭 활성화 합니다.

가상호스팅 설정

패키지 webstation를 실행해서 가상호스트 설정을 시작한다.

  • 문서루트 : web/wordpress 워드프레스가 설치되어 있는 폴더
  • HTTP : Nginx
  • Default Profile ( PHP 7.0 )

Imgur

여기까지 설정이 되었으면 이제 설정했던 호스팅으로 브라우져 접속을 하면, 설치화면을 볼 수 있습니다.

추가설정

wordpress 권한설정

권한 설정을 해줘야 ftp에 대한 정보를 묻지않고 플러그인 설치를 진행할 수 있다

소유자 변경

# chown http:http -R /volume1/web/wordpress

시놀로지에서 기본으로 생성되어있는 http 사용자와 그룹이 있어서 일단 이렇게 설정
개인이 편하게 수정해서 사용할 수 있습니다.

파일 권한 수정

# cd /volume1/web/wordpress
# find ./ -type f -exec chmod 644 {} \;
# find ./ -type d -exec chmod 755 {} \;	

nginx 설정

nginx에서 설정하는 방법을 통해서 기본적인 설정을 진행했다.

nginx 가상호스팅 설정파일

가상호스팅 서비스에 관한 설정파일 위치

/etc/nginx/etc/app.d/server.webstation-vhost.conf

파일안을 들여다보면 각 가상호스팅 설정별로 최하단에 include 설정이 되어있는 폴더를 확인할 수 있다.

include /usr/local/etc/nginx/conf.d/279471f7-538e-4d3c-82e0-dbe9ef35393d/user.conf*;

진하게 표시되어있는 부분에 nginx 추가 설정파일을 작성하면 된다.

작성하는 이유 : 시놀로지가 재시작되면 server.webstation-vhost.conf 설정들이 재설정이 되기 때문에 상태 설정이 지워진다고 한다.

# WP Super Cache 설정 시작.
set $cache_uri $request_uri;

# POST 요청시 Super Cache 작동하지 않도록 설정
if ($request_method = POST) {
    set $cache_uri 'null cache';
}

# Get 요청시에 인수가 존재할 경우 Super Cache 작동하지 않도록 설정
if ($query_string != "") {
    set $cache_uri 'null cache';
}

# 다음의 주소로 시작할 경우 Super Cache 작동하지 않도록 설정
# wp-admin, xmlrpc 등을 포함함
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
    set $cache_uri 'null cache';
}

# 로그인한 사용자나 최근에 댓글을 달았던 사람 상대로 Super Cache 작동하지 않도록 설정
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
    set $cache_uri 'null cache';
}

# 1. Permalink가 작동하도록 설정한다.
# 2. 주소가 들어왔을 때 supercache가 가지고 있는 파일이 존재할 경우
#    PHP를 거치지 않고 바로 캐시를 전송시킨다.
location / {
    root   /volume1/web/wordpress;
    index  index.php index.html index.htm;
    try_files /wp-content/cache/supercache/$http_host/$cache_uri/index-https.html $uri $uri/ /index.php?$args;
}

설정파일을 추가한 뒤에 nginx 에서 설정을 적용한다

# nginx -s reload

워드프레스 설치

이제 서비스하는 주소로 접속하면 설치화면이 나올겁니다.
여기서 DB와 연결이 되지 않는다면, 설정을 아래와 같이 수정한 후 계속 합니다.

localhost:/run/mysqld/mysqld10.sock
블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요

firstmall plus 설치기

주의사항

  • php 7.0.30 버전을 사용해야 한다.
    • 패키지 명령어를 통해서 간단히 설치할 수 있다. (firstmall에서는 컴파일이 기본). 사실 컴파일이 시간이 많이 들지만 속도면서 우월하다.
    • firstmall 에서 제공하는 본인확인 모듈이 php 7.0 에 맞춰져 있다. 이게 호환되는 버젼이 7.0이고 상위 버전을 설치하려면 나이스 인증 업체에 연락을 해서 상위 버전에 맞는 php 파일을 제공 받아야 한다.
  • Linux 에 설치해야 하는 이유
    • firstmall에서 제공하는 모듈은 중에 일부를 컴파일해서 사용해야 되기 때문에 윈도우에서 컴파일 번거롭다.
  • firstmall 설치 기준이 Centos 이다.
    • window에도 설치해 봤는데 초반에 뻘짓을 했다. 이제는 대충 사양을 다 알아서 어디서든 설치할 수 있는 수준이 됐다.

centos7 을 설치

kernel upgrade

보인을 위한 커널 업그레이드.

firstmall 설치파일 옮기기

scp 명령어를 통해서 파일을 이동

# scp [file_name] root@[서버주소]:~/

mysql 5.7.17 설치

컴파일 해서 설치를 권장하지만, 설정의 구찮음으로 stable version 으로 설치 했다.

사전 작업

컴파일에 필요한 패키지 설치

# yum -y install compat-libstdc* compat-glibc* cpp* gcc* rpm-devel elfutils elfutils-libelf elfutils-devel gdbm* flex gd gd-devel gd-progs libjpeg* libpng* freetype* libart* openssl* ncurses-devel libxml2* cmake bison make

boost 1.59.0 설치

mysql 컴파일에 필요. 버전에 맞게 인터넷 검색을 통해서 다운로드. mysql 소스 파일이 있는 곳에서 아래 명령어를 입력

다운로드
# wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
압축해제
# tar xvfz boost_1_59_0.tar.gz
cmake 작성
 # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1  -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1  -DWITH_EXTRA_CHARSETS=all -DWITH_ZLIB=system  -DDOWNLOAD_BOOST=1  -DWITH_BOOST=./boost_1_67_0 -DMYSQL_DATADIR=/usr/local/mysql/data
컴파일 & 설치, 엄청난 시간이 들어간다. 대신 좀 빠르겠지.
# make
# make install
기존에 있는 mysql 설정파일 덮어쓰기
# cp support-files/my-default.cnf /etc/my.cnf
mysql 설정 파일추가
# vi /etc/my.cnf
[mysqld]
innodb_file_per_table -> 선택 입력 옵션
sql-mode="NO_AUTO_CREATE_USER" -> 필수 입력 옵션
초기화
# /usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize

에러가 없이 진행이 된다면, 패스워드가 화면에 표시된다.

[Note] A temporary password is generated for root@localhost: %y1jWyjqi(&( <- 처음 DB root 비밀번호 지정시 필요
디렉토리 권한설정
# chown -R root.mysql /usr/local/mysql/
# chown -R mysql /usr/local/mysql/data
Mysql 실행
# /usr/local/mysql/support-files/mysql.server start
재시작시 자동 실행등록
# cp -a support-files/mysql.server /etc/init.d/mysqld
# cd /etc/rc3.d
# ln -s ../init.d/mysqld S90mysqld
mysql 계정 정보 변경
# /usr/local/mysql/bin/mysqladmin -u root -p password '사용할 root 비밀번호 지정'

이 방법에서 에러가 나서 아래와 같은 방법으로 실행했다.
사실은 일종의 초기화 방법이기도 하다.

# /usr/local/mysql/bin/mysql_secure_installation

새로운 root 비밀번호를 입력한다.
나머지는 yesyesyesyesyesyesyes

MARIADB 10.3

마리아DB에서도 설치할 수 있다.
라이센스 문제가 있을 수도 있겠다싶어서 개인적으로는 여기로 설치했다.아래는 MariaDB 에서 설정하는 방법.
대게 MYSQL과 비슷한 설정을 가지고 있지만, Mysql 베이스 버전에 맞게 설치를 진행해다 한다.

SQL-MODE

ERROR 1265 : Data truncated for column 에 대한 대응

STRICT_TRANS_TABLES 또는 STRICT_ALL_TABLES 중 적어도 하나가 사용되는 모드를 엄격 모드라고합니다.
엄격 모드가 설정되지 않으면 (버전 <= MariaDB 10.2.3의 기본값), MariaDB는 너무 긴 문자열을 자르거나 범위를 벗어난 숫자 값을 조정하고 경고를 생성하는 등 잘못된 값을 자동으로 조정합니다.
엄격 모드가 설정된 경우 (기본값 : MariaDB 10.2.4) 명령문이 실패하고 대신 오류가 반환됩니다. IGNORE 키워드는 엄격 모드가 설정되어 오류를 경고로 변환 할 때 사용할 수 있습니다.

> select @@sql_mode, @@global.sql_mode;

출력내용

STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

NO_AUTO_CREATE_USER만 남겨야 하므로, 아래와 같이 입력한다.

> select @@sql_mode, @@global.sql_mode;
> set @@SQL_MODE = 'NO_AUTO_CREATE_USER';
> set @@global.SQL_MODE = 'NO_AUTO_CREATE_USER';

본인은 global.@@sql_mode 도 설정을 변경해야 적용이 됐다.

httpd 2.2.31 설치

준비

# tar xvfz httpd-2.2.31.tar.gz

PHP 7.0.30 설치

컴파일 하다가, 그냥, package로 설치가 된다는 것을 알게 됨

# sudo yum install php70 php70-soap php70-mysqlnd php70-gb php70-mcrypt php70-opcache php70-mbstring php70-xml php70-zip php70-devel

SELINUX 끄기

/var/www/html 에 접속을 하려고하면 다음과 같은 에러를 뿜어내는 것을 알 수 있다.
selinux 의 보안체계 때문이다.

core:crit] [pid 1502] (13)Permission denied: [client 192.168.0.114:54909] AH00529: /var/www/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/var/www/html/' is executable
# Forbidden

You don't have permission to access / on this server.

SELinux 해제

  • 인터넷에 연결된 리눅스 서버라면 SELinux 해제는 결코 추천하지 않는다.
  • 해제할 경우 다시 활성화 시키려면 재부팅이 필요하며 재부팅시 모든 자원에 대해 보안 레이블을 설정해야 하므로 부팅 시간이 매우 오래 걸릴 수 있다.

SELinux 해제 방법

#  vi /etc/sysconfig/selinux

다음 항목을 아래와 같이 수정 후, 재부팅 한다.

SELINUX=disabled

'리눅스' 카테고리의 다른 글

CentOs7 | Vim8 설치하기  (0) 2018.12.07
CentOS7 | vsftpd 설치 오류  (0) 2018.11.19
firstmall plus 설치하기  (0) 2018.07.27
Amazon Linux AMI에 mysql57 설치  (0) 2018.07.24
nginx + php71 + php-fpm 설치하기  (0) 2018.06.20
centos 7 yum 깨짐  (0) 2017.12.05
블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요

Amazon Linux AMI 에 설치

# wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
# yum localinstall mysql57-community-release-el6-11.noarch.rpm
# yum remove mysql55 mysql55-common mysql55-libs mysql55-server
# yum install mysql-community-server
# service mysqld restart
# mysql_upgrade -p

Amazon Linux Ami 에 설치환경

Apache 2.4.33

[root@ip-172-31-10-31 html]# httpd -V
Server version: Apache/2.4.33 (Amazon)
Server built:   May 23 2018 19:02:39
Server's Module Magic Number: 20120211:76
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

MYSQL 5.7.22

[root@ip-172-31-10-31 html]# mysql -V
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

PHP 7.0.30

[root@ip-172-31-10-31 html]# php -v
PHP 7.0.30 (cli) (built: May 10 2018 17:39:13) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.30, Copyright (c) 1999-2017, by Zend Technologies

'리눅스' 카테고리의 다른 글

CentOS7 | vsftpd 설치 오류  (0) 2018.11.19
firstmall plus 설치하기  (0) 2018.07.27
Amazon Linux AMI에 mysql57 설치  (0) 2018.07.24
nginx + php71 + php-fpm 설치하기  (0) 2018.06.20
centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18
블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요

HP 서버를 하나 새로 들어오면서 RAID1 구성으로 Centos를 설치하려고 하는데, 이게 B140i통해서 구성을 해야 되는 문제가 있다. 이를 사용하려면 이에 받는 드라이버를 로드해서 인스톨해야 한다.

ahci 로 그냥 설치하면 생기는 문제점

  1. RAID 구성을 사용할 수 없다.
  2. 팬이 55% 로 자동 조정

ahci 로 간편하게 설치가능하지만, 서버부팅시점에 나는 만큼의 서버팬이 돌아가는 것을 경험할 수 있다. 반드시 B140i드라이버를 통해서 OS 설치 하여야 합니다.

반드시 드라이버 dd 로드 하셔서 사용하세요

B140i 드라이버 다운로드

드라이버는 매번 업글되니 확인하기 바란다.

Centos 와 Redhat enterprise 드라이버는 동일하므로 여기서 다운받으면 된다. 드라이버 다운로드

다운로드하신 드라이버 hpxxx.dd.gz 압축 풀면 hpxxx.dd 파일 확인되며, 확장자명에 .iso를 추가합니다

예시
hpdsa-1.2.6-115.rhel7u0.x86_64.dd.iso

USB에 저장을 해 놓습니다.

OS 설치

OS 설치이미지 장치와 DD USB 메모리 모두 서버에 연결하고, OS 이미지로 부팅합니다.

아래 설치 메뉴에서 'e'를 눌러서 편집모드로 들어 갑니다.

Imgur

linuxefi 라인의 제일 마지막 줄에 커서를 옮기고 quiet 뒤에 아래 문장을 이어서 작성합니다.

modprobe.blacklist=ahci inst.dd

일정시간이 지나고 난 뒤에 아래 화면이 나옵니다.
‘r’ 를 입력해서 저장되어 있는 USB를 선택합니다.
여기서는 2번으로 되어있습니다.
‘c’ 를 입력하고 계속 진행 합니다.

Imgur

그리고, 안에 있는 dd.iso 파일을 선택합니다. 파일이 제대로 들어있다면 아래와 같은 화면을 확인할 수 있습니다.

Imgur

확장자가 rpm으로 되어있는 드라이버를 찾을 수 있습니다.
1번을 눌러서 드라이버를 입력하고, ‘c’를 입력하고 다음으로 진행합니다.

Imgur

선택한 드라이버가 [x] 표시 된 것을 확인할 수 있습니다.
‘c’를 눌러서 다음으로 진행합니다.

Imgur

그럼 이제 설치가 진행되는 것을 확인 할 수 있습니다.

블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요