如果您想在短时间使用CodeIgniter“ AppStarter”构建网站;
另外,使用Portainer管理Docker容器。
ARM64/AARCH64,X86-64
apk,dnf,yum,apt/apt-get,zypper
创建规则以打开Internet或特定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 。
克隆此存储库或将文件从此存储库复制到新文件夹中。
确保将用户添加到docker组。
下载
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
编辑.env文件以更改LOCAL_TIMEZONE , DOMAIN_NAME , DIRECTORY_PATH , LETSENCRYPT_EMAIL , DB_USER , DB_PASSWORD , DB_NAME , DB_TABLE_PREFIX , DATABASE_CONT_NAME MYSQL_ROOT_PASSWORD DATABASE_IMAGE_NAME DATABASE_PACKAGE_MANAGER 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 for mysql
database_admin_commandline = mariadb-admin用于Mariadb, mysqladmin for MySQL
和
cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
在./phpmyadmin/apache2/sites-available/default-ssl.conf文件中将example.com更改为您的域名。
cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
更改pma_controluser和db_authentication_password in ./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
然后重新加载Web服务器SSL配置
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
您可以在守护程序模式下使用up命令(通过添加-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
为了删除所有停止的容器和所有未使用的图像(不仅仅是悬挂图像),请在命令中添加-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
在./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和pool配置文件。
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart codeigniter
在./codeigniter/appstarter文件夹中使用任何FTP客户端程序添加和/或删除CodeIgniter站点文件夹和文件。
您也可以在启动容器后访问https://example.com访问网站。
在./webserver/extra/httpd-ssl.conf文件中添加或删除代码用于自定义apache2/httpd configurations
https://httpd.apache.org/docs/2.4/
REDIS缓存,配置选项连接到存储在缓存配置文件中的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.user.inc.php的文件,其中包含各种用户定义的设置,然后使用:
./phpmyadmin/config.user.inc.php
您也可以访问https://example.com:9090启动容器后访问phpmyadmin。
第一个授权屏幕(htpasswd;用户名或密码)和phpmyadmin登录屏幕用户名和密码与.env文件中提供的密码相同。
这将每天一次备份数据库/转储SQL和HTML卷中的所有文件和文件夹,并使用backup-2023-01-01-01-01t10-18-00.gz将其写入./backups。
BACKUP_CRON_EXPRESSION: '20 01 * * *' UTC时区。