>백엔드 개발 >PHP 튜토리얼 >CentOS+Nginx+PHP+MySQL 상세 구성도

CentOS+Nginx+PHP+MySQL 상세 구성도

WBOY
WBOY원래의
2016-08-08 09:22:40930검색

1. MySQL 설치

현재 정적 페이지를 실행하는 웹 서버는 거의 없습니다. 물론 데이터베이스 없이는 할 수 없습니다. 이전 글들 중 일부에서 MySQL 설치 방법을 쓰고 있는데, MySQL을 오랫동안 설치하지 않은 것 같은 느낌이 드네요. 이제 별다른 설명은 생략하고 그냥 포스팅하겠습니다

#useradd mysql

#tar zxvf mysql-5.0 .40.tar.gz

#cd mysql-5.0.40

#./configure --prefix=/usr/local/mysql

#make && make install

#/usr/local/mysql/bin/mysql_install_db --user=mysql                                             ~    //MySQL 데이터베이스 초기화

#chown -R mysql /usr/local/mysql/var

#/usr/local/mysql/bin/mysqld_safe & //MySQL 시작

#/usr/local/mysql/bin/mysqladmin -u root 비밀번호 123456 //MySQL 비밀번호 설정

#cp support-files/my-medium.cnf /etc/my.cnf

#echo "/usr/local/mysql/bin/mysqld_safe & " >>/etc/rc.local

2. PCRE 설치

PCRE는 Perl에서 사용하는 정규식입니다. 목적은 설치된 소프트웨어를 정규식을 지원합니다. 기본적으로 Nginx는 정적 웹 페이지 요청, 즉 html만 처리합니다. *.php와 같은 동적 웹 페이지 요청에서 오는 경우 Nginx는 정규식을 기반으로 경로를 쿼리한 다음 *를 전달합니다. 처리를 위해 PHP에서 PHP로

#rpm -qa | grep pcre //시스템에 PCRE가 설치되어 있는지 확인합니다. 일반적으로 시스템은 기본으로 설치되어 있으므로 시스템과 함께 제공되는 것을 삭제해야 합니다. .

#cp /lib /libpcre.so.0 / //시스템에 포함된 PCRE를 삭제하기 전에 먼저 libpcre.so.0 파일을 백업해야 합니다. 왜냐하면 RPM 패키지가 너무 밀접하기 때문입니다. 관련하여 삭제 후 libpcre.so.0 파일이 없습니다. PCRE를 설치할 때 설치하지 못했습니다.

#rpm -e --nodeps pcre-6.6-1.1 //제공되는 PCRE를 삭제합니다. 시스템

# tar zxvf pcre-8.00.tar.gz

#cd pcre-8.00

#cp /libpcre.so.0 /lib/ //복사 시스템과 함께 제공되는 PCRE를 삭제하기 전에 백업해 두었던 libpcre.so.0을 lib 디렉터리의 /

#./configure에 나중에 다른 것들을 설치할 때 불필요한 문제를 피하기 위해 다음 그림이 표시됩니다. 이를 실행하면 PCRE

#make && make install

CentOS+Nginx+PHP+MySQL 상세 구성도

Nginx 설치

인터넷에서 Nginx를 설치하는 데 어려움을 겪는 사람들이 많은 것을 봤습니다. 정말 많은 기능을 구현할 수 있습니까? 그것은 나를 점점 더 우울하게 만들었습니다. 위 작성자의 단계에 따라 이번에 Nginx를 설치하신다면, Nginx 설치시 Nginx 설치 경로만 지정해주시면 됩니다

#tar zxvf nginx-0.8.24.tar.gz

#cd nginx-0.8.24

#./configure --prefix=/usr/local/nginx //이 링크에서는 경로만 지정하면 됩니다

#make && make install

#/usr/local/nginx/sbin/nginx //Nginx 시작

#echo "/usr/local/nginx/sbin/nginx" >>/etc /rc.local

Nginx가 시작되면 아래와 같이 두 개의 프로세스가 있습니다. 마스터가 메인 프로세스이고 워커가 작업 프로세스입니다

