短い時間にcodeigniter「appstarter」を使用してWebサイトを構築する場合。
さらに、PortainerでDockerコンテナを管理します。
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
docker-compose.ymlが保存されて実行されるフォルダーに端子とcdを開きます。
cd full-stack-nginx-codeigniter-for-everyone-with-docker-compose
chmod +x install.sh
./install.sh
DockerとDockerの最新バージョンがマシンにインストールされていることを確認してください。
このリポジトリをクローンするか、このリポジトリからファイルを新しいフォルダーにコピーします。
ユーザーをdockerグループに追加してください。
でダウンロードします
git clone https://github.com/damalis/full-stack-nginx-codeigniter-for-everyone-with-docker-compose.git
docker-compose.ymlが保存されて実行されるフォルダーに端子とcdを開きます。
cd full-stack-nginx-codeigniter-for-everyone-with-docker-compose
環境の例を.envにコピーします
cp env.example .env
.envファイルDATABASE_PACKAGE_MANAGER編集しDB_USER 、 LOCAL_TIMEZONE 、 DOMAIN_NAME 、 DIRECTORY_PATH 、 LETSENCRYPT_EMAIL 、 DB_PASSWORD 、 DATABASE_CONT_NAME DB_NAME値DATABASE_IMAGE_NAME変更しDB_TABLE_PREFIX MYSQL_ROOT_PASSWORD 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 for mariadb、 mysqladmin for 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
コンテナは現在構築され、実行されています。ブラウザアドレスに設定されたIPを使用して、Codeigniterインストールにアクセスできるはずです。 https://example.com 。
便宜上、ホストファイルに新しいエントリを追加できます。
docker compose -f portainer-docker-compose.yml -p portainer up -d
Portainerを使用してDockerを管理することは、非常に直感的なGUIとAPIを備えたDocker、Docker Swarmの決定的なコンテナ管理ツールです。
https://example.com:9001にアクセスして、コンテナを起動した後にPortainerにアクセスすることもできます。
Docker PSコマンドには、デフォルトで実行されているコンテナのみが表示されます。すべての容器を表示するには、-a(または-all)フラグを使用します。
docker ps -a
Daemonモードで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.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はサービスを再起動する必要があります。fpmは、その構成ファイルにphp.ini syntaxを使用します-php-fpm.conf、およびプール構成ファイルを使用します。
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart codeigniter
./codeigniter/appstarterフォルダーにFTPクライアントプログラムを使用して、CodeIgniterサイトフォルダーとファイルを追加および/または削除します。
https://example.comにアクセスして、コンテナを起動した後にWebサイトにアクセスすることもできます。
カスタムnginx構成のために、 ./webserver/templates/nginx.conf.template /nginx.conf.templateファイルにコードを追加または削除します
https://docs.nginx.com/nginx/admin-guide/basic-functial/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.user.inc.phpという名前のファイルを作成して、さまざまなユーザー定義設定を使用して、次のことを使用してコンテナにリンクすることにより、独自のカスタムconfig.inc.php設定(構成ストレージのセットアップなど)を追加できます。
./phpmyadmin/config.user.inc.php
https://example.com:9090にアクセスして、コンテナを起動した後にphpmyadminにアクセスすることもできます。
最初の承認画面(htpasswd; username or password)とphpmyadminログイン画面ユーザー名とパスワードは.envファイルに提供されるものと同じです。
これにより、データベース/ダンプSQLおよびHTMLボリュームのすべてのファイルとフォルダーが1日1回バックアップされ、Backup-2023-01-01t10-18-00.tar.gzのようなファイル名で./backupsに書き込みます。
BACKUP_CRON_EXPRESSION: '20 01 * * *' UTC TimeZone。