모든 포털사이트에는 서로 질문과 답변을 통해 정보를 공유하고 있는 서비스가 있습니다.
그 중에서 네이버지식인은 네이버를 있게 해준 지식인 서비스가 아닐까 하는데요
 
 
보통 질문과 답변의 정확성보다는 최신글 위주로 노출이 되는 다른 포털사이트와는 다르게
네이버 지식인은 상위노출 하기가 매우 어렵습니다.
  
상위노출이라고 하면 검색했을때 지식인 검색 결과 페이지에서
1~5위이내에 질문이나 답변이 나와 있는 것을 말하죠
 
상위노출이 되지 못하면 그만큼 클릭수가 줄어들기 때문에 상위노출을 위해
어떻게 해야 하는지 은우와 함께 알아보도록 해요
 
 
1. 아이디는 절대 세번이상 사용해서 지식인에 글을 등록하지 않아야 합니다.
 
같은 아이디로 사용하여 질문과 답변을 하면 질문의 순위가 내려가거나 노출이 안될 확률이 높습니다.
네이버 지식인 작업을 주요 마케팅 수단으로 활용하려면 네이버지식인 아이디를 우선 30~50개정도는 가지고
이 아이디를 지속적으로 각 아이디당 2달에 한번 2~5개정도의 답변만 등록해야 합니다.
한 개인당 네이버 아디는 총 3개를 만들수가 있는데, 3개 중 한개만 정지를 당해도 나머지 아이디들도 같이
정지를 당하게 되므로 아이디를 많이 확보해 두는게 좋습니다
 
 
2. 질문할 IP / 답변할 IP는 따로따로 해야 합니다.
 
모든 포털사이트들은 질문과 답변의  IP가 절대 같아선 안됩니다.
그러나 네이버가 노출되기 어려운 것은 질문과 답변의 정확도와 정보성을 토대로 여러가지 척도도 상위노출을 책정합니다.
그렇기 때문에 질문이나 답변이 갑자기 삭제되거나, 정지 당하는 일도 흔히 일어나죠
 
집에서 질문했으면 직장이나 다른 공간에서 답변을 달고 다시 집에서 질문에 대한 답변을
채택하는 방법으로 작업이 이루어져야 합니다.
 
3. 답변수와 추천수가 많아야 합니다.
 
질문과 답변이 노골적으로 광고성을 띄고 있다면 답변수도 적고, 추천수도 적어지겠죠.
답변이 채택될 확률도 높아지고 그러면 해당 아이디의 영향력도 커지게 되기때문에
장난스러운 단어도 배제하고 최대한 자연스러운 키워드 10개 정도 반복되게
해서 지식인 글을 올리는게 좋습니다



2017/07/04 20:57 2017/07/04 20:57

 

내가 뽑은 올해의 인테리어 BEST 5


수원,용인,분당,동탄 등 경기권 지역에서 인테리어공사 어떻게 하나요 ?
지금도 오랜시간 고민하고 여기저기 비교견적 받아보고 

하면서 실망하고 스트레스 받고 하시죠.

일단 저희 수원인테리어 업체 건기넷에서 시공한 현황을 한번씩 쭉  구경해 보세요 ^^

그리고 이어서 포스트 하겠습니다. ^^

 

 

  

수원인테리어 = 가격+기술+디자인+고객만족 100%
거실+거실+욕실

건기넷은 전국 43호점 까지 구성되어 있습니다. 그리고 가장큰 장점이라면 건축자재를 직접 판매 하고 있기에 인테리어 시작부분에 가장중요한 건축자재가 저렴합니다.

건기넷 접속하시면 더 많은 시공 사진을 보실수 있습니다.

요즘 많은 수원인테리어 업체들이 수원에 만들어 지고 또 사라지고 계속 피스톤 처럼 반복 되고 있습니다.

하지만 건기넷은 오랜 기간  수원 최고의 기술력으로 항상 그자리에 있습니다

인테리어 선택과 집중

 

