코드이그나이터4 클라우드에 배포하기 - 6 - 배포 오류 잡기

고은연·2021년 11월 19일
1

http://URL 로 이동해 보면 Class 'App\helpers\LoginHelper' not found 오류가 납니다.

소스코드를 확인해 보면, LoginHelper의 네임스페이스 helpers의 대소문자가 틀렸음을 알 수 있습니다. Helpers여야 하는데 helpers로 적었네요.
app/Helpers/LoginHelper.php

<?php
namespace App\helpers;

개발 환경인 윈도우즈에서는 문제가 없었는데, 왜 리눅스 서버에 업로드했더니 문제가 발생했을까요? 윈도우즈는 파일 경로에 대소문자를 구분하지 않지만 리눅스는 파일 경로에 대소문자를 구분하기 때문입니다.

PSR에 따라 네임스페이스 각 경로의 첫번째 글자를 대문자로 바꾸겠습니다.
app/Helpers/LoginHelper.php

<?php
namespace App\Helpers;

우리는 헬퍼가 하나 더 있죠. 세션 헬퍼입니다. 함께 수정합니다.
app/Helpers/SessionHelper.php

<?php
namespace App\Helpers;

헬퍼를 사용하는 곳도 수정합니다.
app/Controllers/Post.php

use App\Helpers\LoginHelper;

로컬에서 단위 테스트가 통과하는지 확인합니다.

php phpunit.phar --testdox --verbose  tests/controller/PostTests.php

한번 더 배포해 보겠습니다.
우선 로컬에서 git 서버로 푸시합니다.

git add .
git commit -m "[Helpers 네임스페이스 오류 수정]"
git push origin main

서버에 접속 후 git에서 소스코드를 pull합니다.

cd /home/bitnami/markdown-blog/ci4
git pull

잘 내려받아졌습니다.

Fast-forward
 src/sample/app/Controllers/Post.php            | 2 +-
 src/sample/app/Helpers/LoginHelper.php         | 2 +-
 src/sample/app/Helpers/SessionGlobalHelper.php | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

git에서 내려받은 프로젝트 파일을 /home/bitnami/htdocs/markdown-blog로 복사합니다.
소스코드

cp /home/bitnami/markdown-blog/ci4/src/sample/app/Controllers/Post.php /opt/bitnami/apache2/htdocs/markdown-blog/app/Controllers/Post.php

cp /home/bitnami/markdown-blog/ci4/src/sample/app/Helpers/LoginHelper.php /opt/bitnami/apache2/htdocs/markdown-blog/app/Helpers/LoginHelper.php

cp /home/bitnami/markdown-blog/ci4/src/sample/app/Helpers/SessionGlobalHelper.php /opt/bitnami/apache2/htdocs/markdown-blog/app/Helpers/SessionGlobalHelper.php

잘 보이는지 최종적으로 확인합니다.

profile
중년 아저씨. 10 + n년차 백엔드 개발자. 스타트업과 창업, 솔로프리너와 1인 기업에 관심 많아요.

1개의 댓글

comment-user-thumbnail
2022년 1월 3일

궁금한게 있습니다

routes>get(/,Home::index);routes->get('/', 'Home::index');routes->add('/test','Hm::index');

이렇게 설정 후 /test 로 접속하게되면 /public/test/index.php가 동작하는데 어떻게 해결해야되나요?

답글 달기