Linux 시스템에 공존하도록 여러 버전의 PHP를 설정하고 Nginx server_php 팁과 함께 사용

WBOY
풀어 주다: 2016-05-16 20:02:28
원래의
1649명이 탐색했습니다.

응용환경

LNMP 환경에서 현재 PHP 버전은 5.3.8입니다. PHP 5.2.x만 지원하는 애플리케이션 요구 사항이 발생하면 기존 애플리케이션을 유지하거나 PHP 5.3.8을 사용하고 싶습니다. 즉, nginx가 필요에 따라 다른 버전을 호출하려면 두 가지 버전의 PHP가 동시에 존재해야 합니다.

생각

Nginx는 PHP-FastCGI를 통해 PHP와 상호작용합니다. PHP-FastCGI가 실행된 후 파일 또는 로컬 포트를 통해 수신합니다. Nginx에서 해당 FastCGI 수신 포트 또는 파일을 구성하면 Nginx가 PHP 해석을 요청할 수 있습니다.

PHP-FastCGI는 포트와 파일을 수신하므로 다양한 버전의 PHP-FastCGI가 동시에 실행될 수 있으며 요구 사항에 따라 다양한 PHP-FastCGI 포트 또는 파일을 호출하도록 Nginx를 구성할 수 있습니다. 즉, 다양한 버전의 PHP가 공존할 수 있습니다.

구성 기록

lnmp가 설치된 Debian 환경을 기준으로 간단한 구성 과정을 아래에 기록했습니다. 현재 PHP 버전은 5.3.8이며 /usr/local/php에 있습니다.

1. PHP-5.2.14 및 관련 FPM 및 autoconf 구성 요소 다운로드:


mkdir ~/php5.2
cd ~/php5.2
wget -c http://museum.php.net/php5/php-5.2.14.tar.gz
wget -c http://php-fpm.org/downloads/php-5.2.14-fpm-0.5.14.diff.gz
로그인 후 복사

2. PHP-5.2.14의 압축을 풀고 PHP-FPM 패치를 적용합니다.

tar zxvf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
로그인 후 복사

3. lnmp를 통해 설치했다면 autoconf가 설치되어 있어야 합니다. 그렇지 않은 경우 autoconf-2.13을 직접 다운로드하여 컴파일한 다음 autoconf 환경 변수를 설정하세요.

export PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf¬
export PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader
로그인 후 복사

3. PHP-5.2.14를 컴파일하여 새 경로(/usr/local/php-5.2.14)에 설치하고 –prefix 및 –with-config-file-path 경로에 주의한 후 엽니다. fastcgi 및 fpm 옵션:

cd php-5.2.14/
./buildconf --force
./configure --prefix=/usr/local/php-5.2.14 --with-config-file-path=/usr/local/php-5.2.14/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-fastcgi --enable-fpm
make ZEND_EXTRA_LIBS='-liconv'
make install
로그인 후 복사

4. /usr/local/php-5.2.14/etc/php-fpm.conf, 수신 포트를 설정합니다:

<value name="listen_address">127.0.0.1:9001</value>
로그인 후 복사

또는 모니터 파일:

<value name="listen_address">/path/to/unix/socket</value>
로그인 후 복사

기타 매개변수는 서버 환경 및 필요에 따라 맞춤 설정할 수 있습니다.
5. 나중에 php-fpm을 통해 관리할 수 있는 php-fpm을 시작합니다.

/usr/local/php-5.2.14/sbin/php-fpm start
로그인 후 복사

php5.3.3 이후 php는 php-fpm을 php로 상속했으며, 내장된 php-fpm은 기본적으로 (start|stop|reload)의 원활한 시작 매개변수를 지원하지 않습니다. 제공된 시작을 사용해야 합니다. 공식 소스 코드에서 제어할 스크립트:

cp -f (php -5.3.x-source-dir)/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
/etc/init.d/php-fpm start
로그인 후 복사

php-fpm이 지원하는 작업:

  • start, PHP의 FastCGI 프로세스를 시작합니다.
  • 중지하고 PHP FastCGI 프로세스를 강제 종료합니다.
  • quit은 PHP의 FastCGI 프로세스를 원활하게 종료합니다.
  • 다시 시작하고 PHP의 FastCGI 프로세스를 다시 시작하세요.
  • PHP의 php.ini를 다시 로드하고 다시 로드합니다.
  • logrotate, 로그 파일을 다시 활성화합니다.

5.3.3의 php-fpm 스크립트에서 지원되는 작업: start|stop|force-quit|restart|reload|status

6. PHP-5.2.14의 php.ini를 구성하고 다시 로드하여 적용합니다.

vi /usr/local/php-5.2.14/etc/php.ini
/usr/local/php-5.2.14/sbin/php-fpm 다시 로드
7. nginx 구성을 수정하고 필수 서비스 구성에 PHP-5.2.14를 사용합니다.

location ~ .*.(php|php5)&#63;$
    {
      fastcgi_pass 127.0.0.1:9001;
      fastcgi_index index.php;
      include fcgi.conf;
    }

로그인 후 복사
8. php5.5.10을 컴파일하는 데 사용한 구성을 기록합니다
./configure --prefix=/usr/local/php-5.5.10 --with-config-file-path=/usr/local/php-5.5.10/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-bz2 --with-curl=/usr/bin --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --with-mcrypt=/usr/bin --enable-zip --enable-soap --enable-mbstring --with-gd --with-openssl --enable-pcntl --with-xmlrpc --enable-opcache
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!