건기넷 접속하시면 더 많은 시공 사진을 보실수 있습니다.

주택의 연식을 확인하는 방법 중 하나인 주방의 형태를 보는 것인데요. 커너에 위치해 개방이 아닌 고립의 느낌이 강하다면 적게는 15년 20년 이상된 집입니다.

이런경우는 리모델링을 하지 않는 이상 다양한 인테리어 방법을 사용하기에는 제한이 있습니다.

그래서 올드한 분위기를 클래식한 디자인으로 변경하여 분위기를 끌어 올리는 방법을 주로 사용합니다.

건기넷 사이트에 오시면 더 많은 시공 사진을 보실수 있습니다.

 

가격 + 검증 + 기술 + 역사
건기넷

 

수원인테리어 건기넷

10여 년간 국내의 유수 건설사에 목재 및 자재를 생산 공급해온 우수한 기술력과 우수한 시공 기술력으로 한차원 높은 건축 인테리어 서비스를 합리적이고 투명하게 상담 하겠습니다.

 

 




2017/06/22 17:03 2017/06/22 17:03

[주의]  글은 Ubuntu 16.04 LTS 맞추어 작성되었습니다.

#16.10.04 무료 보안인증서(SSL) 적용방법이 추가됨

무료 보안인증서 설치방법이 추가되었습니다. HTTPS 사용을 원하신다면, 본문을 읽으신 다음의 글로 이동해주세요.

https://blog.lael.be/post/5107

- English version is also available. [Bing Translator]

* Nginx 아닌 Apache  PHP 웹서버를 구축하시려면 https://blog.lael.be/post/73 글로 이동하세요. (쉽고 편함)

* Ubuntu 에서 JSP 웹서버 세팅을 원하시면 https://blog.lael.be/post/858 글로 이동하세요.

* Ubuntu 에서 PHP JSP 동시 구동하고 싶으시면 https://blog.lael.be/post/1023 글로 이동하세요.

* Ubuntu 가상서버호스팅을 찾는 중이라면 https://blog.lael.be/post/44 글로 이동하세요.

Nginx

공식사이트는 http://nginx.org/ 이다. 엔진엑스 라고 부른다.

Igor Sysoev (이고르 시소에브) 라는 러시아 개발자 개발했으며, 소프트웨어의 주요 개발 목표는 "동시접속 처리에 특화된 웹서버 프로그램" 이다.

   

- Nginx Apache 보다 동시접속 처리에 좋은 이유

Nginx Apache 에서 널리 사용되는 기능만 구현하였다. 기능이 많지 않다. 동작이 단순하다.

Nginx 자체는 별로 많은 연산을 하지 않는다. 주로 전달자 역할만 하며 이런 이유로 Reverse Proxy Tool 이라고도 부른다.

   

- Nginx Apache 어떤 웹서버를 선택해야할까?

당신의 취향이다.

둘은 분명히 장단점이 있다 되는 Apache  선택할 것이냐동시접속처리를 잘하는 Nginx 선택할 것이냐는  본인의 판단에 달려있다.

다만 동시연결수 250이상 (동시접속자 환산 700명정도?) 라면, 서버를 증설하거나, Nginx 환경으로 바꾸어야  것이다.

   

   

PHP-FPM

Nginx  PHP 해석할 없기 때문에 외부 프로그램의 도움을 받아야 한다.

PHP-FPM  Nginx 부터 전달 받은 경로의 PHP 파일을 실행시키고 실행 결과를 Nginx 에게 반환하는 독립 실행 프로그램이다.

   

이제 실제로 세팅해 보도록 하겠다.

글은 Ubuntu 16.04 LTS (코드네임Xenial) 기준으로 작성되었다.

0) root 권한으로 변경

기본으로 주어진 계정이 root 아닐 경우에만 0번을 따라하세요.
본문의 모든 명령어는 root 권한에서 실행해야합니다. 자신에게 주어진 계정이 root 계정이 아니라면 다음의 명령어로 root 전환해 주도록 합시다.

