정상적인 상황에서는 phpinfo() 페이지가 표시될 수 있습니다. 이 페이지를 표시할 수 있게 된 후 발생하는 문제부터 시작하겠습니다.
PHP 문제는 phpinfo() 페이지에 표시됩니다.
먼저 php.ini의 경로가 올바른지 확인하세요.
Q: php.ini를 구성했습니다. 파일을 저장했지만 서버를 다시 시작한 후에 왜 아무 것도 작동하지 않습니까?
A: 이 문제는 주로 다음과 같은 상황과 관련이 있습니다.
첫 번째 이유는 시스템이 읽은 php.ini 파일이 당시 수정한 php.ini 파일과 일치하지 않기 때문입니다. 1. 의 구성 파일(php.ini) 경로 옵션을 통해 현재 읽고 있는 PHP 서버를 확인할 수 있습니다. phpinfo() php.ini는 무엇입니까?
2. php.ini의 파일 액세스 위치를 변경하려면 아래와 같이 php.ini의 검색 순서를 참조하면 됩니다.
a) SAPI 모듈에 의해 지정된 위치(Apache 2의 PHPiniDir 지시문, CGI 및 CLI의 -c 명령줄 옵션, NSAPI의 php_ini 매개변수, THTTPD의 PHP_INI_PATH 환경 변수)
b) HKEY_LOCAL_MACHINESOFTWAREPHPIniFilePath(Windows 레지스트리 위치)
c) PHPRC 환경 변수 d) 현재 작업 디렉터리(CLI용)
e) 웹 서버 디렉토리(SAPI 모듈용) 또는 PHP가 위치한 디렉토리(Windows의 다른 경우)
f) Windows 디렉터리(C:windows 또는 C:winnt) 또는 --with-config-file-path 컴파일 타임 옵션에 의해 지정된 위치 3. 일반적인 접근 방식: PHPRC 환경 변수를 설정하여,
a) 작업: 내 컴퓨터 마우스 오른쪽 버튼 클릭->속성->고급->환경 변수 b) 시스템 변수 아래에 "변수 이름은 PHPRC이고 변수 값은 php.ini 파일의 파일 경로입니다."로 새 환경 변수를 만듭니다. "
두 번째 이유는: PHP가 해당 확장 라이브러리를 찾지 못했습니다. 1. PHP가 찾은 확장 라이브러리의 위치를 확인합니다. phpinfo()의 Extension_dir 옵션에서 볼 수 있습니다. 2. php.ini에서 Extension_dir 파일을 변경합니다
. 세 번째 이유: IIS를 완전히 다시 시작할 수 없습니다.
1. php.ini에 대한 수정 사항을 적용하려면 현재 사이트뿐만 아니라 완전히 다시 시작해야 합니다.
2. cmd를 입력하고 서버를 중지합니다. net stop iisadmin 서버를 시작합니다. net start w3svc;
Q: 내 PHP에서 MySql 확장 라이브러리를 활성화할 수 없는 이유는 무엇입니까?
A: PHP5.0 이상에서는 MySQL이 기본적으로 활성화되어 있지 않으므로 수동으로 활성화해야 합니다.
1. PHP에서 MySql을 실행하려면 php.ini에서 php_mysql.dll 동적 링크 라이브러리를 활성화해야 합니다. 또한, MySQL 클라이언트 링크 라이브러리, 즉 libmysql.dll 파일에 액세스해야 합니다. php.ini의 확장을 통한 php_mysql.dll 동적 링크 라이브러리 및 libmysql.dll 파일은 libmysql.dll을 system32 디렉토리에 복사하거나 추가할 수 있습니다. PATH 환경 변수에 대한 새 경로입니다.
3. 권장 접근 방식: 향후 PHP 업그레이드를 용이하게 하려면 PATH를 설정하십시오. 시스템 환경 변수에서 PATH 뒤에 "libmysql.dll"이 있는 폴더를 추가하기만 하면 됩니다. 4. [사례] 최근 서버에서 MySql 확장 라이브러리를 찾을 수 없어 프로그램 실행에 실패하는 현상이 발생했습니다. 따라서 모든 파일을 삭제하고 PHP 서버를 재구성하십시오. 그런데 결국 MySql을 설치했을 때 MySql 확장 라이브러리를 활성화할 수 없었습니다.
phpinfo()에서 찾은 정보는 다음과 같습니다.
경로:c:php
PHPRC:C:php
확장_디렉터리:c:phpext
또한, msql, gd2, xml 등의 다른 라이브러리 활성화를 테스트했는데 phpinfo()에서 정상적으로 표시될 수 있어 PHP가 php_mysql.dll 동적 링크 라이브러리를 찾을 수 있음을 증명했으며 MySql의 작동을 위한 또 다른 조건은 다음과 같습니다. MySQL 클라이언트에 쿼리할 수 있도록 하려면 터미널 연결 라이브러리가 libmysql.dll 파일인 것 같습니다.
C 드라이브에서 libmysql.dll 파일을 검색해 보니 system32, php 폴더에 파일이 있는 것을 발견했습니다. 백업을 한 후 system32 에서 libmysql.dll 파일을 삭제하려고 했더니 잠겨 있어서 실행이 안되는 것을 발견했습니다. 삭제할 수는 없지만 이름을 바꿀 수는 있습니다. 이름을 임의로 변경하고 IIS를 다시 시작하면 서버가 정상적으로 실행되었습니다.
추가 사항: 구성 파일(php.ini) 경로가 C:Windows 로 표시되면
php.ini 파일을 읽지 않았다는 의미입니다.
또한 IIS를 사용하여 PHP를 통합할 때 ISAPI 모드와 CGI 모드의 두 가지 방법이 있음을 발견했습니다.
두 가지 방법 모두 phpinfo 페이지를 볼 수 있지만
ISAPI 모드를 사용하면 환경 변수를 읽을 수 없으므로 환경 변수 PHPRC php.ini 경로를 찾을 수 없습니다.
CGI를 사용하면 시스템 파일에 많은 파일을 복사할 필요가 없습니다.