Ubuntu에서 사용자 정의된 PHP 버전이 설치되었는지 확인하도록 하세요.

Ubuntu에서 사용자 정의된 PHP 버전이 설치되었는지 확인하도록 하세요.

Ubuntu 12.04 VPS의 소스에서 PHP를 설치하려고 합니다.

다음과 같이 PHP를 설치합니다.

  1. php.net 웹사이트에서 최신 버전을 다운로드하세요.
  2. 다음 매개변수를 사용하여 구성하십시오.
  3. 필요한 경우 종속성을 설치합니다. (libxxxxx-dev)
  4. 그런 다음
  5. 그런 다음 설치하십시오.
  6. php.ini 파일과 fpm 구성 파일을 올바른 위치로 이동합니다.

구성 명령에서 다음 매개변수를 사용합니다.

--enable-intl
--with-openssl
--without-pear
--with-gd
--with-jpeg-dir=/usr
--with-png-dir=/usr
--with-freetype-dir=/usr
--with-freetype
--enable-exif
--enable-zip
--with-zlib
--with-zlib-dir=/usr
--with-mcrypt=/usr
--with-pdo-sqlite
--enable-soap
--enable-xmlreader
--with-xsl
--enable-ftp
--with-curl=/usr
--with-tidy
--with-xmlrpc
--enable-sysvsem
--enable-sysvshm
--enable-shmop
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--enable-pcntl
--with-readline
--enable-mbstring
--with-curl
--with-pgsql
--with-pdo-pgsql
--with-gettext
--enable-sockets
--with-bz2
--enable-bcmath
--enable-calendar
--with-libdir=lib
--enable-maintainer-zts
--with-gmp
--enable-fpm

이제 모든 일이 잘 진행되고 있습니다. 이 버전은 예상대로 작동하며 설치 중에 어떤 문제도 발생하지 않았습니다. 이제 재미있는 일이 온다. (예를 들어) 이와 같은 것을 설치하고 싶을 때마다 mcrypt일반적으로 입력 apt-get install php5-mcrypt하지만 그렇게 하고 종속성을 살펴보면 PHP5가 여전히 그 중 하나로 나열되어 있는 것을 확인하고 클릭하면 y(내 버전 덮어쓰기) 설치 될 것이다.

이제 내 질문의 실제 핵심은 PHP5가 더 이상 종속성으로 설치되지 않도록 Ubuntu에 PHP5가 설치되었음을 어떻게 알릴 수 있느냐는 것입니다. 구성 중에 변경해야 할 사항이 있나요? apt-get그런 식으로 먼저 PHP5를 설치한 다음 수동으로 제거한 다음 자체 PHP 버전을 설치 해야 합니까 ?

ZTS 버전의 PHP를 제공하는 저장소가 없기 때문에 Pthreads가 작동하도록 하려면 이 사용자 정의 PHP 빌드가 필요하다는 점을 언급할 가치가 있습니다(하지만 만들어 주실 분 계시나요?).

답변1

여기에는 몇 가지 옵션이 있습니다.

  1. 구성 스크립트에 추가하거나 --prefix=/usr/local(PHP가 사용하는 것으로 가정) PHP가 /usr/local. 예를 들어, 에서 /usr/local/bin보다 우선순위가 높기 때문에 많은 경우에 자신의 빌드가 사용됩니다(특히 명령줄에서 시작할 때). 기본적으로 이는 특정 버전의 PHP에 대해 빌드될 수 있는 시스템 패키지를 방해하지 않으며, 자체 빌드에서 제공하는 라이브러리를 사용하려고 하면 손상됩니다. 이 접근 방식을 사용하면 어떤 프로그램이 어떤 라이브러리를 사용하고 있는지 주의를 기울여야 하지만 문제 없이 이를 수행할 수 있습니다./usr/binPATH

  2. 귀하의 필요에 더 가까운 PHP 패키지 버전을 찾으십시오. 최신 버전인 경우 이 기능을 제공하는 Ubuntu ppa가 많이 있습니다(누구나 잠재적으로 손상된 ppa를 생성할 수 있으므로 공식 "백포트" 저장소를 먼저 확인하는 것이 가장 좋습니다). 이로 인해 충돌이 발생하여 ppa에서 추가 패키지를 설치해야 할 수도 있습니다(또는 패키지를 사용할 수 없는 경우 어려움을 겪을 수 있음).

  3. 소스 패키지를 다운로드하고 다시 컴파일하십시오. 사용자 정의 빌드 옵션을 원하는 경우 이것이 필요할 수 있습니다. 인터넷에는 이에 대한 많은 튜토리얼이 있지만 기본적으로 deb-src필요한 줄을 sources.list파일(또는 sources.list.d)에 추가하고 다운로드 할 수 있습니다 apt-get source(또는 다음에서 직접 다운로드할 수 있습니다).packages.ubuntu.com). 아카이브를 사용하여 추출한 다음 을 사용하거나 빌드 및 사용하여 dpkg-source패키지 디렉터리의 빌드 옵션을 조정합니다 . 최신 버전도 필요한 경우 ppa의 패키지를 사용하여 이 작업을 수행할 수도 있습니다(동일한 주의 사항이 있음에도 불구하고).debiandebuilddpkg-buildpackagedpkg -i

  4. 마지막으로 가장 어려운 옵션은 자신만의 패키지를 만드는 것입니다. 위의 소스 패키지 중 하나로 시작하고 사용 가능한 다른 버전과 다른 업스트림 소스 버전을 사용하는 것이 좋은 출발점이 됩니다. 그러나 패키지가 시스템의 나머지 부분과 잘 작동하는지 확인하는 것은 전적으로 사용자에게 달려 있습니다.

답변2

좋습니다. 먼저 언급한 방법을 사용하는 대신 다음을 시도해 보세요.

먼저 파일 deb-src에 항목이 있고 sources.list실행 중인지 확인하세요 apt-get update. 이렇게 하면 다음 단계가 더 쉬워집니다. 이제 빌드 도구를 설치하십시오.

sudo apt-get install devscripts

빌드 종속성을 설치합니다.

sudo apt-get build-dep php5

php5의 소스 코드를 얻으십시오:

apt-get source php5
cd php5*

소스 코드를 다운로드하는 것 외에도 패치도 적용한다는 것을 알 수 있습니다. 이제 에 있는 구성 스크립트를 찾으십시오 debian/rules. COMMON_CONFIG필요에 따라 편집하십시오.

editor debian/rules
## add, remove, change the configuration and save the file.
## You will find that most of them are enabled by default,
## or already included.

를 사용하는 것이 좋습니다 dch -i. 이제 콘텐츠를 만들 준비가 되었습니다.

debuild -us

그러면 상위 디렉터리에 설치 준비가 된 파일이 생성됩니다. 이제 소스에서 무언가를 빌드해야 하는 이유를 다시 생각해 봐야 합니다. 대부분의 보안 문제는 수정 사항이 나오는 즉시 수정되며, (프로덕션에서 사용되는) PHP의 특성상 공식 패키지 사용을 권장합니다.

관련 정보