자신의 계정 보기

# whoami

sudo 명령어 실행. root 권한으로 root 로그인하는 명령어를 실행한다.

# sudo su

자신의 계정 보기

# whoami

기본 계정의 UserID 그림과 다를 있음 예시에서 기본 아이디는 ubuntu 이다.

sudo 명령어를 사용할 있는 계정은 root 동급이니 비밀번호 관리에 신중해야한다. 기본 계정의 비밀번호를 어려운 것으로 변경해주도록 하자.

# passwd ubuntu

   

1) 기본 언어값 변경

서버 운영중에 문제가 발생했을 구글링을 있게 하는 기초작업이다.

쉘의 기본 언어값 영어 변경하도록 하자.

크게 달라지는 것은 없고 오직  메세지 영어로 바뀐다.

# apache2

이미 영어메시지가 출력된다면 1번을 건너뛰고 2 단계로 넘어가도록 하자.


< 그림 : 동일한 서버. 언어값만 다름. >

   

# vi /etc/default/locale

LANG="en_US.UTF-8"

LANGUAGE="en"

한줄만 써도 되는데, 언어값이 바뀌지 않으면 두줄을 적도록 하자.

다시 로그인 보면 값이 적용된 것을 있다.

   

2) 리눅스 버전체크

#uname -a

Linux Laelblog-dev 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

   

3) Ubuntu 버전체크

#cat /etc/issue

Ubuntu 16.04.1 LTS \n \l

조금 자세하게 운영체제 버전정보를 알아보고 싶다면

# lsb_release -a

해당 명령어는 Ubuntu 에서는 기본적으로 설치되어 있지만 CentOS 계열에서는 기본패키지가 아니니 사용하려면 다음 명령어로 설치해주어야 한다.

# yum install redhat-lsb-core

4) 하드용량체크

# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/vda1 49G 1.6G 45G 4% /

none 4.0K 0 4.0K 0% /sys/fs/cgroup

udev 2.0G 12K 2.0G 1% /dev

tmpfs 396M 392K 395M 1% /run

none 5.0M 0 5.0M 0% /run/lock

none 2.0G 0 2.0G 0% /run/shm

none 100M 0 100M 0% /run/user

위의 서버에서 현재 사용가능한 용량은 45GB 이다.

   

5) 메모리 체크

# free -m

total used free shared buffers cached

Mem: 3952 194 3758 0 13 105

-/+ buffers/cache: 76 3876

Swap: 1020 0 1020

3952M 전체메모리중 현재 194M 사용하고 있고 3758M 비어있다.

   

6) CPU 코어수 확인

cpu정보 프로세스를 읽어서 processor 항목이 몇개인지 갯수를 셉니다.

# cat /proc/cpuinfo | grep processor | wc -l

위의 사진은 6 core 뜻합니다.

한번 정도는 다음의 명령어를 확인해 보세요. CPU 정보를 있습니다.

#cat /proc/cpuinfo | grep processor

#cat /proc/cpuinfo

   

7) 현재 운영체제에 설치되어 있는 프로그램 최신버전 패치

APT 목록 갱신

APT Advanced Packaging Tool 뜻합니다.

우리는 apt 라는 우분투에 내장된 프로그램을 이용해서 프로그램을 쉽게 설치/제거 있습니다.

   

패키지 목록 갱신.

#apt-get update

   

현재 운영체제에 설치되어있는 프로그램 최신버전 패치

#apt-get upgrade

설치 일부 프로그램 설정파일을 초기화 할것인지 물어보는데 기본값인 Keep Local Version 선택한다. (미리 선택되어 있으므로 Enter 누르면 된다.)

   

8) 시스템 시간 설정

이것을 하지 않으면 클라우드 서버 사업자가 미리 지정해 지역의 시간을 불러올 것이다. (한국은 Seoul, 일본은 Tokyo, 그외에는 GMT.)

