Codeigniter "Appstarter"가있는 웹 사이트를 단기간에 구축하려면;
또한 Portainer와 함께 Docker 컨테이너를 관리하십시오.
ARM64/AARCH64, X86-64
APK, DNF, YUM, APT/APT-GET, ZYPPER
인터넷 또는 특정 IPv4 주소 또는 범위에 포트를 열 수있는 규칙을 만듭니다.
다운로드
git clone https://github.com/damalis/full-stack-apache2-codeigniter-for-everyone-with-docker-compose.git
docker-compose.yml 이 저장되어 실행되는 폴더로 터미널과 cd 열십시오.
cd full-stack-apache2-codeigniter-for-everyone-with-docker-compose
chmod +x install.sh
./install.sh
기계에 최신 버전의 Docker 및 Docker Compose가 설치되어 있는지 확인하십시오.
이 저장소를 복제 하거나이 저장소의 파일을 새 폴더로 복사하십시오.
docker Group에 사용자를 추가하십시오.
다운로드
git clone https://github.com/damalis/full-stack-apache2-codeigniter-for-everyone-with-docker-compose.git
docker-compose.yml 이 저장되어 실행되는 폴더로 터미널과 cd 열십시오.
cd full-stack-apache2-codeigniter-for-everyone-with-docker-compose
예제 환경을 .env 로 복사하십시오
cp env.example .env
LOCAL_TIMEZONE , DOMAIN_NAME , DIRECTORY_PATH LETSENCRYPT_EMAIL db_user, db_password, db_name, DB_PASSWORD , mysql_root_password, DB_USER , DB_NAME , DB_TABLE_PREFIX MYSQL_ROOT_PASSWORD db_password, DATABASE_IMAGE_NAME , DATABASE_CONT_NAME , DATABASE_PACKAGE_MANAGER 의 .env 파일 편집. DATABASE_ADMIN_COMMANDLINE , PMA_CONTROLUSER , PMA_CONTROLPASS , PMA_HTPASSWD_USERNAME 및 PMA_HTPASSWD_PASSWORD .
local_timezone = 로컬 타임 존을 볼 수 있습니다
명령 줄에서 directory_path = pwd
database_image_name = mariadb 또는 mysql
database_cont_name = mariadb , mysql 또는 custom name
database_package_manager = apt-get update && apt-get install -y gettext-base for mariadb, microdnf install -y gettext
Database_ADMIN_COMMANDLINE = mariadB, mysqladmin for mysql 를위한 mariadb mariadb-admin
그리고
cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
example.com을 ./phpmyadmin/apache2/sites-available/default-ssl.conf 파일의 도메인 이름으로 변경하십시오.
cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
./database/phpmyadmin/sql/create_tables.sql.template 파일에서 pma_controluser 및 db_authentication_password를 변경하십시오.
첫째 : 외부 볼륨을 생성합니다
docker volume create --driver local --opt type=none --opt device=${PWD}/certbot --opt o=bind certbot-etc
docker compose up -d
그런 다음 WebServer SSL 구성에 대한 Reloading
docker container restart webserver
컨테이너는 이제 제작되고 작동합니다. 브라우저 주소의 구성된 IP를 사용하여 CodeIgniter 설치에 액세스 할 수 있어야합니다. https://example.com .
편의를 위해 호스트 파일에 새 항목을 추가 할 수 있습니다.
docker compose -f portainer-docker-compose.yml -p portainer up -d
Portainer를 사용하여 Docker 관리는 Docker, Docker Swarm이 매우 직관적 인 GUI 및 API를위한 결정적인 컨테이너 관리 도구입니다.
컨테이너를 시작한 후 https://example.com:9001 방문하여 Portainer에 액세스 할 수 있습니다.
Docker PS 명령은 기본적으로 실행되는 컨테이너 만 표시합니다. 모든 컨테이너를 보려면 -a (또는 -all) 플래그를 사용하십시오.
docker ps -a
Daon Mode ( -d 인수로 추가함으로써) 또는 start 명령을 사용하여 up 명령으로 컨테이너를 시작할 수 있습니다.
docker compose start
docker compose stop
모든 컨테이너를 중지하고 제거하려면 down 명령을 사용합니다.
docker compose down
Portainer 및 기타 컨테이너를 제거하려면 :
docker rm -f $(docker ps -a -q)
데이터베이스를 유지하는 데 사용되는 데이터베이스 볼륨을 제거 해야하는 경우 -v 사용하십시오.
docker compose down -v
외부 certbot-etc 및 portainer 및 다른 볼륨을 제거하려면 :
docker volume rm $(docker volume ls -q)
컨테이너와 관련이없는 모든 이미지, 컨테이너, 볼륨 및 네트워크를 삭제합니다 (매달려).
docker system prune
정지 된 컨테이너와 사용되지 않은 모든 이미지 (매달려있는 이미지가 아니라)를 추가로 제거하려면 -a 플래그를 명령에 추가하십시오.
docker system prune -a
Portainer 및 기타 이미지를 제거하려면 :
docker rmi $(docker image ls -q)
모든 파일을 새 디렉토리로 복사하십시오.
이제 up 명령을 사용할 수 있습니다.
docker compose up -d
https://docs.docker.com/engine/reference/run/
브라우저에 "Codeigniter에 오신 것을 환영합니다 ..."페이지가 표시됩니다. 그렇지 않은 경우 PHP 설치가 Codeigniter의 요구 사항을 충족하는지 확인하십시오.
https://example.com
Custom Php.ini 구성을위한 ./php-fpm/php/conf.d/security.ini 파일에서 코드 추가 또는 제거
https://www.php.net/manual/en/configuration.file.php
변경 사항 사용자 정의 호스트 구성 ./php-fpm/php-fpm.d/z-www.conf www.conf 서비스를 다시 시작해야합니다. 그런 다음 서비스를 다시 시작해야합니다. FPM은 구성 파일에 php.ini 구문을 사용합니다 -Php-fpm.conf 및 풀 구성 파일.
https://www.php.net/manual/en/install.fp.configuration.php
docker container restart codeigniter
./codeigniter/appstarter 폴더의 FTP 클라이언트 프로그램을 사용하여 CodeInter 사이트 폴더 및 파일을 추가 및/또는 제거하십시오.
컨테이너를 시작한 후 https://example.com 방문하여 웹 사이트에 액세스 할 수 있습니다.
custom apache2/httpd 구성을위한 ./webserver/extra/httpd-ssl.conf 파일에서 코드 추가 또는 제거
https://httpd.apache.org/docs/2.4/
Cache Configuration 파일에 저장된 Redis 서버에 연결하려는 Redis Cache, 구성 옵션.
사용 가능한 옵션은 다음과 같습니다.
<?php
namespace Config;
use CodeIgniterConfigBaseConfig;
class Cache extends BaseConfig
{
// ...
public $redis = [
'host' => 'redis',
'password' => null,
'port' => 6379,
'timeout' => 0,
'database' => 0,
];
// ...
}
Codeigniter는 가장 인기있는 형태의 빠르고 역동적 인 캐싱 주위에 포장지를 특징으로합니다. 파일 기반 캐싱을 제외한 모든 서버 요구 사항이 필요하며 서버 요구 사항이 충족되지 않으면 치명적인 예외가 발생합니다.
https://codeigniter.com/user_guide/libraries/caching.html?highlight=cache
Config.user.inc.php의 다양한 사용자 정의 설정으로 파일을 작성한 다음 다음을 사용하여 컨테이너에 연결하여 자신의 사용자 정의 config.inc.php 설정 (예 : 구성 저장소 설정)을 추가 할 수 있습니다.
./phpmyadmin/config.user.inc.php
컨테이너를 시작한 후 https://example.com:9090 방문하여 phpmyadmin에 액세스 할 수 있습니다.
첫 번째 인증 화면 (htpasswd; username 또는 password) 및 phpmyadmin 로그인 화면 사용자 이름과 비밀번호는 .env 파일에 제공된 것과 동일합니다.
이것은 하루에 한 번 데이터베이스/덤프 SQL 및 HTML 볼륨의 모든 파일과 폴더를 백업하여 Backup-2023-01-01-18-00.tar.gz와 같은 파일 이름으로 ./backups에 작성합니다.
BACKUP_CRON_EXPRESSION: '20 01 * * *' UTC 타임 존.