今日やったことメモ
パフォーマンスチューニングの知見に乏しいので情報を集めてた。 きっかけはこの辺。
で、主にCDNについて調べてみることにした。
CDN、使ったことがあるものの、仕組みを理解してなかったんで。。
そして見つけた分かりやすい記事!
連載分全部読んだら、副産物として、DNS、キャッシュの対象とすべき範囲、キャッシュの種類などなど、色々分かってためになった。
DNSの理解というところで、この記事も役にたった(権威DNSとキャッシュDNSがどういう関係なのか調べてたとこで発見した)
DNS変更した時に、このDNSチェッカーが便利そうだったのでメモがてらURLはっとく。
明日は、Lazy loadとかprefetchの手法について調べよう。
時間があったら、MemcachedとRedisについても。
Docker入門したい私がDockerとお友達になるためのメモ
Dockerの勉強メモ。 WordPressの開発があるんで、Dockerでイメージ作れるようになりたいなーってことで。。
入門動画
www.youtube.com 概念の説明、入門で抑えておくべきところが端的にまとまっててよかった。
www.youtube.com こちらもポイントが端的にまとまっててよかった。
WordPressのDockerイメージ
クィックスタート: Compose と WordPress — Docker-docs-ja 19.03 ドキュメント
Docker公式に解説があるのですよね。(DockerHubにも公式のイメージがあるし)
ですが、docker-composeも上記サイトからわざわざコピペしなくても、ソースを用意してくれてる素敵な方がいらっしゃいました。 github.com
んじゃ、これで開発するかー。となったのですが
Linux User Permission問題
マウントしたボリュームのディレクトリ、Linuxだとroot権限で作られるので、ファイルの読み書きするたびにsudoしたりするのは面倒。 同様の問題にあたっている方が多かったので、Dockerの勉強を兼ねて調べてみた。
ひとまず、先程のwordpress-docker-composeリポジトリをフォークして、この辺を記事を参考にさせていただきつつ、 qiita.com qiita.com blog.amedama.jp tech-blog.rakus.co.jp
実装進めてみたものの動かない。
# docker-compose.yml
# 必要な構成だけ ※注意:動かないよ
version: "3"
services:
wp:
image: wordpress-custom
build:
context: .
args:
image: wordpress:latest
environment:
USER_ID: ${USER_ID}
GROUP_ID: ${GROUP_ID}
db:
image: mysql-custom
build:
context: .
args:
image: mysql:latest
environment:
USER_ID: ${USER_ID}
GROUP_ID: ${GROUP_ID}
# Dockerfile
# ※注意:動かないよ
ARG image
FROM ${image}
RUN apt-get update \
&& apt-get -y install gosu
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
# entrypoint.sh
# ※注意:動かないよ
USER_NAME=user
USER_ID=$USER_ID
GROUP_ID=$GROUP_ID
# グループを作成する
if [ x"$GROUP_ID" != x"0" ]; then
groupadd -g $GROUP_ID $USER_NAME
echo "Add group: $GROUP_ID"
fi
# ユーザを作成する
if [ x"$USER_ID" != x"0" ]; then
useradd -d /home/$USER_NAME -m -s /bin/bash -u $USER_ID -g $GROUP_ID $USER_NAME
export HOME=/home/$USER_NAME
echo "Add user: $USER_NAME"
fi
# TODO こいつが動かない。ユーザー変更と認識してるが違うのかな。。
# ログ見ると、 Usage: ./gosu user-spec command [args]... って出てる
/usr/sbin/gosu user
# 使用イメージのdocker-entrypoint.sh の呼び出しも、これってどうなのかなって感じ。。
# wordpressにいたっては、パラメータ(CMD)が必要そうだし。。
# https://github.com/docker-library/wordpress/blob/master/Dockerfile.template#L260-L265
exec /bin/bash /usr/local/bin/docker-entrypoint.sh $@
USER_ID=$(id -u) GROUP_ID=$(id -g) sudo -E docker-compose up -d
Best practices for writing Dockerfiles | Docker Documentation
この辺も参考にしてみたけども、gosuのコマンドの使い方まちがってるのかなぁうーん。。
結局どうした
結局解決にいたらなかったが、コマンドでホストマシン側のマウントディレクトリ(てか直下全部)をchownで、ログインユーザーのアカウントの所有に変更しちゃうという無理やりな方法をとりましたとさ。
できあがったブツ。 github.com
今月中に、このリポジトリにGulp / Webpack / HMRとか、よく使う系の環境を追加していきたいなぁ〜(自分がよく使うやつw)
memo: docker/docker-composeコマンド チートシートメモ
# イメージからの一括起動(-d:バックグランド) $ docker-compose up -d # コンテナの一括起動 $ docker-compose start # コンテナの一括停止 $ docker-compose stop # コンテナの一括削除 $ docker-compose rm # コンテナとイメージの一括削除 $ docker-compose down --rmi all -v # 全て削除 $ docker-compose down --rmi all --volumes --remove-orphans # ビルドし直し $ docker-compose up -d --build # コンテナに入る $ docker exec -it [container] bash
memo: phpMyAdmin
phpMyAdmin 設定ファイル
phpMyAdmin/config.inc.php
ログイン、ログアウト(cookie)
$cfg['Servers'][$i]['auth_type'] = 'cookie'; //config, http, cookie $cfg['Servers'][$i]['user'] = ''; $cfg['Servers'][$i]['password'] = '';
自動認証(config)
$cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'rootPass';
起動スクリプト chkconfig
vsFTPd導入時のメモ
参考サイト
以下、参考にさせてもらったサイトさん。ありがとうございます。
chrootとか、user_listあたりの動きは以下サイトさんが大変参考になりました。
はまったところ
何度設定を見直しても、FTPで接続してみると530 Login incorrect.がでてしまう。。
危険だけど、anonymousを一度ONにしてつないでみる→うまくいく。
pma認証周りか?と思って、vsftpd.conf -> pam_service_nameを確認するが、pam_service_name=vsftpdになってる。
もうちょっと調べてみたら、ftpusersにrootが指定されていたことが原因(つまり、rootでつないでいたことが原因)
以下サイトさんが大変参考になりました。
XAMPP1.7.7 Filezilla Server導入時のメモ
XAMPP(1.7.7)のFillezilla Serverがうまくインストールできなくて少々はまりました。XAMPPのコンパネからは開始できないっぽいですね。Windowsのサービスから起動しないとだめなようなのですが、\xampp\FileZillaFTP\FileZilla server.exeこれを実行するといける。Windows Vistaとか7は、管理者権限で実行しないとインストールが正常に終了してくれないので注意。