우선 ThinkPHP3.2.3은 php7을 지원하나요?
이전 프로젝트는 Windows 환경에서 Apache2.4.17+php5.x 버전으로 배포되었는데, 고객 측 네트워크 보안 검사로 인해 apache, php의 고위험 취약점을 포함해 수백개에 달하는 취약점이 발견되었습니다. 긴급하게 복구가 필요한 경우가 많으며, 복구하지 않을 경우 사이트가 폐쇄됩니다.
그래서 소프트웨어 공급업체에 연락했는데 업그레이드에 협조하겠다고 했지만 결국 업그레이드에 실패했다는 답변은 ThinkPHP3.2.3은 php7에 배포할 수 없다는 것이었습니다.
그래서 혼자서 3~4일 더듬어본 끝에 드디어 업그레이드에 성공했습니다. 이제 전반적인 과정을 알려드리겠습니다.
권장(무료): PHP7
1. Apache 업그레이드, 다운로드 주소 http://httpd.apache.org/download.cgi, 다운로드 버전은 2.4.33
가장 중요한 것은 구성 파일은 다음과 같습니다.
apache loading php support
PHPIniDir d:/GPS-LOCK/php/php.ini
LoadModule php7_module D:/GPS-LOCK/php/php7apache2_4.dll
Encountered 이 단계에서 나는 많은 문제에 직면했습니다. PHPIniDir 경로가 활성화되면 Apache를 시작할 수 없습니다. 마지막으로 php.ini 파일이 php_ptheads.dll 멀티스레딩을 참조하는 것을 발견했습니다. 반복적인 시도 끝에 문제가 해결되었습니다.
2. PHP 업그레이드, 다운로드 주소: https://windows.php.net/download/ 여기서 다운로드는 7.2.26입니다.
이제 php7을 업그레이드할 때 예상되는 문제점을 요약해 보겠습니다
1. 여기에 설치됩니다. php7에 해당하는 컴파일된 vc++ 클래스 라이브러리 버전인 vc_redist.x64.exe가 vc15
2와 함께 설치됩니다. sql server 데이터베이스 지원
이는 php7이 기본적으로 SQL Server 관련 dll을 로드하지 않기 때문입니다.
3, SQL Server용 PHP용 Microsoft 드라이버 https://www.microsoft.com/en-us/download/details.aspx?id=20098을 다운로드해야 합니다. 버전 7.2
를 다운로드했습니다. 위치 파일을 다음과 같이 수정합니다. follow
4. php7의 php.ini 파일은 php_.dll을 생략하고 위와 같이 구성하면 됩니다. 현재는 압축을 푼 파일을 phpext 디렉터리에 복사해야 합니다. 시스템은 php7에서 정상적으로 실행될 수 있습니다. 결과적으로 멀티스레딩을 사용하려면 PHP가 pthread를 지원해야 합니다. 이제 php.ini 파일에 확장=pthreads를 추가하면 아파치를 다시 시작할 수 없습니다. ptheads는 cli 모드에서 실행해야 하는 것으로 나타났습니다. ptheads 다운로드 주소는 https://windows.php.net/downloads/pecl/releases/pthreads/
다운로드 패키지의 압축을 해제하세요
1. php_pthreads.dll을 phpext 디렉토리에 복사하세요.
아파치를 다시 시작했는데 ptheads가 cli 모드에서 실행되어야 한다는 걸 발견했습니다. 내 솔루션은 두 개의 php.ini 구성 파일을 만드는 것입니다. 하나는 사이트에서 php.ini를 사용하고 다른 하나는 php-cli.ini 파일을 사용하는 것입니다. 이번에 드디어 업그레이드 경로가 완료되었습니다.
작가는 PHP 전공이 아니기 때문에 여러 차례 우회를 했으나 마침내 모든 사람이 이 문제에 직면하면 함께 소통하고 토론할 수 있습니다.
위 내용은 ThinkPHP3.2.3을 php5에서 php7로 업그레이드하는 과정 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!