CentOS+Nginx+PHP+MySQL 상세 구성도

NGINX를 시작한 후 브라우저에 http://localhost를 입력하면 아래와 같이 볼 수 있습니다.

CentOS+Nginx+PHP+MySQL 상세 구성도

4. PHP를 설치합니다

이제 PHP가 설치되었으므로 GD 설치는 여기서 설명하지 않습니다.

1. libpng

#tar xvf libpng-1.2.10.tar를 설치합니다. tar

#cd libpng-1.2.10

#./configure --prefix=/usr/local/png

#make;make install

#ln - s /usr/local/png/lib/* /usr/lib/

2. jpeg 설치

#mkdir /usr/local/jpeg

#mkdir /usr /local/jpeg/bin

#mkdir /usr/local/jpeg/lib

#mkdir /usr/local/jpeg/include

#mkdir /usr/local /jpeg/man

#mkdir /usr/local/jpeg/man/man1

#tar xvf jpegsrc.v7.tar.tar

#cd jpeg-7

#./configure --prefix=/usr/local/jpeg --enable-shared --enable-static

#make;make install

#ln -s /usr/local/jpeg/lib/* /usr/lib/

3. freetype 설치

#tar xvf freetype-2.3.9.tar.tar

# cd freetype-2.3.9

#./configure --prefix=/usr/local/freetype

#make;make install

4. 글꼴 구성

#tar zxvf 글꼴 구성-2.4.2.tar.gz

#cd 글꼴 구성-2.4.2

#./configure --prefix=/usr/local/fontconfig --with-freetype-c/local/freetype/bin/freetype-config

#make;make install

5. GD 설치

#tar zxvf gd-2.0.32.tar.gz

#cd gd-2.0.32

#./configure --prefix= /usr/local/gd --with-png=/usr/local/png --with-jpeg=/usr/local/jpeg --with- freetype=/usr/local/freetype --with-fontc/local/ 글꼴 구성

#cp /usr/local/png/include/png.h ./

#cp /usr/local/png/include/pngconf.h ./

#make;make install

6. PHP 설치

기본적으로 Nginx와 PHP는 연결되어 있지 않기 때문에 이 곳이 가장 중요한 곳입니다. 과거에는 많은 친구들이 Apache+PHP를 구축했는데, Apache+PHP는 컴파일 후 모듈 파일을 생성하는 반면, Nginx+PHP는 실행 파일을 생성하려면 PHP가 필요하므로 Nginx와 PHP의 통합을 구현하려면 fastcgi 기술을 사용해야 합니다. FastCGI를 설치하고 활성화하려면 우리를 도와주세요. 이번에는 FastCGI를 사용했을 뿐만 아니라, PHP-FPM과 같은 것을 사용하여 설치했습니다. 직설적으로 말하면 PHP-FPM은 FastCGI를 관리하기 위한 관리자입니다. PHP 설치 시 PHP-FPM을 사용하려면 PHP에 패치 형태로 PHP-FPM을 설치해야 하며, PHP는 PHP-FPM 버전과 일치해야 합니다. 꼭 기억하세요!

먼저 PHP와 PHP-FPM을 동일한 디렉터리에 다운로드합니다. 이번에는 php-5.3.0.tar.bz2와 php-5.3.0-fpm-0.5.12를 사용했습니다. gz, 동일한 디렉토리에 다운로드

#tar xvf php-5.3.0.tar.bz2

#gzip -cd php-5.3.0-fpm-0.5.12.diff .gz | patch -d php-5.3.0 -p1 //php-5.3.0-php-5.3.0에 패치 형태로 php-5.3.0-fpm-0.5.12.diff.gz를 추가합니다

#cd php -5.3.0

#./configure --prefix=/usr/local/php --with-gd=/usr/local/gd --with-jpeg-dir=/usr/local/ jpeg --with-png-dir=/usr/local/png --with-freetype-dir=/usr/local/freetype --with-mysql=/usr/local/mysql --enable-fastcgi --enable- fpm

