인프런 커뮤니티 질문&답변

Henu님의 프로필 이미지
Henu

작성한 질문수

PHP 7+ 프로그래밍: 객체지향

40 - 이미지 (Image)

로컬환경에서 개발 후 운영환경으로 배포 시 발생하는 이슈에 대한 문의입니다.

해결된 질문

작성

·

416

1

질문에 앞서 해당 질문은 'CentOS 7.* 서버쪽으로 배포를 해보던 중에 질문드립니다.' 질문과 연관됩니다.

안녕하세요. 
이번 강의를 통해 만들어본 프로젝트를 운영환경쪽으로 배포해 보고자 합니다.운영환경 서버 S/W 정보는 아래와 같습니다.

[서버 S/W 정보]
1. OS: CentOS 7.9
2. Language: PHP 7.3.27
3. Database: MariaDB 10.4.17
4. Web Server: Apache 2.4
(기본적인 APM 구성을 따르고 있습니다.)
 

현재 아파치 웹 서버의 가상호스트(VirtualHost) 설정을 통해 부여된 도메인으로 접근이 가능하도록 설정해 놓은 상황입니다.

하지만 사이트 접근 시 500 Error 페이지로 전환됨에 따라 PHP error log를 확인해 본 결과 아래와 같은 에러 메시지가 출력되고 있는 상황이었습니다.

PHP Parse error:  syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in {DOCUMENT ROOT}/vendor/painkill2r/inflearn-lecture-lib/src/Application.php on line 27

소스코드를 확인해 보니 Arrow Function에서 문제가 발생하는 것 같아서 문법 지원 버전을 확인해보니 PHP 7.4부터 지원되는 문법으로 확인이 되어 운영환경은 PHP 7.3을 사용하고 있기 때문에 에러 페이지로 전환되는 것으로 원인 파악이 되었는데요.

이런 경우 PHP 버전 업데이트를 하지 않고서는 해결이 불가능한 문제인지 아니면 다른 문법으로 변경을 해서라도 접속이 되게 할 수 있는지 첨언 부탁드립니다.
감사합니다.

답변 2

1

정상우님의 프로필 이미지
정상우
지식공유자

Arrow Functions 는 오직 PHP 7.4 이상에서 동작하고 그 이하에서는 동작하지 않습니다. 이 부분에 대해서는 객체지향 강의가 아닌 <PHP 7+ 프로그래밍> 강의에서 함수를 이야기하는 부분을 참고해주시면 될 것 같습니다. 그 이하에서 동작하게 하려면 fn () => 가 아닌 function () {} 으로 바꾸셔야합니다. 

Henu님의 프로필 이미지
Henu
질문자

답변 감사합니다. 문법을 다운그레이드 시켜보고, 다시한번 시도해 봐야겠네요.

1

Henu님의 프로필 이미지
Henu
질문자

만약, Arrow Function을 사용하지 못하는 환경에서도 동작할 수 있도록 소스코드 변경이 필요하다면

저의 경우에는 해당 문법을 사용하고 있는 모든 소스코드에 변경이 필요한 상황이 될 것 같습니다!

Henu님의 프로필 이미지
Henu

작성한 질문수

질문하기