Si desea crear un sitio web con CodeIgniter "AppStarter" en poco tiempo;
Además, administre contenedores Docker con Portainer.
ARM64/AARCH64, X86-64
apk, dnf, yum, apt/apt-get, zypper
Cree reglas para abrir puertos a Internet, o a una dirección o rango de IPv4 específica.
descargar con
git clone https://github.com/damalis/full-stack-nginx-codeigniter-for-everyone-with-docker-compose.git
Abra un terminal y cd a la carpeta en la que docker-compose.yml se guarda y se ejecuta:
cd full-stack-nginx-codeigniter-for-everyone-with-docker-compose
chmod +x install.sh
./install.sh
Asegúrese de tener las últimas versiones de Docker y Docker Compose instaladas en su máquina.
Clone este repositorio o copie los archivos de este repositorio en una nueva carpeta.
Asegúrese de agregar su usuario al grupo docker .
descargar con
git clone https://github.com/damalis/full-stack-nginx-codeigniter-for-everyone-with-docker-compose.git
Abra un terminal y cd a la carpeta en la que docker-compose.yml se guarda y se ejecuta:
cd full-stack-nginx-codeigniter-for-everyone-with-docker-compose
Copiar el entorno de ejemplo en .env
cp env.example .env
Editar el archivo .env para cambiar los valores de LOCAL_TIMEZONE , DOMAIN_NAME , DIRECTORY_PATH , LETSENCRYPT_EMAIL , DB_USER , DB_PASSWORD , DB_NAME , DB_TABLE_PREFIX , mysql_root_password, MYSQL_ROOT_PASSWORD , DATABASE_IMAGE_NAME , DATABASE_CONT_NAME , DATABASE_PACKAGE_MANAGER , DATABASE_ADMIN_COMMANDLINE , PMA_CONTROLUSER , PMA_CONTROLPASS , PMA_HTPASSWD_USERNAME y PMA_HTPASSWD_PASSWORD .
Local_Timezone = para ver las zonas horarias locales
Directorio_path = pwd en línea de comandos
Database_image_name = mariadb o mysql
Database_cont_name = mariadb , mysql o custom name
Database_package_manager = apt-get update && apt-get install -y gettext-base para mariadb, microdnf install -y gettext para mysql
Database_admin_commandline = mariadb-admin para mariadb, mysqladmin para mysql
y
cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
Cambie Ejemplo.com a su nombre de dominio en el archivo ./phpmyadmin/apache2/sites-available/default-ssl.conf .
cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
Cambie PMA_CONTROLUSER y DB_Authentication_Password en ./database/phpmyadmin/sql/create_tables.sql.template archivo.
En primer lugar: creará un volumen externo
docker volume create --driver local --opt type=none --opt device=${PWD}/certbot --opt o=bind certbot-etc
docker compose up -d
luego recarga para la configuración SSL de servidor web
docker container restart webserver
Los contenedores ahora están construidos y ejecutados. Debería poder acceder a la instalación de CodeIgniter con la IP configurada en la dirección del navegador. https://example.com .
Por conveniencia, puede agregar una nueva entrada a su archivo de hosts.
docker compose -f portainer-docker-compose.yml -p portainer up -d
Administrar Docker con Portainer es la herramienta definitiva de gestión de contenedores para Docker, Docker Swarm con su GUI y API altamente intuitiva.
También puede visitar https://example.com:9001 para acceder a Portainer después de iniciar los contenedores.
El comando Docker PS solo muestra los contenedores en ejecución de forma predeterminada. Para ver todos los contenedores, use el indicador -a (o -todo):
docker ps -a
Puede iniciar los contenedores con el comando up en modo demonio (agregando -d como argumento) o utilizando el comando start :
docker compose start
docker compose stop
Para detener y eliminar todos los contenedores, use el comando down :
docker compose down
Para eliminar Portainer y los otros contenedores:
docker rm -f $(docker ps -a -q)
Use -v si necesita eliminar el volumen de la base de datos que se utiliza para persistir en la base de datos:
docker compose down -v
Para eliminar CERTBOT-ETC y Portainer externos y los otros volúmenes:
docker volume rm $(docker volume ls -q)
Elimine todas las imágenes, contenedores, volúmenes y redes que no están asociados con un contenedor (colgando):
docker system prune
Para eliminar adicionalmente los contenedores detenidos y todas las imágenes no utilizadas (no solo las colgantes), agregue la bandera -A al comando:
docker system prune -a
Para eliminar Portainer y las otras imágenes:
docker rmi $(docker image ls -q)
Copie todos los archivos en un nuevo directorio:
Ahora puede usar el comando up :
docker compose up -d
https://docs.docker.com/engine/reference/run/
Debería ver la página "Bienvenido a CodeIgniter ..." en su navegador. Si no, verifique si su instalación de PHP satisface los requisitos de Codeigniter.
https://example.com
Agregue o elimine el código en el archivo ./php-fpm/php/conf.d/security.ini para configuraciones personalizadas de php.ini
https://www.php.net/manual/en/configuration.file.php
Debe realizar cambios de configuraciones de host personalizadas ./php-fpm/php-fpm.d/z-www.conf , entonces debe reiniciar el servicio, FPM usa sintaxis php.ini para su archivo de configuración: php-fpm.conf y archivos de configuración del grupo.
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart codeigniter
Agregue y/o elimine las carpetas y archivos del sitio de CodeIgliter con cualquier programa de cliente FTP en la carpeta ./codeigniter/appstarter .
También puede visitar https://example.com para acceder al sitio web después de iniciar los contenedores.
Agregue o elimine el código en el archivo ./webserver/templates/nginx.conf.template para configuraciones NGINX personalizadas
https://docs.nginx.com/nginx/admin-guide/basic-functity/managing-configuration-files/
Redis Cache, opciones de configuración para conectarse al servidor Redis almacenado en el archivo de configuración de caché.
Las opciones disponibles son:
<?php
namespace Config;
use CodeIgniterConfigBaseConfig;
class Cache extends BaseConfig
{
// ...
public $redis = [
'host' => 'redis',
'password' => null,
'port' => 6379,
'timeout' => 0,
'database' => 0,
];
// ...
}
CodeIgniter presenta envoltorios alrededor de algunas de las formas más populares de almacenamiento en caché rápido y dinámico. Todos menos el almacenamiento en caché basado en archivos requieren requisitos específicos del servidor, y se lanzará una excepción fatal si no se cumplen los requisitos del servidor.
https://codeigniter.com/user_guide/libraries/caching.html?highlight=cache
Puede agregar su propia configuración de configuración personalizada.
./phpmyadmin/config.user.inc.php
También puede visitar https://example.com:9090 para acceder a phpmyadmin después de iniciar los contenedores.
La primera pantalla de autorización (htpasswd; nombre de usuario o contraseña) y la pantalla de inicio de sesión de PhpMyAdmin el nombre de usuario y la contraseña es la misma que se suministra en el archivo .env .
Esto respaldará todos los archivos y carpetas en la base de datos/volúmenes SQL y HTML, una vez al día, y lo escribirá ./backups con un nombre de archivo como Backup-2023-01-01T10-18-00.tar.gz
BACKUP_CRON_EXPRESSION: '20 01 * * *' La zona horaria de UTC.