참고: Nginx+PHP 통합의 경우 설치 중에 --enable-fastcgi 및 --enable-fpm을 활성화해야 합니다. 이 두 옵션의 기능은 위에 설명되어 있습니다. 실행 후 시스템은 --enable-fastcgi가 알 수 없는 옵션이라는 메시지를 표시합니다. >#cp php.ini-dist /usr/local/php/etc/php.ini

이제 PHP-FPM을 시작합니다

CentOS+Nginx+PHP+MySQL 상세 구성도#/usr/local/php/sbin/ php-fpm start

에서 위 오류를 보고합니다. 그 이유는 PHP-FPM 자체가 어떤 사용자와 그룹이 PHP를 실행할지 모르기 때문입니다. 따라서 파일을 수정하려면 파일에 있는 주석만 제거하면 됩니다(파일을 열고 빨간색 부분을 삭제하면 됩니다). ), 그러면 PHP-FPM은 아무도 없는 사용자 및 그룹으로 PHP를 실행합니다.

#vi /usr/local/php/etc/php-fpm.conf

#/usr/local/php/sbin/php-fpm 시작CentOS+Nginx+PHP+MySQL 상세 구성도

#ps -aux | grep php

#echo "/usr/local/php/sbin/php-fpm start" >> /etc/rc.localCentOS+Nginx+PHP+MySQL 상세 구성도

5. Nginx와 PHP 통합

위에서 언급했듯이 Nginx 자체는 동적 웹 페이지에 대한 요청을 처리하지 않으며 Nginx는 동적 요청이 PHP로 전송됩니다. Nginx 구성 파일을 열고 살펴보겠습니다.

CentOS+Nginx+PHP+MySQL 상세 구성도#vi /usr/local/nginx/conf/nginx.conf //대상 부분은 나중에 수정하겠습니다

위 그림을 보면 Nginx는 요청을 PHP로 전달하는 방법을 이미 알고 있습니다. Nginx는 *.php 요청을 받으면 포트 9000을 통해 요청을 PHP로 전달합니다. 이제 아래와 같이 이러한 주석을 제거할 수 있습니다

참고: 위의 /usr/local/nginx/html은 PHP 웹사이트가 있는 경로입니다

CentOS+Nginx+PHP+MySQL 상세 구성도

Nginx 자체만이 PHP를 찾는 방법을 아는 것만으로는 충분하지 않습니다. PHP도 Nginx를 찾는 방법을 알아야 합니다. PS: JJMM이 길거리에서 데이트할 때 서로 아는 것을 본 적이 있나요? 어떻게 사용하는지 모르시나요? 상대방과 어떻게 연결하나요? 이에 대해 걱정할 필요가 없습니다. PHP-FPM은 PHP 요청을 수락할 위치를 이미 구성 파일에 정의했습니다. 구성 파일을 열고 살펴볼 수 있습니다.

#vi /usr/local/php /etc/php-fpm .conf

CentOS+Nginx+PHP+MySQL 상세 구성도

위 그림에서 볼 수 있듯이 Nginx는 로컬 머신의 9000 포트를 통해 PHP 요청을 PHP로 전달하는 것을 이전에 보았습니다. 위 그림에서 PHP 자체는 로컬 시스템의 9000 포트에서 데이터를 수신하고 Nginx와 PHP는 로컬 시스템의 9000 포트를 통해 데이터 요청을 완료하는 것을 볼 수 있습니다.

6. 테스트

nginx 구성 파일에 PHP 웹사이트의 저장 경로를 정의했습니다. 경로는 /usr/local/nginx/html

다음으로 이 디렉터리에 새 PHP 페이지 테스트 페이지를 생성합니다. 파일 이름은 test.php이고 내용은 다음과 같습니다.

CentOS+Nginx+PHP+MySQL 상세 구성도

PHP와 nginx를 다시 시작한 후. (프로세스가 닫혔다가 시작되면 종료할 수 있습니다.) 브라우저에 http://localhost/test.php를 입력하면 다음 인터페이스가 나타나며 이는 성공한 것으로 간주됩니다.

CentOS+Nginx+PHP+MySQL 상세 구성도

위 내용은 CentOS+Nginx+PHP+MySQL의 상세 구성도를 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.