Linux 시스템에 공존하도록 여러 버전의 PHP를 설정하고 Nginx server_php 팁과 함께 사용
응용환경
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)?$ { fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; include fcgi.conf; }
./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

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

Docker 환경을 사용할 때 Docker 환경에 Extensions를 설치하기 위해 PECL을 사용하여 오류의 원인 및 솔루션. 종종 일부 두통이 발생합니다 ...

WordPress 사이트 파일 액세스가 제한됩니다. 최근 .txt 파일에 액세스 할 수없는 이유를 문제 해결하십시오. 미니 프로그램 비즈니스 도메인 이름을 구성 할 때 일부 사용자는 문제가 발생했습니다.

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

같은 시스템에서 여러 PHP 버전을 동시에 실행하는 것은 특히 다른 프로젝트가 다른 버전의 PHP에 의존 할 때 일반적인 요구 사항입니다. 똑같은 방법 ...

많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...

Linux 시스템과 함께 제공되는 Python 통역사를 제거하는 문제와 관련하여 많은 Linux 배포판이 설치 될 때 Python 통역사를 사전 설치하고 패키지 관리자를 사용하지 않습니다 ...

Apscheduler 타이밍 작업을 MacOS 플랫폼의 서비스로 구성하십시오. Ngin과 유사한 APSCHEDULER 타이밍 작업을 서비스로 구성하려면 ...