물론 초기 설치할 Asia/Seoul 설정했다면 작업을 필요는 없다. 하지만 한다고 해서 문제되지는 않는다.

- 데비안 패키지 재설정 TimeZone Data 실행한다.

#dpkg-reconfigure tzdata

GUI 환경이 나올 텐데, 순서대로 Asia - Seoul 선택하면 된다.

   

서버의 시각은 현재 한국기준(KST) 2016 08 08 22:28:07 이다.

   

9) Hostname 설정 (선택)

단계는 권장하는 단계이나 건너뛰어도 운영에 문제가 없다.

서버에 이름을 정하는 것이다. 이름을 정해 두어야 나중에 다중 서버작업을 헷갈리지 않는다.

위의 뜻은 "li599-115 서버에 root 사용자" 라는 뜻이다.

서버 이름은 FQDN(Fully Qualified Domain Name) 쓰는 것이 좋다.

참고로 라엘이의 블로그 서버의 hostname blog.lael.be 이다.

   

#vi /etc/hostname

파일일 건데(또는 기존 hostname 쓰여있을것임.) 원하는 이름으로 바꾼다.

권장하는 단어  서버에 연결될 대표 도메인이다. 예를 들어 blog.lael.be 같은 .

   

적용한다.

#hostname -F /etc/hostname

   

서버에 접속하면 적용된 것을 확인 있을 것이다.

hostname 값은 서버작업자에게 서버이름을 알려주는 역할을 하며, 아무 의미없는 글자를 적어도 된다.

일부 sendmail 같은 프로그램에서 다른 서버와 통신시 사용하기도 한다.

   

hostname FQDN 으로 설정하는 것을 권장하지만, 외부와 연결이 없는 서버이거나 자신이 쓰고 싶은 이름이 있다면 (팀명이나, 회사명, 서비스명 그것으로 해도 된다.

예를 들어 myserver1, new1111 같이 자신이 하고 싶은대로 정했다고 한다면, 서버의 /etc/hosts  해당 이름을 등록해두도록 하자.

127.0.0.1    myserver1

   

추가) 메일 발송프로그램 설치하기

많은 프로그램에서 mail() 함수를 사용한다. 함수는 서버에 sendmail 에게 메일발송을 요청한다.

메일문의, 가입시 환영메일, 비밀번호 찾기 메일, 이메일인증 널리 사용된다. 서버가 메일 발송을 있게 sendmail 설치하자.

# apt-get install sendmail

이것은 오직 웹사이트에서 메일을 보내기 위한 것이다.

아이디@당신의도메인.com 같은 것을 하고 싶다면 절대로 직접 구축하려고 하지 말고 구글앱스, 네이버웍스, 도메인 구입처, 클라우드 메일호스팅 사용하도록 하자.

   

# vi /etc/mail/local-host-names

localhost 제외하고 나머지 항목은 지운다. 이곳에 쓰여진 도메인은 sendmail 발송시 목적 메일서버조회(mx record query) 하지않고 로컬로 보낸다.

   

   

10) APT 소스리스트 파일에 Nginx, PHP, MariaDB 저장소 추가

글에서는 Nginx, PHP, MariaDB 모두 최신버전으로 설치할 이다.

우분투 공식 저장소에는 stable 버전이 존재한다. stable 버전이란 "기능추가 없이 보안과 안정성 패치만 하는 버전" 뜻한다. Xenial 저장소의 경우 Nginx 1.10.0 , PHP 7.0.8 담겨져 있다.

최신버전을 설치하기 위해서 APT 소스리스트 파일에 최신버전이 담겨있는 저장소를 추가해주어야 한다.

   

# vi /etc/apt/sources.list

   

파일  끝에 다음의 추가. (더블클릭하면 전체 선택됨)

1

2

3

4

5

6

# Nginx

deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx

deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx

   

# MariaDB

deb http://ftp.kaist.ac.kr/mariadb/repo/10.1/ubuntu xenial main

   

- 저장소 보안키 다운로드 시스템에 등록

