หากคุณต้องการสร้างเว็บไซต์ด้วย CodeIgniter "AppStarter" ในเวลาอันสั้น
นอกจากนี้ยังจัดการคอนเทนเนอร์ Docker กับ Portainer
ARM64/AARCH64, x86-64
apk, dnf, yum, apt/apt-get, zypper
สร้างกฎเพื่อเปิดพอร์ตไปยังอินเทอร์เน็ตหรือไปยังที่อยู่หรือช่วง IPv4 ที่เฉพาะเจาะจง
ดาวน์โหลดด้วย
git clone https://github.com/damalis/full-stack-nginx-codeigniter-for-everyone-with-docker-compose.git
เปิดเทอร์มินัลและ cd ไปยังโฟลเดอร์ที่บันทึกและเรียกใช้ docker-compose.yml :
cd full-stack-nginx-codeigniter-for-everyone-with-docker-compose
chmod +x install.sh
./install.sh
ตรวจสอบให้แน่ใจว่าคุณมี Docker และ Docker Compose เวอร์ชันล่าสุดที่ติดตั้งไว้ในเครื่องของคุณ
โคลนที่เก็บนี้หรือคัดลอกไฟล์จากที่เก็บนี้ลงในโฟลเดอร์ใหม่
ตรวจสอบให้แน่ใจว่าได้เพิ่มผู้ใช้ของคุณในกลุ่ม docker
ดาวน์โหลดด้วย
git clone https://github.com/damalis/full-stack-nginx-codeigniter-for-everyone-with-docker-compose.git
เปิดเทอร์มินัลและ cd ไปยังโฟลเดอร์ที่บันทึกและเรียกใช้ docker-compose.yml :
cd full-stack-nginx-codeigniter-for-everyone-with-docker-compose
คัดลอกสภาพแวดล้อมตัวอย่างลงใน .env
cp env.example .env
DATABASE_PACKAGE_MANAGER ไฟล์ .env DATABASE_IMAGE_NAME เปลี่ยนค่าของ LOCAL_TIMEZONE , DOMAIN_NAME , DIRECTORY_PATH , LETSENCRYPT_EMAIL , DB_USER , DB_PASSWORD , DB_NAME MYSQL_ROOT_PASSWORD DB_TABLE_PREFIX , DATABASE_CONT_NAME 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 สำหรับ mariadb, microdnf install -y gettext สำหรับ mysql
database_admin_commandline = mariadb-admin สำหรับ mariadb, mysqladmin สำหรับ mysql
และ
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
เปลี่ยน pma_controluser และ db_authentication_password ใน ./database/phpmyadmin/sql/create_tables.sql.template ไฟล์
ประการแรก: จะสร้างปริมาณภายนอก
docker volume create --driver local --opt type=none --opt device=${PWD}/certbot --opt o=bind certbot-etc
docker compose up -d
จากนั้นโหลดใหม่สำหรับการกำหนดค่า WebServer SSL
docker container restart webserver
ตู้คอนเทนเนอร์ถูกสร้างและวิ่ง คุณควรจะสามารถเข้าถึงการติดตั้ง CodeIGNITER ด้วย IP ที่กำหนดค่าไว้ในที่อยู่เบราว์เซอร์ https://example.com
เพื่อความสะดวกคุณสามารถเพิ่มรายการใหม่ลงในไฟล์โฮสต์ของคุณ
docker compose -f portainer-docker-compose.yml -p portainer up -d
จัดการนักเทียบท่ากับ Portainer เป็นเครื่องมือการจัดการคอนเทนเนอร์ที่ชัดเจนสำหรับนักเทียบท่า Docker Swarm ด้วย GUI และ API ที่ใช้งานง่าย
นอกจากนี้คุณยังสามารถเยี่ยมชม https://example.com:9001 เพื่อเข้าถึง Portainer หลังจากเริ่มคอนเทนเนอร์
คำสั่ง Docker PS แสดงเฉพาะการรันคอนเทนเนอร์โดยค่าเริ่มต้น หากต้องการดูคอนเทนเนอร์ทั้งหมดให้ใช้ธง -a (หรือ -ทั้งหมด):
docker ps -a
คุณสามารถเริ่มคอนเทนเนอร์ด้วยคำสั่ง up ในโหมด Daemon (โดยการเพิ่ม -d เป็นอาร์กิวเมนต์) หรือโดยใช้คำสั่ง start :
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
หากต้องการลบคอนเทนเนอร์หยุดใด ๆ และรูปภาพที่ไม่ได้ใช้ทั้งหมด (ไม่ใช่แค่ห้อยต่อง
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
เพิ่มหรือลบรหัสใน./php-fpm/php/conf.d/security.ini ไฟล์สำหรับการกำหนดค่า php.ini ที่กำหนดเอง
https://www.php.net/manual/en/configuration.file.php
คุณควรทำการเปลี่ยนแปลงการกำหนดค่าโฮสต์ที่กำหนดเอง ./php-fpm/php-fpm.d/z-www.conf จากนั้นต้องรีสตาร์ทบริการ FPM ใช้ไวยากรณ์ php.ini สำหรับไฟล์การกำหนดค่า-php-fpm.conf และไฟล์การกำหนดค่าพูล
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart codeigniter
เพิ่มและ/หรือลบโฟลเดอร์และไฟล์ Codeigniter ไซต์ด้วยโปรแกรมไคลเอนต์ FTP ใด ๆ ในโฟลเดอร์ ./codeigniter/appstarter Appstarter
นอกจากนี้คุณยังสามารถเยี่ยมชม https://example.com เพื่อเข้าถึงเว็บไซต์หลังจากเริ่มคอนเทนเนอร์
เพิ่มหรือลบรหัสใน ./webserver/templates/nginx.conf.template ไฟล์สำหรับการกำหนดค่า nginx ที่กำหนดเอง
https://docs.nginx.com/nginx/admin-guide/basic-functionality/managing-configuration-files/
Redis Cache ตัวเลือกการกำหนดค่าเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Redis ที่เก็บไว้ในไฟล์การกำหนดค่าแคช
ตัวเลือกที่มีอยู่คือ:
<?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.inc.php ที่กำหนดเองของคุณเอง (เช่นการตั้งค่าการจัดเก็บข้อมูลการกำหนดค่า) โดยการสร้างไฟล์ชื่อ config.user.inc.php ด้วยการตั้งค่าที่ผู้ใช้ที่กำหนดไว้ในนั้นแล้วเชื่อมโยงเข้ากับคอนเทนเนอร์โดยใช้:
./phpmyadmin/config.user.inc.php
นอกจากนี้คุณยังสามารถเยี่ยมชม https://example.com:9090 เพื่อเข้าถึง phpmyadmin หลังจากเริ่มคอนเทนเนอร์
หน้าจออนุญาตครั้งแรก (htpasswd; ชื่อผู้ใช้หรือรหัสผ่าน) และหน้าจอเข้าสู่ระบบ phpmyadmin ชื่อผู้ใช้และรหัสผ่านเหมือนกับที่ระบุไว้ในไฟล์. .env
สิ่งนี้จะสำรองไฟล์และโฟลเดอร์ทั้งหมดใน Database/Dump SQL และ HTML เล่มหนึ่งต่อวันและเขียนลงไปที่./backups พร้อมชื่อไฟล์เช่น Backup-20123-01-01T10-18-00.tar.gz
BACKUP_CRON_EXPRESSION: '20 01 * * *' เขตเวลา UTC