on
도커 PHP7.4, CI4(코드이그나이터4) 까지
도커 PHP7.4, CI4(코드이그나이터4) 까지
반응형
준비 사항
1. 도커 준비
2. 기존에 사용하던 PHP7.2 버전 컨테이너로 설치하고 PHP7.4로 업그레이드 및 코드이그나이터4 설치 진행 함
1. docker 이미지 다운로드
docker pull tplatform/aws-linux-2-httpd24-php72
2. 컨테이너 생성
docker run -d --name jay -p 81:80 -v J:\j\:/var/www/html tplatform/aws-linux-2-httpd24-php72
* docker run -d
detached 모드로 컨테이너 생성
* --name jay
jay 라는 이름을 가진 컨테이너 생성
* -p 81:80
127.0.0.1:81 로 접속 하도록 81번 포트 지정
* -v J:\j\:/var/www/html
J드라이브 안의 j폴더에 web 기본 폴더로 지정
* tplatform/aws-linux-2-httpd24-php72
다운받은 이미지 중 aws-linux-2-httpd24-php72 설치
3. 컨테이너 실행 및 bash 실행(서버 접속)
docker exec -it jay /bin/bash
4. 아마존 리눅스 php 버전 업그레이드
* CI4는 PHP7.3 이상에서만 지원되는 프레임워크.
amazon-linux-extras |grep php amazon-linux-extras disable php7.2 amazon-linux-extras install -y php7.4 amazon-linux-extras enable php7.4
* php -v PHP버전 확인 시, #PHP Startup: Unable to load dynamic library 'newrelic.so' 관련 오류가 뜬다면 newrelic 라이브러리 설치 진행 필요
newrelic-install install
5. php 라이브러리 설치
yum install php-cli php-common php-gd php-mbstring php-mysqlnd php-pdo php-fpm php-xml php-opcache php-zip php-bcmath
6. 아파치 재시작 및 컨테이너 재시작
apachectl restart exit
docker restart jay
7. 컨테이너 접속
docker exec -it jay /bin/bash
8. composer 설치 (global)
https://getcomposer.org/download/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php mv composer.phar /usr/local/bin/composer
컴포저 설치 후 "composer"라고 커맨드를 입력해서 제대로 설치 됐는지 확인
9. CI4(코드이그나이터4) Composer로 설치
http://ci4doc.cikorea.net/installation/installing_composer.html
composer create-project codeigniter4/appstarter project-root
위 명령문 실행
As there is no 'unzip' nor '7z' command installed zip files are being unpacked using the PHP zip extension.
This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost.
Installing 'unzip' or '7z' may remediate them.
-- 서버에 zip, unzip 설치가 안돼있어서 뜨는 경고. zip과 unzip 설치진행
yum install zip unzip
프로젝트 루트/appstarter 밑에 아래와 같이 설치가 진행됐을건데, 해당 파일과 폴더를 루트폴더로 이동 시킴
10. 자 마지막.
기억 할 것!
* CI4는 index.php를 사용하지 않는다. 실행에 필요한 폴더는 public폴더이고, web의 경로는 public 폴더로 맞춰줘야한다.
* .htaccess 파일 생성 및 아파치 rule을 rewrite 해야함
아파치 관련하여 rewrite module이 없는 경우, 관련 설치, 설정이 필요하지만,
위에 설명한대로 따라왔다면 모듈 설치나 설정 없이 .htaccess 파일 생성으로 충분히 작동합니다.
성공!
from http://sobob.tistory.com/43 by ccl(S) rewrite - 2021-11-18 15:00:56