보안키 정보는 /etc/apt/trusted.gpg  저장된다.

   

nginx 보안키 다운로드 적용.

# cd /root

# wget http://nginx.org/keys/nginx_signing.key

# apt-key add nginx_signing.key

# rm nginx_signing.key

   

MariaDB 보안키 다운로드 적용.

# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

   

PHP 저장소 추가 보안키 등록

여기서는 ppa(Personal Package Archive)라는 개인패키지 저장소를 이용할 것이다.

ondrej 사용자의 php-7.0 저장소를 사용할 것이다.

ondrej Debian 에서 일하고 있으며, Ubuntu 제작자 한명이다.

   

< Debian이나 Ubuntu에서 가끔 이분의 이름을 있을 것이다 >

   

보안키 /etc/apt/trusted.gpg.d/ondrej_ubuntu_php.gpg  저장되고

저장소 추가 구문 /etc/apt/sources.list.d/ondrej-ubuntu-php-xenial.list  저장된다.

# apt-get install software-properties-common

# add-apt-repository ppa:ondrej/php

엔터키 한번 눌러주면 된다. (맥의 경우 return )

   

추가된 보안키 목록 보기

# apt-key list

nginx 저장소키, mariadb 저장소키, Ondřej Surý 님의 개인저장소(Launchpad PPA)키가 등록되어 있는 것을 있다.

   

- APT 소스패키지 정보 업데이트

신규 저장소를 추가하였고, 저장소키도 등록했으니, APT 패키지 정보를 갱신해보도록 하자.

# apt-get update

   

10) Nginx 설치

<https://en.wikipedia.org/wiki/Nginx>

작성일인 2016 08 08 현재 최신버전은 1.11.3 이다.

   

- Nginx 설치

Nginx 공식 저장소에서 배포하는 최신버전을 설치해 보도록 하자.

# apt-get install nginx

   

자동으로 설치되고, 실행되고, 재부팅시 자동실행 되게 설정된다.

   

- nginx 버전체크

# nginx -v

당신이 설치한 버전은 이것보다 높을 것이다.

   

- 동작여부를 직접 확인해본다.

웹브라우저를 켜고 http://123.456.123.456 (서버의 아이피) 접속해보자.

   

Welcome to nginx! 문구가 뜨면 정상이다. ( 파일의 위치는 /usr/share/nginx/html/index.html 이다.)

   

11) PHP-FPM 설치

- PHP7-FPM 최신버전 설치

# apt-get install php7.0-fpm

   

- 콘솔 PHP 버전확인

# php -v

   

- PHP-FPM 프로그램 버전확인

ondrej 님이  패키지명 php7.0-fpm 이라고 해두고실행파일명 php-fpm7.0 으로 정했는지 이해가 가지 않지만, 아무쪼록 php-fpm7.0 파일을 실행해 보도록 하자.

# php-fpm7.0 -v

- 널리쓰이는 PHP 모듈 설치

mcrypt PHP-FPM 설치할 함께 설치되니 따로 설치하지 않는다. 중복설치가 가능한데 중복설치할 경우 PHP 콘솔명령 실행시 warning 메시지가 나타나게 된다.

# apt-get install php7.0-gd php7.0-curl php7.0-mbstring php7.0-xml

설치가 완료되면 자동으로 PHP-FPM 프로그램이 재시작되며 모듈이 로드된다.

   

11-2) PHP Default timezone 설정하기.

값을 설정하지 않으면 시스템 timezone 사용합니다.

PHP Default timezone 설정하는 것은 필수는 아니지만 매우 권장하는 작업입니다. 설정해주세요.

동일한 작업 2개의 파일에 적용 주어야 합니다.

# vi /etc/php/7.0/fpm/php.ini

# vi /etc/php/7.0/cli/php.ini

   

date.timezone 값을 찾아서 주석을 제거하고 시간을 설정해주세요.

값을 찾아서

   

이렇게 변경.

설정 적용을 위하여 php-fpm 재시작.

# service php7.0-fpm restart

   

