2011-05-02 4 views
0

그냥 우분투 11.04와 함께 nginx 서버를 설치하고 PHP 프로그램을로드 한 후 MySQL 데이터베이스 쿼리가 실행되지 않는다고 쓰고있었습니다. 나는 PHP 나 MYSQL에서 오류가 없다.MYSQL 쿼리가 실행되지 않거나 에러를 표시하지 않습니다

  1. 내 PDO 연결에 사용되는 사용자는 모든 권한을가집니다.
  2. 내가 어떤 값으로 호스트를 변경할 때, 나는 어떤 오류도 얻지 않는다.

mysql이 연결 오류를 표시하지 않는다고 생각합니다. 사용하도록 설정하려면 어떻게해야합니까? 그냥 mysql.conf를 확인했는데 오류보고와 관련이 없다. 또한 php.ini 및 모든 오류 옵션을 사용할 보였다, 나는 또한 코드에서 사용할 수 있습니다.

실마리가 없습니다. 아무런 종류의 오류보고없이 작동하는 데 쓸모가 없습니다!

감사합니다.

답변

2

nginx에 대한 오류 로그는 어디에 있습니까? 그걸 들여다 봤니? mysql이 실행 중입니까? 시도해보십시오 service mysql status. PHP가 데이터베이스에 연결할 수없는 경우에도 오류가 발생합니다. 쿼리가 실행되고 있지 않다는 것을 어떻게 알 수 있습니까? 내 말은 증상은 무엇인가? 쿼리 인데 입력 내용이 잘못되었을 수 있습니다.

가장 중요한 문제를 격리하려고 시도하는 것입니다. 1) curl -v http://your _server을 사용하여 nginx가 페이지를 실제로 제공하는지 확인하십시오. 2) 루트 웹 디렉토리에 phpinfo.php 파일을 <? phpinfo(); ?>으로 설정하고 mysql 설정을 확인하고 php 용 로그 파일을 기록하는 위치를 확인하십시오. 3) phpmyadmin을 설치하고이를 사용하여 데이터베이스에 연결할 수 있는지 확인하십시오.

위의 각 항목은 최소한 하나의 요소 (프로그램, PHP, nginx, mysql)를 제거하므로 문제의 원인을 좁힐 수 있습니다.

편집 : 항목 2에 대한 추가 지침. error_log 설정을 찾고 있습니다. 그것이 설정되지 않은 경우 오류가 stderr로 이동해야하는데,이 경우에는 nginx 로그 파일이 될 것이라고 생각합니다 (적어도 아파치에서는 사실임). error_reporting이 적절한 값으로 설정되어 있는지 확인할 수도 있습니다 (지금 error_reporting = E_ALL을 시도하십시오). php.ini 파일이나 프로그램에서이 두 가지를 설정할 수 있습니다. 자세한 내용은 PHP Error Handling Runtime Configuration의 설명서를 참조하십시오. 나는 오류가 로그 파일에 표시 프로그램의 시작 부분에 내 프로그램에 오류가 트리거링 및 확인하여 전성 검사를 할 것 :

당신이 당신의 메시지가 나타나면
trigger_error('Want to be a rock star test message', E_USER_WARNING); 

, 당신은 바로 있어요 로그 파일과 다른 오류를 찾아야합니다 (mysql이 문제가 아닐지라도, 제가 전에 언급 한 것처럼 나쁜 입력이 될 수 있습니다).

+0

@Gabriel,이 답변을 귀하의 질문에? 나는 하루 동안이 일을 보지 못했다. –

+0

미안 해요, 토드, 날아 와서 대답 할 수 없었어요! 1. MySQL이 실행 중입니다. 2. 내 사이트가 NGINX에 의해 서비스되고 있습니다. 3. PHPMYADMIN이 작동 중입니다. 4. PHP 로그가 어디에 쓰여 있는지 확인합니다! –

+0

phpinfo 보고서에서 mysql 로그 매개 변수 또는 유사 항목을 찾을 수 없으므로 어떤 정보인지 알려 주시겠습니까? –

관련 문제