2008-11-10 5 views
2

저는 PHP에 익숙하지 않아 내 로컬 사이트에서 phpBB를 설정하려고했습니다. 나는 apache2와 php5의 debian install을 가지고있다. phpBB 설치 프로그램이 잘 실행되어 데이터베이스에 연결되어 아무 문제없이 모든 테이블을 만들었습니다. 하지만 로그인 페이지를 열려고하면 0 바이트 응답이 나타납니다.PHP5 : 외부 함수 호출 및 로깅 오류

작은 파기로 인해 mysql_pconnect()를 호출 한 적이 없었습니다. PHP 바이너리는 오류 또는 메시지없이 종료됩니다. 전혀. 다음 코드를 실행 해 보았습니다.

<?php 
$id = @mysql_pconnect('localhost','myusername', 'mypassword', true); 
print "id=".$id."\n"; 
?> 

"id ="문자열은 절대 인쇄되지 않습니다. 그것은 단지 아무것도하지 않습니다. 어디서 오류가 발생했는지, 어떤 일이 벌어지고 있는지보아야할지 모르겠습니다. 내가 설치 한 모든 것은 "mysql"배를 사용하는 것입니다 ... 아마도 나는 다른 것을 놓치고 있습니까?

어딘가에서 경로 문제가 발생했습니다. MySQL의 확장에 잘 구축

대답
/usr/lib/php5/20060613+lfs/mysql.so 

:

jishi는 (? 사람, 오프 @echo)은 "@"연산자는 오류 메시지를 포함하여, 출력을 억제하는 것이 저를 알렸다

tomhaigh : 확장은 php.ini 파일에서 명시 적으로 활성화되어야합니다. php.ini 파일에 라인 "확장자 = mysql.so"을 추가 한 후, 다음 코드는 잘 실행 :

% cat d.php 
<?php 
ini_set('display_errors', true); 
error_reporting(E_ALL | E_NOTICE); 
$id = mysql_pconnect('localhost','myusername', 'mypassword', true); 
print "id=".$id."\n"; 
?> 
% php -c /etc/php5/apache2/php.ini d.php 
id=Resource id #4 

기쁨을!

+1

당신은 그것을 설치되어 있어야 그것을 제거하고 다시 시작 시도가 있는지 수 대신 apt-get을 사용하면 많은 문제를 해결할 수 있습니다. 그것은 당신이 달리 지정하지 않으면 당신의 설정에서 활성화했을 것입니다. apt-get php5-mysql을 설치하십시오. debian 및 우분투의 장점 중 하나입니다. – jishi

답변

1

시도 :

<?php 
ini_set('display_errors', true); 
error_reporting(E_ALL | E_NOTICE); 
$id = mysql_pconnect('localhost','myusername', 'mypassword', true); 
print "id=".$id."\n"; 
?> 

하고 응답이 MySQL의 모듈을 설치하거나 사용할 수 없습니다 것 같습니다 귀하의 코멘트에서

편집

무엇을 참조하십시오. 당신은 당신의 php.ini 파일의 모양과 그것이 세미콜론 주석 경우

extension=mysql.so 

같은 라인, 아파치

+0

치명적 오류 : /usr/local/src/phpBB3/d.php 라인의 정의되지 않은 함수 mysql_pconnect()를 호출한다. 4 –

0

가끔 PHP가 발견 할 수없는 기능을 발견했을 때 '블랙홀'에 빠지게됩니다.

mysql 확장이 올바르게 설치되었는지 확인할 수 있습니까?

는이 같은 PHP 페이지를 작성하여이 작업을 수행 할 수 있습니다

<?php 
phpinfo(); 
?> 

접속하시면 다음 웹 루트에 저장합니다. PHP 모듈과 관련하여 서버가 현재 실행중인 모든 정보를 포함해야합니다.

6

방금 ​​mysql_pconnect() 앞에 @를 사용했다는 것에 유의하십시오. 그것은 모든 오류를 억제합니다.이 경우는 매우 나쁜 생각입니다. 그것을 제거하면 아마 출력을 볼 수 있습니다.

그렇지 않으면 :

는 데비안 /etc/php5/apache2/php.ini에 있어야 php.ini 파일을 확인합니다.

display_errors라는 줄을 확인하고 브라우저에서 오류 출력을 원한다면 true로 설정합니다 (프로덕션 시스템에는 권장되지 않지만 디버깅 및 개발 중에는 유용함). (다른 오류 파일이 phpBB를-사이트에 지정되지 않은 경우)

아파치 데비안에서 기본적으로 될 아파치 오류 로그 파일에 사용자의 오류를 기록하기에 log_errors 옵션을 지정

/var에/로그/아파치 /error.log

1

"@"를 제거하십시오. mysql_pconnect가 던지는 오류 메시지를 제거하고 있습니다.

Documentation

0

나는 당신이 당신의 PHP를 위해 설치된 MySQL의 확장 기능이 없다 생각합니다. PHP5 이후 PECL 확장이라고 생각합니다. Windows에서 작업하는 경우 pecl.bat 또는 이와 비슷한 내용이 PHP 디렉토리에 있어야합니다. 콘솔을 통해 바로 이동하여 입력하십시오.

pecl download mysql 

그러면 모든 것이 예상대로 작동합니다. 이 일을

+0

이 명령은 단순히 "mysql-1.0.tgz"를 현재 디렉토리에 다운로드합니다. 나는 "pecl install mysql"을 시도하여 얻는다. 버전 1.0으로 이미 설치되어있는 "pear/mysql"패키지를 건너 뛰고있다. –