phpinfo 페이지에서 Default timezone 화면과 같이 설정되어 있으면 정상이다.

   

   

12) MariaDB 설치

<https://en.wikipedia.org/wiki/MariaDB>

   

당연히 MariaDB 10.1 설치할 것이다.

# apt-get install mariadb-server-10.1 mariadb-client-10.1

설치시에 데이터베이스 root 사용자의 비밀번호를 설정할 있다.

설치와 동시에 MariaDB 실행되며, 재부팅시에도 자동 시작되도록 설정된다.

   

서비스 상태확인

# service mysql status

표시할 정보가 많으면 more 나올 수도 있는데, Q Control+C 입력하여 more 종료한다.

   

PHP-FPM DB 연동관련 모듈설치

# apt-get install php7.0-mysql

   

13-1) 기본 언어셋 설정(중요)

단계를 건너뛰면 DB latin1 으로 생성되며 추후 DB작업에 문제가 생길 있다.

# vi /etc/mysql/conf.d/mariadb.cnf

   

(vi 에디터 사용방법을 모른다면 ftp 클라이언트를 사용하여 서버에 로그인 해당파일을 수정하고 덮어쓰기하여라.)

다음의 파일을

아래와 같이 변경한다.

   

/etc/mysql/conf.d/mariadb.cnf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# MariaDB-specific config file.

# Read by /etc/mysql/my.cnf

   

[client]

# Default is Latin1, if you need UTF-8 set this (also in server section)

default-character-set = utf8mb4

   

[mysqld]

#

# * Character sets

#

# Default is Latin1, if you need UTF-8 set all this (also in client section)

#

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

character_set_server = utf8mb4

collation_server = utf8mb4_unicode_ci

   

변경사항 적용

#service mysql restart

   

   

14) Nginx PHP-FPM 연결

현재 상태에서 Nginx 프로그램은 기본적으로 nginx 사용자 권한으로 실행되고,

PHP-FPM 프로그램 기본적으로 www-data 사용자 권한으로 실행된다.

둘의 사용자 권한을 www-data 일치시키자. 사용자는 운영체제 설치시 자동으로 생성되는 특수목적 사용자이다.

nginx 설정값만 바꾸면 된다.

   

- Nginx 사용자 권한 변경

# vi /etc/nginx/nginx.conf

첫줄의 user  nginx;  user  www-data;  바꿉니다.

# service nginx restart

   

- Nginx 에서 PHP 확장자에 대해서 PHP-FPM 프로그램으로 요청을 전달하게 설정하기

# vi /etc/nginx/conf.d/default.conf

   

과정 설명

#1. 기본 값에서 주석 제거
#2.
커스텀 에러페이지 구문 제거
#3. Nginx - PHP-FPM
구문 추가 (https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/) 참조

   

결과적으로 /etc/nginx/conf.d/default.conf 아래의 구문으로 수정 저장하면 됩니다.

   

다음의 구문은 (2016 1 10 현재까지) 알려진 모든 취약점을 테스트   안전하게 작성된 구문이며 NGINX 공식 WIKI 가이드(https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/) 따라 작성되었습니다.

또한 PHP-FPM 5.3.9 부터 limit_extensions 이라는 속성이 추가되었으며 기본적으로 .php 파일만 실행되도록 설정되어 있습니다.

#16.10.10 설정 가이드가 추가됨

환경설정을 쉽게할 환경설정 생성기가 추가되었습니다.

https://blog.lael.be/demo-generator/nginx/default.conf.php

# /etc/nginx/conf.d/default.conf

/etc/nginx/conf.d/default.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

server {

    listen       80 default_server;

    server_name  localhost;

    root   /usr/share/nginx/html;

   

    location / {

        index  index.php index.html;

    }

   

    location ~ [^/]\.php(/|$) {

        fastcgi_split_path_info ^(.+?\.php)(/.*)$;

        if (!-f $document_root$fastcgi_script_name) {

            return 404;

        }

   

        fastcgi_pass unix:/run/php/php7.0-fpm.sock;

        fastcgi_index index.php;

        include fastcgi_params;

    }

}

   

