티스토리 뷰

안녕하세요 사라이 입니다.

오늘은 centos6에서 nginx, php, mysql 연결하기를 해 보도록 하겠습니다.


본격적으로 글 쓰기에 앞서서 제가 현재 설치한 환경을 살펴보고 가도록 하겠습니다.

[saranf@mas ~]$ grep . /etc/*-release
/etc/centos-release:CentOS release 6.10 (Final)
/etc/lsb-release:LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
/etc/redhat-release:CentOS release 6.10 (Final)
/etc/system-release:CentOS release 6.10 (Final)


[saranf@mas ~]$ uname -r
2.6.32-754.el6.x86_64


Nginx를 설치하기 전에 잠깐 설명의 링크를 하단에 첨부해 두었습니다.

제가 설명하는 것보다는 더 잘 설명해 주는거 같더라구요..

https://ko.wikipedia.org/wiki/Nginx


이 포스팅에서는 Nginx서버를 설치하고, 그 서비스를 시작하는 방법, 그리고 Nginx환경에서 PHP를 사용하는 방법 을 알아보도록 하겠습니다.


처음에 nginx 파일을 yum 으로 install 할려고 하면 파일을 찾을수 없다고 뜰 것입니다.

[saranf@mas ~]$ sudo yum install nginx
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: centos.mirror.cdnetworks.com
 * extras: centos.mirror.cdnetworks.com
 * updates: centos.mirror.cdnetworks.com
No package nginx available.
Error: Nothing to do


혹여나 있다고 해도 엄청 예전 버전일 확률이 높습니다.

이 방법을 어떻게 해야 하나 구글링 하던 도중에 nginx 공식 홈페이지에 명시 되어 있는 부분을 찾았습니다.



To set up the yum repository for RHEL/CentOS, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

Replace “OS” with “rhel” or “centos”, depending on the distribution used, and “OSRELEASE” with “6” or “7”, for 6.x or 7.x versions, respectively.

출처 :http://nginx.org/en/linux_packages.html


위에 공식 홈페이지에서 나온 방법대로 진행해 보도록 하겠습니다.


[saranf@mas ~]$ sudo vim /etc/yum.repos.d/nginx.repo


---------------------------nginx.repo--------------------------

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1


/etc/yum.repos.d/ 안에 공식 홈페이지에서 하라는 데로 문서를 만들어 놓았습니다. (nginx.repo)


그리고 다시


[saranf@mas ~]$ sudo yum install nginx
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * extras: mirror.kakao.com
 * updates: centos.mirror.cdnetworks.com
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 0:1.14.0-1.el6.ngx will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                      Arch                          Version                                 Repository                    Size
================================================================================
Installing:
 nginx                        x86_64                        1.14.0-1.el6.ngx                        nginx                        956 k

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 956 k
Installed size: 2.6 M
Is this ok [y/N]:


설치가 가능해 짐을 볼 수 있습니다.


이 포스팅은 yum install 방식을 선택해서 포스팅 하고 있기 때문에 기본 폴더는 "/etc/nginx/..."밑에 있습니다.

nginx가 설치 됫으면 하단 config파일을 설정해서 필요한 만큼 바꿔 주면 된다.

[saranf@mas nginx]$ pwd
/etc/nginx
[saranf@mas nginx]$ ls
conf.d  fastcgi_params  koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params  uwsgi_params  win-utf


[saranf@mas conf.d]$ ls
default.conf
[saranf@mas conf.d]$ pwd
/etc/nginx/conf.d


========================nginx.conf====================================

user  nginx;
worker_processes  1;

중략....


events {
    중략...   

}


http {
  중략..

    include /etc/nginx/conf.d/*.conf;
}


============================== default.conf==============================

server {
    listen       80;
    server_name  localhost;

중략...

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

 중략....



위에 각  conf파일 들을 적어 두었다. nginx.conf파일은 nginx내에서 일어날수 있는 일들 이나 이벤트 관련해서 설정해 주는 conf파일 들이고 default.conf는 nginx서버 설정에 관한 파일 들로 보입니다.


각자 서버 설정은 입맛대로 설정해 준 뒤에 nginx를 시작해 봅시다.

[saranf@mas ~]$ sudo service nginx start
nginx (을)를 시작 중:                                      [  OK  ]


nginx를 시작 했다고는 하는데 과연 진짜로 시작된 것인지 알 수 없습니다.

진짜 실행되고 있는지 확인해 보고 넘어가도록 하겠습니다.

[saranf@mas conf.d]$ sudo service  nginx status
[sudo] password for saranf:
nginx (pid  23351)를 실행하고 있습니다..


[saranf@mas conf.d]$ sudo netstat -natlp | grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      23351/nginx      

======>nginx가 사용하는 포트 및 pid가 몇번인지 확인한다. 


[saranf@mas conf.d]$ lsof -i tcp:80
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
clock-app 3501 saranf   22w  IPv4 184501      0t0  TCP 222.112.102.109:35798->185.53.179.29:http (CLOSE_WAIT)

=======>프로토콜 TCP와 포트 80번을 확인하면 Nginx가 http서비스를 이용하는지 확인 가능하다.


[saranf@mas conf.d]$ ps -ef | grep nginx
root     23351     1  0 16:12 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx    23352 23351  0 16:12 ?        00:00:00 nginx: worker process                  
saranf   25454  8145  0 16:24 pts/0    00:00:00 grep nginx

==========>nginx의 프로세스를 확인할 수 있다.


[saranf@mas conf.d]$ nginx -v
nginx version: nginx/1.14.0

========> nginx의 버전을 볼 수 있다.


Nginx 에서 php를 사용하는 방법은 다음과 같습니다.


[saranf@mas conf.d]$ yum install php php-mysql php-fpm
Loaded plugins: fastestmirror, refresh-packagekit, security
You need to be root to perform this command.
[saranf@mas conf.d]$ sudo yum install php php-mysql php-fpm
[sudo] password for saranf:
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * extras: ftp.neowiz.com
 * updates: centos.mirror.cdnetworks.com
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.3.3-49.el6 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-49.el6 for package: php-5.3.3-49.el6.x86_64
--> Processing Dependency: php-cli(x86-64) = 5.3.3-49.el6 for package: php-5.3.3-49.el6.x86_64
--> Processing Dependency: httpd-mmn = 20051115 for package: php-5.3.3-49.el6.x86_64
--> Processing Dependency: httpd for package: php-5.3.3-49.el6.x86_64
---> Package php-fpm.x86_64 0:5.3.3-49.el6 will be installed
---> Package php-mysql.x86_64 0:5.3.3-49.el6 will be installed
--> Processing Dependency: php-pdo(x86-64) for package: php-mysql-5.3.3-49.el6.x86_64
--> Running transaction check
---> Package httpd.x86_64 0:2.2.15-69.el6.centos will be installed
--> Processing Dependency: httpd-tools = 2.2.15-69.el6.centos for package: httpd-2.2.15-69.el6.centos.x86_64
--> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-69.el6.centos.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.15-69.el6.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.15-69.el6.centos.x86_64
---> Package php-cli.x86_64 0:5.3.3-49.el6 will be installed
---> Package php-common.x86_64 0:5.3.3-49.el6 will be installed
---> Package php-pdo.x86_64 0:5.3.3-49.el6 will be installed
--> Running transaction check
---> Package apr.x86_64 0:1.3.9-5.el6_9.1 will be installed
---> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be installed
---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed
---> Package httpd-tools.x86_64 0:2.2.15-69.el6.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================
 Package                           Arch                       Version                                   Repository                Size
================================================================================
Installing:
 php                               x86_64                     5.3.3-49.el6                              base                     1.1 M
 php-fpm                           x86_64                     5.3.3-49.el6                              base                     1.1 M
 php-mysql                         x86_64                     5.3.3-49.el6                              base                      86 k
Installing for dependencies:
 apr                               x86_64                     1.3.9-5.el6_9.1                           base                     124 k
 apr-util                          x86_64                     1.3.9-3.el6_0.1                           base                      87 k
 apr-util-ldap                     x86_64                     1.3.9-3.el6_0.1                           base                      15 k
 httpd                             x86_64                     2.2.15-69.el6.centos                      base                     836 k
 httpd-tools                       x86_64                     2.2.15-69.el6.centos                      base                      81 k
 php-cli                           x86_64                     5.3.3-49.el6                              base                     2.2 M
 php-common                        x86_64                     5.3.3-49.el6                              base                     530 k
 php-pdo                           x86_64                     5.3.3-49.el6                              base                      80 k

Transaction Summary
================================================================================
Install      11 Package(s)

Total download size: 6.3 M
Installed size: 20 M
Is this ok [y/N]:

Nginx서버에서는 php를 사용하기 위해 php-fpm패키지를 사용하는데 이는 php fast cgi process manager의 약어로서 php스크립트를 웹 서버가 아닌 이 매지저를 통해 직접 관리하기 때문에 더 빠른 속도로 그 결과를 클라이언트로 제공할 수 있다. 또한 apache서버의 mod_php 보다 더 적은 메모리를 사용하기 때문에 그만큼 속도가 더 빠르다는 장점이 있습니다.


[saranf@mas html]$ sudo service php-fpm status
[sudo] password for saranf:
php-fpm (pid  2977)를 실행하고 있습니다..
==========> php-fpm을 실행하고 있음을 보여주고 있다.

                                     


Nginx와  php-fpm연동하는 방법은 /etc/nginx/conf.d/default.conf파일 중에 하단  location부분을 상황에 맞게 고치면 됩니다.

location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
       # include        /usr/share/nginx/html$fastcgi_params;
       # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }


php가 서버에서 실행 되는것이 아니라 cgi매니저에서 실행되는 것이기 때문에 fastcgi_param에 nginx root폴더를 넣어 주었습니다.

그리고 nginx와 php-fpm을 재시작 해 주고 localhost/info.php들어가면 phpinfo정보가 보이게 됩니다.

[saranf@mas html]$ sudo /etc/init.d/php-fpm restart
php-fpm 를 정지 중:                                        [  OK  ]
php-fpm (을)를 시작 중:                                    [  OK  ]


[saranf@mas html]$ sudo /etc/init.d/nginx restart
nginx 를 정지 중:                                          [  OK  ]
nginx (을)를 시작 중:                                      [  OK  ]










             .       

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

우분투 18.04에 gitlab 을 설치해 보자  (0) 2018.12.01
Centos6 git 연동하기  (0) 2018.09.30
CentOS6.10 nginx,php연결하기  (0) 2018.09.29
Centos6 분석하기 (2)  (0) 2018.09.27
centos6 분석하기 (1)  (0) 2018.09.23
ext4  (0) 2018.05.11
댓글
댓글쓰기 폼
공지사항
Total
4,927
Today
0
Yesterday
1
링크
«   2019/08   »
        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 28 29 30 31