이 서버에서 Ubuntu 8.04를 실행하고 있습니다. 패키지 관리자를 통해 PHP 5.2를 설치했습니다. PHP 5.3.1을 직접 설치하기 위해 제거했습니다. 패키지를 이렇게 만들었습니다.
./configure --prefix=/opt/php --with-mysql --with-curl=/usr/bin --with-apxs2=/usr/bin/apxs2
make
make install
이것은 / opt / php /에 PHP 5.3.1을 설치했습니다.
$ php -v
PHP 5.3.1 (cli) (built: Dec 7 2009 10:51:14)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
그러나 Apache를 시작하려고하면 이것을 얻습니다.
# /etc/init.d/apache2 restart
* Restarting web server apache2
apache2: Syntax error on line 185 of /etc/apache2/apache2.conf:
Syntax error on line 1 of /etc/apache2/mods-enabled/php5.load:
Cannot load /usr/lib/apache2/modules/libphp5.so into server:
/usr/lib/apache2/modules/libphp5.so: undefined symbol: OnUpdateLong
[fail]
이 오류의 원인은 무엇입니까? 내가 볼 수있는 모든 참조는 php4 등을 위해 php5 패키지를 빌드하는 것과 관련이 있습니다. 이 컴퓨터에는 PHP4가 설치되지 않았습니다.
답변
실제로 James Hackett의 말은 저에게 효과적이었습니다.
내 문제는 Apache를 설치 하기 전에 PHP 를 빌드했다는 것입니다 (최신 트렁크에서 PHP를 빌드하고 APT를 통해 Apache2를 설치했습니다).
따라서 아파치에 정의되지 않은 기호 (발견되지 않은 모듈은 임의의 btw입니다)가 발생한다는 오류가 발생하면 다음을 수행했습니다.
make distclean
PHP 소스에서./configure --prefix=/usr/local/php-5.3-svn --with-apxs2=/usr/bin/apxs2
make && make install
모든 것이 잘 작동했습니다.
명백한 선장은 나에게서 숨어있었습니다. 물론 명확하지 않은 && 구성하지 않고 리메이크하면, 충분하지 않은 새로운 심볼을 컴파일하기 때문에 😉
답변
나는이 같은 문제가 있었고 PHP 소스 디렉토리를 삭제하고 tarball을 다시 추출한 다음 다시 컴파일하면 모든 것이 잘 작동했습니다.
아파치 없이이 시스템에 PHP를 이전에 설치 한 다음 다른 구성 설정으로 동일한 소스 디렉토리에서 PHP를 다시 설치하려고 시도했습니다.
답변
php5를 만들었지 만 아파치와 php5 사이의 접착제를 다시 만들지 않았습니다. mod_php5를 사용하고 있기 때문에 실패합니다 (논리적).
fastcgi 덕분에 PHP 스크립트를 실행할 수 있습니다 (내장 PHP 5.3.1은 괜찮다고 가정합니다). 그러나 어쨌든 다른 방식으로 행동하는 것이 좋습니다.
프로덕션 서버에서 수동으로 소프트웨어를 구축하는 것은 꽤 불쾌합니다. 또한 PHP5는 큰 소프트웨어이므로 유지 관리 및 보안 목적으로 사용 해서는 안됩니다 .
실제로 해당 버전이 필요한 경우이를 달성하는 올바른 방법은 패키지를 백 포트하는 것입니다. (예, 포장!)
포장 지식과 시간이 약간 필요합니다. apt-get source php5
/etc/apt/sources.list에 deb-src 소스가있는 경우 패키징 소스를 다음과 같이 얻을 수 있습니다.
답변
libphp5.so를로드하는 동안 apache2에서 zend_parse_paramater 오류가 발생하는 경우
/apache2.conf : /etc/apache2/mods-enabled/php5.load의 1 행에있는 구문 오류 : /usr/lib/apache2/modules/libphp5.so를 서버에로드 할 수 없습니다 : / usr / lib / apache2 / modules / libphp5.so : 정의되지 않은 기호 : zend_parse_parameters
./configure 출력을 살펴보십시오. 다음과 유사한 메시지가 표시되는 경우 :
configure : 경고 : Zend / PHP 파서 재생을 위해 지원되는 바이슨 버전 : 1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 (발견 : 없음).
들소 설치를 시도하십시오 : sudo apt-get install bison
그런 다음 distclean을 만들고 ./configure …를 만든 다음 -i install을 만드십시오.
http://www.linuxforums.org/forum/redhat-fedora-linux-help/87975-configuring-php-work-apache.html
답변
@zecrazytux가 지적했듯이 적절한 apache-dev 패키지를 설치 했습니까? PHP는 어디에 있는지 말해도 PHP가 없어도 빌드 할 수 있습니다. ./configure 출력을 확인해야합니다.