# fastcgi_params   가이드대로 변경 (https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/)

# vi /etc/nginx/fastcgi_params

아래와 같이 변경

fastcgi_params

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

fastcgi_param   QUERY_STRING            $query_string;

fastcgi_param   REQUEST_METHOD          $request_method;

fastcgi_param   CONTENT_TYPE            $content_type;

fastcgi_param   CONTENT_LENGTH          $content_length;

   

fastcgi_param   SCRIPT_FILENAME         $document_root$fastcgi_script_name;

fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;

fastcgi_param   PATH_INFO               $fastcgi_path_info;

fastcgi_param   PATH_TRANSLATED         $document_root$fastcgi_path_info;

fastcgi_param   REQUEST_URI             $request_uri;

fastcgi_param   DOCUMENT_URI            $document_uri;

fastcgi_param   DOCUMENT_ROOT           $document_root;

fastcgi_param   SERVER_PROTOCOL         $server_protocol;

   

fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;

fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;

   

fastcgi_param   REMOTE_ADDR             $remote_addr;

fastcgi_param   REMOTE_PORT             $remote_port;

fastcgi_param   SERVER_ADDR             $server_addr;

fastcgi_param   SERVER_PORT             $server_port;

fastcgi_param   SERVER_NAME             $server_name;

   

fastcgi_param   HTTPS                   $https;

   

# PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param   REDIRECT_STATUS         200;

   

- Nginx 재시작

# service nginx restart

   

15-1) 연동테스트1

# vi /usr/share/nginx/html/phpinfo.php

   

1

2

<?php

phpinfo();

   

웹브라우저에서 다음을 입력해서 phpinfo 페이지를 보도록 하자.

http://111.222.333.444/phpinfo.php

   

< 페이지에서 컨트롤+F 누르고 "nginx" "php-fpm" 단어로 검색해본다>

   

   

15-2) 연동테스트2

nginx php-fpm , 그리고 mariadb 모두 사용하는 프로그램을 실행시켜보자.

phpmyadmin 공식사이트https://www.phpmyadmin.net/

   

설치 못하시는 분이 있으셔서 따로 설치법을 적습니다.

여러 설치방법이 있겠지만 저는 다음과 같이 설치합니다.

   

압축해제 프로그램 설치

# apt-get install unzip

   

압축파일 다운로드

# cd /usr/share/nginx/html

   

https://www.phpmyadmin.net/ 사이트로 이동 위의 그림과 같이 입력하여 최신버전을 설치할 있도록 하자.

글에서는  작성 시각 현재 최신버전인 4.5.2  설치할 것이다. phpmyadmin 매우 견고하게 만들어진 프로그램으로써 4.5.2 설치해도 보안취약점이 있지는 않겠지만 최신버전을 설치하는 습관 기르도록 하자. (혹시나 말하지만, Alpha Beta 같은 개발자-최신버전을 설치하라는 뜻이 아니라 널리 사용되어 검증된 Release Channel 최신버전 사용하라는 것이다.)

# wget https://files.phpmyadmin.net/phpMyAdmin/4.5.2/phpMyAdmin-4.5.2-all-languages.zip

   

압축해제

# unzip phpMyAdmin-4.5.2-all-languages.zip

   

폴더 이름변경

# mv phpMyAdmin-4.5.2-all-languages dbmyadmin

   

다운받은파일 삭제

# rm phpMyAdmin-4.5.2-all-languages.zip

   

http://111.222.333.444/dbmyadmin/

   

   

[TIP] 간혹 방금 설치한 디비의 root 비밀번호가 기억이 안나는 분들도 있을 것이다. 경우에는 다음의 명령어를 사용하여 mariadb 재설치 하도록 하자.
-
제거
# apt-get purge mariadb-server-10.1
-
설치
# apt-get install mariadb-server-10.1

   

   

