그동안 뭐에 홀렸는지...

블로그 업데이트 할 생각을 하지 못했다.


Nginx에 php 연동을 진행해 봤다.


먼저 yum으로 설치 진행


[출처] : http://jongkwang.com/?p=941


$ yum install php php-cli php-common php-fpm php-mysql


이 후 php-v 로 버전을 확인해 본다


$ php -v

# 5.3이 설치되어 있는것을 확인 할 수 있다.




컴퓨터 재 부팅 시 자동으로 php 가 올라오도록 서비스에 등록 하자.


$ chkconfig --add php-fpm

$ chkconfig php-fpm on


php 가 제대로 열리는 지 확인해 보자.


먼저 info.php 를 Nginx 의 html 에 생성해 보자.


이후 info.php 에는 다음과 같이 설정 후 웹에서 확인해 보자


$vi info.php


<?php

echo "Test";

?>


이후 웹에서 해당 info.php 가 제대로 오픈 되는지 열어보자


http://192.168.150.133/info.php



......Access denied. 이유가 뭘까...

정말 많은 부분을 검색하고 수정했다.


1. php-fpm 관련하여 설정 파일을 확인해 보자


참고로 로그는 아래에 있다. 


php-fpm 에러로그 위치 : /var/log/php-fpm/error.log


설정파일 위치


$ vi /etc/php-fpm.d/www.conf


여기서 다음과 같이 security.limit_extensions 를 수정해 보자


security.limit_extensions = .php .php3 .php4 .php5 .html .htm




저장 후 Nginx 설정파일도 아래도 다음과 같이 수정해 보자. (php 관련 설정 부분이다. php 를 사용하려면 Nginx도 수정해 줘야 한다)


$ vi /usr/local/nginx/conf/nginx.conf


php 부분이 주석으로 되어 있다면 풀어주자.


참고로 나는 fastcgi_param 부분을 수정하여 해결을 하였는데, $document_root; 는 profile에 다음과 같이 설정 되어 있다.


fastcgi_param SCRIPT_FILENAME $document_root;


$vi ~/.bash_profile



export document_root=/usr/local/nginx/html



이렇게 해서 Access denied 를 해결했다.


이로써 Nginx 와 php 연동을 끝낼 수 있었다.




* MySQL 연동 확인


상단에서 yum 으로 php-mysql 로 설치를 진행한 바가 있다.

이제 php로 mysql 연동이 잘 되는지 확인해 본다.


아래 스크립트로 간단하게 설계해서 진행해 보았다.


<?php

$db_host = "localhost";

$db_user = "mysql유저";

$db_passwd = "mysql비밀번호";

$db_name = "mysql DB명";

$conn = mysqli_connect($db_host, $db_user, $db_passwd, $db_name);

if (mysqli_connect_errno($conn))

{

echo "DB Connect Failed: " .mysqli_connect_error();

}

else 

{

echo "DB Connect Success";

}

?>


나의 허접한 php 실력...ㅠㅠ

어쨋든 똑같이 웹에서 호출해서 확인하면 된다.


아주 깔끔하네....ㅎㅎㅎ


mysql 관련하여 확인 가능하다

http://makand.tistory.com/entry/PHP-Mysql-ConnectPHP-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%97%B0%EB%8F%99

반응형

'NGINX' 카테고리의 다른 글

[NGinx] 설치 간단 정리  (0) 2016.08.05
[NGinX] 설명 - 소개 NGINX란? (펌)  (0) 2016.06.21

NGinx 설치는 yum으로 설치 하였다.


아래 사이트에서 접속하여 확인하여 설치 진행하면 쉽게 가능할 듯 싶다.


https://opentutorials.org/module/384/4332

http://ohgyun.com/478


간단 설치 정리:


Cent OS 에 설치


1. yum 으로 Mysql 설치 진행

2. wget http://nginx.org/download/nginx-1.11.3.tar.gz  로 받는다.

3. tar -xvzf nginx-1.11.3.tar.gz

4. cd nginx-1.11.3

5. ./configure


6. make && make install



진행한다.

설치는 무난하게 진행 되었다.


설치가 완료 되고 나면 다음과 같이 아래에서 nginx 를 실행 또는 중지 가능하다.


/usr/local/nginx/sbin


cd /usr/local/nginx/sbin


[root@Cacti sbin]# ./nginx -h

nginx version: nginx/1.11.3

Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]


Options:

  -?,-h         : this help

  -v            : show version and exit

  -V            : show version and configure options then exit

  -t            : test configuration and exit

  -T            : test configuration, dump it and exit

  -q            : suppress non-error messages during configuration testing

  -s signal     : send signal to a master process: stop, quit, reopen, reload

  -p prefix     : set prefix path (default: /usr/local/nginx/)

  -c filename   : set configuration file (default: conf/nginx.conf)

  -g directives : set global directives out of configuration file



`nginx` 커맨드의 스위치로 프로세스에 시그널을 보낼 수 있다.


$ ./nginx -s stop # 즉각 중단 (TERM 신호)

$ ./nginx -s quit # 정상 중단 (QUIT 신호)

$ ./nginx -s reopen # 로그 파일을 다시 오픈한다.

$ ./nginx -s reload # 환경 설정을 다시 로드한다.



이제 PHP 연동을 정리해 봤다.

