php 상위버전에서 에러 날 때 php.ini 수정만으로 잡을 수 있을까요?
본문
안녕하세요.
그동안 컴퓨터에서 AutoSet 써서 작업물 관리하다가 얼마 전 라라곤을 깔았는데,
php버전 때문에 그동안 작업한 작업물들 에러코드를 쏟아내네요.
원인은 알아서 하나하나 수정하고 있긴 한데,
홈페이지 하나당 수정할 곳이 여기저기 너무 많고,
이런 홈페이지가 수십개입니다.
앞으로는 php 상위버전에 맞춰서 작업하겠지만,
그동안 작업했던건 웹호스팅에서는 에러나지 않는지라 보관한 소스도 수정 안 하고 그대로 두고 싶은데, 가끔 확인 시 저렇게 에러를 뿜어내버리니...
일단
<? 를 써서 에러 나는건 <?php 로 수정 안하고,
php.ini에서
short_open_tag = Off 를
short_open_tag = On 로 수정하니 해결되었습니다.
그런데, 아직도 따옴표 안한것 때문에 몇몇 곳에서 에러가 나고 있습니다.
(this will throw an Error in a future version of PHP)
예를들면
$list[$i][wr_1]
$list[$i]['wr_1']
이런거...
검색해보니
error_reporting = E_ALL
를
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
로 변경하면 된다는 글이 보이기에 수정해봤지만 여전히 에러가 나네요.
혹시 이건 소스 수정 안 하고, php.ini에서 수정만으로 에러 안 뜨게 할 수 없을까요?
답변 7
php 7.2.15 파일은 https://windows.php.net/downloads/releases/archives/
마리아 DB는 https://downloads.mariadb.org/mariadb/10.1.38/
아파치는 https://www.apachelounge.com/download/VC15/
로 테스트해보세요
php.ini 설정 후 아파치는 재실행 하셨나요?
오류 메시지를 제대로 확인하지 않았군요.
PHP v7.2 미만
Notice: Use of undefined constant 문자열 - assumed '문자열' in PHP파일 on line 라인번호
& ~E_NOTICE 로 해결
PHP v7.2 이상
Warning: Use of undefined constant 문자열 - assumed '문자열' (this will throw an Error in a future version of PHP) in PHP파일 on line 라인번호
& ~E_WARNING 으로 해결
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING
또는 공통으로 호출되는 PHP 파일 상단에 error_reporting('설정값');
라라곤의 장점이 다양한 php버전을 설치 가능하다는 것입니다.
에러가 난다고 하면 php 5.6 버전과 해당되는 apache, php를 설치해 놓고 (아마도 VC14로..)
잠깐 잠깐 보실 때, 해당 버전을 선택해서 실행하시면 됩니다.
아마도 이전 php버전이 7.0 일 것 같습니다. 7.2로 올라가면서 많이 바뀌었습니다.
다시 한번 확인하시고 7.0버전을 설치해서 테스트해보세요
음 "php버전이 php7.2.15, PHP7.0 등입니다." 이 말이 일단 안됩니다.
차라리 관리자에 가면 phpinfo가 있는 데 그것을 찍어서 올려 보세요.