- 재부팅

복잡한 세팅이 끝났으니 한번 숨을 고르고 가자.

# reboot

재부팅 후에 phpinfo 페이지와 phpmyadmin 실행된다면 "재부팅이 가능한 서버" 라고 있다.

   

16) 사이트 구동예제

원래 표준명령어는 useradd 이지만, ubuntu 사용하기 좋게 adduser 지원한다.
리눅스 관련 서적을 보면 둘다 계정생성용 명령어라고 되어있다.
쉬운 설정을 위해 adduser 사용

다음의 예제에서는 myuser1 이라는 사용자(user) 웹주소(ServerName) 사용예제를 설명합니다.

각자 본인의 도메인으로 변경해서 실행하세요.

#adduser myuser1

   

(참고로 위와 반대동작 하는 계정삭제 명령어는 다음과 같다. (계정을 삭제하고 홈디렉토리도 삭제함)

#userdel -r myuser1

보통 웹루트는 홈디렉토리에 하지 않습니다.
저는 주로 www 디렉토리를 사용합니다.사용자변경 www 디렉토리를 생성하고 빠져나오기

#su -l myuser1

#mkdir www

#exit

   

- php pool 파일 만들기  nginx server 구문을 추가하기

PHP-FPM Pool 파일 작성

# vi /etc/php/7.0/fpm/pool.d/myuser1.conf

PHP Pool 파일은 사용자당 하나 만들어두고, nginx Conf 파일은 사이트당 하나 만들어서 운영하도록 하자.

자주 쓰이는 PHP 설정 값들도 적어두었으니 변경을 원한다면 주석(;) 제거후 바꾸도록 하자.

첫번째 줄의 대괄호[] 주석이 아니라 PHP Pool 이름이니 사이트마다 중복되지 않게 적도록 하자.
만약 PHP실행프로세스 이름(php pool name) 중복된다면, 중복된 이름의 어느하나만 실행되고 나머지는 무시된다.

php.ini 파일은 default timezone 이외에 값을 수정하지 않으며, 필요한 값은 프로세스 설정파일에 수동으로 지정한다.

/etc/php/7.0/fpm/pool.d/myuser1.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

[myuser1]

   

user = myuser1

group = myuser1

   

listen = /run/php/myuser1.sock

   

listen.owner = myuser1

listen.group = www-data

   

pm = dynamic

pm.max_children = 9

pm.start_servers = 3

pm.min_spare_servers = 2

pm.max_spare_servers = 4

   

;php_flag[display_errors] = off

;php_admin_value[error_log] = /var/log/fpm-php.www.log

;php_admin_flag[log_errors] = on

   

;php_admin_value[memory_limit] = 128M

;php_admin_value[max_execution_time] = 120

;php_admin_value[max_input_time] = 300

   

;php_admin_value[post_max_size] = 25M

;php_admin_value[upload_max_filesize] = 25M

   

Nginx server 구문 작성

# vi /etc/nginx/conf.d/my-example-site.com.conf

워드프레스 Nginx 설정예제 https://codex.wordpress.org/Nginx 페이지를 많이 참조했습니다.

-
일반적인 PHP 사이트 일때 (그누보드 )




2017/05/21 12:15 2017/05/21 12:15

Install PHP 7

Use the following set of commands to add PPA for PHP 7 in your Ubuntu system and install it.

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install -y php7.0

Check PHP Version

Now use the following command to check installed php version on your system.

$ 

PHP 7.0.1-4+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

Install PHP 7 Modules

You may also need to install modules based on your application requirements. Use the following command to find our available php 7 modules.

$ php7.0-common - Common files for packages built from the PHP source
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-dbg - Debug symbols for PHP7.0
php7.0-curl - CURL module for PHP
php7.0-gd - GD module for PHP
php7.0-imap - IMAP module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-modules-source - PHP 7.0 modules source package
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP

Now install modules which is required for you.

$ sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi



2017/05/21 12:12 2017/05/21 12:12