사실 php연동에서 많이 해맸다. 참고로 iptables 에 80 포트를 오픈해 줘야(디폴트) Nginx 가 제대로 설치 되었는지 확인 가능하다.





php 연동은 다음 포스팅에 정리해 본다.

반응형

'NGINX' 카테고리의 다른 글

[NGINX] php 연동 (Access denied.) & mysql 연동  (0) 2016.08.12
[NGinX] 설명 - 소개 NGINX란? (펌)  (0) 2016.06.21

우연히 NGinX 에 대해 잠시 접할 기회가 생겼다.


물론 이제는 조금씩 블로그에 포워딩이 될 듯 하고 나 또한 이번 기회에 견문을 넓힐 수 있는 기회가 되었으면 좋겠다.

(이정해 과장님 감사요..!!)


아래는 나무위키에서 소개하는 내용이다.



2002년부터 러시아의 프로그래머 이고르 시쇼브(Игорь Сысоев)가 Apache(아파치)를 코딩하다 Apache의 C10K 문제[1]를 보고 이를 극복하면서 네이티브 Win32환경에도 돌아갈 무설치 웹 서버 프로그램에 대한 개발을 시작하여 2004년 스푸트니크 1호 발사일에 발표한 오픈소스 서버 프로그램. 현재 이고르 시쇼브와 그가 설립한 회사인 Nginx Inc.가 이 프로젝트를 운영중에 있다. 목표는 가벼우면서도 강력한 프로그램이라고... HTTP와 리버스 프록시, IMAP/POP3등의 서버를 구동가능하다. 


읽을때는 엔진엑스라고 읽는다. 역사가 그렇게까진 오래되진 않아서 점유율 면에서 Apache에게 많이 밀린다. 하지만 신규서비스를 중심으로 점유율에 가속이 붙는 중이며, 이미 Apache가 여러가지면에 한계를 많이 보였으므로 특별히 큰 사유가 없다면 nginx로 갈아타는 추세다. 다만 확장 모듈이 Apache에 비해 적다는 것이 흠인데, 어차피 Apache의 이 많은 확장 모듈을 제대로 쓰는 사람은 드물다. 오히려 쓰지도 않으면서 괜히 덕지덕지 리소스만 낭비하는 모듈이 대부분이다. 따라서 호환성 확인 후 별다른 문제가 없다면 Nginx로 갈아타는 것이 현추세. 이미 필수적인 모듈은 Nginx에도 존재하고 그중 몇개는 Apache보다 50배 이상 빠르다(...) 마이크로소프트에게는 GUI관리가 쉬운 IIS에 밀리지만, 이쪽은 취향과 돈의 문제라서 1:1 비교가 힘들다.


구조적으로는 Apache에서 사용하는 스레드/프로세스 기반 구조 대신 비동기 이벤트 기반 구조를 가진다. 이로 인해서 서버 부하시 성능 예측이 쉽다. 덤으로 이로 인하여 10000개의 동시 접속을 하면 그 10000개에 드는 메모리 점유는 2.5MB다(....) 사용하는 리눅스 웹서버의 경우 LAMP(Linux + Apache + MySQL + PHP or Python or Perl)대신 LEMP를 쓴다. Nginx는 여러 서드파티 기능들(SSL, GeoIP등)을 모듈로 덧 붙이는 방식을 쓰고 있으며, 그래서 모듈을 쓰지 않을 경우 제외해 놓을 수 있다, 단, 소스 컴파일시 모듈을 추가하지 않으면, 그 이후에 추가가 안되지만...


Nginx는 현재 HTTP/2.0을 발빠르게 지원하려고 하고 있다. 아마 HTTP/2.0 보급화를 계기로 콩라인 획득(2등 위치)을 목표로 하는 듯하다. 그동안 콩라인은 IIS. 


Nginx를 사용하면서 conf 설정[2]을 바꿀때는 재시작 할필요 없이 reload를 하면 된다. 즉, 프로세스를 재시작 할 필요가 없다는 점이 있다.


넷크래프트의 2013년 1월 웹서버 조사에서, 조사한 사이트중 점유율 3위를 차지[3]하였으며, 아마존닷컴 웹 서비스(AWS)에서는 44%이상의 점유율로 1위, 활동적인 웹 서버중 3위[4]를 차지했으며, 이 속도라면 잘 나가는 사이트쪽에선 콩라인 획득 가능할듯 보여진다.

출처 : https://namu.wiki/w/Nginx#fn-6



다음은 NGinX 에 대한 설명해주는 곳이다.

앞으로 여기서 참고하면서 설치 및 간단한 예제를 만들어 볼 예정이다.


https://opentutorials.org/module/384/3462


그리고 여기는 간단하게 Apach와 NGINX 에서 php 사용 벤치 마크한 소개글이다

http://www.theorganicagency.com/blog/apache-vs-nginx-performance-comparison/


출처 : http://www.theorganicagency.com/blog/apache-vs-nginx-performance-comparison/


더 많은 정보는 아래에서 확인해 보면 좋을 듯 싶다.


http://openwiki.kr/tech/nginx


http://dkatlf900.tistory.com/32


http://blog.grotesq.com/post/414

반응형

'NGINX' 카테고리의 다른 글

[NGINX] php 연동 (Access denied.) & mysql 연동  (0) 2016.08.12
[NGinx] 설치 간단 정리  (0) 2016.08.05

+ Recent posts