
Ubuntu 12.04 VPS의 소스에서 PHP를 설치하려고 합니다.
다음과 같이 PHP를 설치합니다.
- php.net 웹사이트에서 최신 버전을 다운로드하세요.
- 다음 매개변수를 사용하여 구성하십시오.
- 필요한 경우 종속성을 설치합니다. (libxxxxx-dev)
- 그런 다음
- 그런 다음 설치하십시오.
- 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
여기에는 몇 가지 옵션이 있습니다.
구성 스크립트에 추가하거나
--prefix=/usr/local
(PHP가 사용하는 것으로 가정) PHP가/usr/local
. 예를 들어, 에서/usr/local/bin
보다 우선순위가 높기 때문에 많은 경우에 자신의 빌드가 사용됩니다(특히 명령줄에서 시작할 때). 기본적으로 이는 특정 버전의 PHP에 대해 빌드될 수 있는 시스템 패키지를 방해하지 않으며, 자체 빌드에서 제공하는 라이브러리를 사용하려고 하면 손상됩니다. 이 접근 방식을 사용하면 어떤 프로그램이 어떤 라이브러리를 사용하고 있는지 주의를 기울여야 하지만 문제 없이 이를 수행할 수 있습니다./usr/bin
PATH
귀하의 필요에 더 가까운 PHP 패키지 버전을 찾으십시오. 최신 버전인 경우 이 기능을 제공하는 Ubuntu ppa가 많이 있습니다(누구나 잠재적으로 손상된 ppa를 생성할 수 있으므로 공식 "백포트" 저장소를 먼저 확인하는 것이 가장 좋습니다). 이로 인해 충돌이 발생하여 ppa에서 추가 패키지를 설치해야 할 수도 있습니다(또는 패키지를 사용할 수 없는 경우 어려움을 겪을 수 있음).
소스 패키지를 다운로드하고 다시 컴파일하십시오. 사용자 정의 빌드 옵션을 원하는 경우 이것이 필요할 수 있습니다. 인터넷에는 이에 대한 많은 튜토리얼이 있지만 기본적으로
deb-src
필요한 줄을sources.list
파일(또는sources.list.d
)에 추가하고 다운로드 할 수 있습니다apt-get source
(또는 다음에서 직접 다운로드할 수 있습니다).packages.ubuntu.com). 아카이브를 사용하여 추출한 다음 을 사용하거나 빌드 및 사용하여dpkg-source
패키지 디렉터리의 빌드 옵션을 조정합니다 . 최신 버전도 필요한 경우 ppa의 패키지를 사용하여 이 작업을 수행할 수도 있습니다(동일한 주의 사항이 있음에도 불구하고).debian
debuild
dpkg-buildpackage
dpkg -i
마지막으로 가장 어려운 옵션은 자신만의 패키지를 만드는 것입니다. 위의 소스 패키지 중 하나로 시작하고 사용 가능한 다른 버전과 다른 업스트림 소스 버전을 사용하는 것이 좋은 출발점이 됩니다. 그러나 패키지가 시스템의 나머지 부분과 잘 작동하는지 확인하는 것은 전적으로 사용자에게 달려 있습니다.
답변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의 특성상 공식 패키지 사용을 권장합니다.