【 PHP 】PHP8に入門してみた 21日目 環境構築を進める ( DBを構築する )
PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。
環境構築を進める
初期データを投入する
それでは学習用のデータを登録してきたいと思います。
初期データ取得
初期データは参考書に記載されている下記URLからダウンロードします。
このサイトの「ダウンロード」をクリックします。
「本書掲載サンプルコード (約xxxxxKB) 」をクリックしダウンロードします。
ダウンロードして解凍します。selfphp/selfphp.sql
が初期データです。
Dockerコンテナ生成時に初期データを使用する
DockerのMariaDBはコンテナ生成時に/docker-entrypoint-initdb.d
フォルダをホストとつなげる(バインド)と
コンテナ生成処理の中で初期データ等を自動でロードしてくれる仕組みがあります。これを利用します。
ホスト側はD:\dockers\files\php8_study\.devcontainer\docker\mysql\init_data
をコンテナとバインドすることにします。
.devcontainer/docker-compose.ymlを修正(抜粋)
mysql:
image: mariadb:10.8.3
ports:
- "${IP_ADDRESS_SETTING}3306:3306"
volumes:
- ./mysql:/var/lib/mysql
- ./docker/mysql/init_data/:/docker-entrypoint-initdb.d # ★追加
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD-docker}
MYSQL_USER: ${DB_USERNAME-docker}
MYSQL_PASSWORD: ${DB_PASSWORD-docker}
MYSQL_DATABASE: ${DB_DATABASE-docker}
TZ: ${TIME_ZONE-UTC}
command:
- mysqld
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
.devcontainer/docker/mysql/init_dataフォルダ
さらに本書では「データベース作成」と「ユーザ作成」を行っているのでこのSQLを追加しなければいけません。
まずはselfphp.sql
を02_selfphp.sql
に変更します。
次に02_selfphp.sql
の1行目にUSE selfphp;
を追加しておきます。
次に01_firststep.sql
を作成し以下のように記述します。
-- データベース作成
CREATE DATABASE selfphp CHARCTER SET utf8;
-- ユーザ作成
GRANT ALL PRIVILEGES ON selfphp.* TO selfuser@localhost IDENTIFIED BY 'selfpass';
init_dataフォルダ配下の改行コードは「Windows改行コード」ではなく、「Linuxの改行コード」に変換しておきます。
MriaDB削除
MariaDB起動後に生成されたファイルやフォルダを削除しておきます。
.devcontainer/mysql
フォルダを削除します。
PowerShellを起動し以下のコマンドを実行します。(D:\dockers\files\php8_study\.devcontainer
に移動しておきます。)
PS D:\dockers\files\php8_study\.devcontainer> docker-compose -p php8_study_devcontainer rm -f mysql
メモ
なにも考えずにAdsenceの広告を「自動」にしていたらサイトが広告だらけ!
今のいままで気づきませんでした。
自身の設置した広告ユニット + 自動配置された広告ユニット でめちゃめちゃ(笑)
「自動」を切り、自身の設置したユニットだけ残しました。
ディスカッション
コメント一覧
まだ、コメントがありません