【PHP】DockerでPHPの環境を作る
仕事で使えそうなPHPというものを家で勉強したいと思ったから、環境を作ることにした。
環境構築につまづきたくないから、Dockerを使うことにした
Docker で PHP の開発環境を構築する方法 - UPDATE をまんま実行したらできたけど、メモしておく。
Dockerfileを作成する
> mkdir php7-apache; cd php7-apache > echo "FROM php:7.3.4-apache" > Dockerfile
imageのbuild
php_apache_image
という名前のimageをbuildする
> docker build ./ -t php_apache_image
マウント用ディレクトリの作成
ホスト側のディレクトリをコンテナにマウントするためのディレクトリを作成する
> mkdir html
このディレクトリにファイルを作成していく
コンテナの起動
> docker run -d -p 80:80 -v /Users/tamago324/src/php/php7-apache/html:/var/www/html --name php_apache_container php_apache_image
docker run -d -p {ホストのポート}:{コンテナのポート} -v {ホストのディレクトリ}/{コンテナのディレクトリ} --name {コンテナ名} {イメージ名}
こんな簡単にマウントできるのすごい
起動の確認
> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f19ca19f6f55 php_apache_image "docker-php-entrypoi…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp php_apache_container
STATUSがUPになっていれば起動している
Webページの作成
ホスト側のhtml/
にindex.php
を作成する
<?php phpinfo();
localhost/index.php にアクセスし、作成したページを確認する
いろいろ情報が出ていればOK!
とりあえず、PHPが動かせる環境ができたからよかった
少しずつやってみよう
Laravelというものを使いたい!!
参考文献
2019/03 記録
今月の出来事
- fish入れようとして失敗した
- gorilla.vimにいった
- ujihisaさんにあって、すごいってなった.
- 実践Vimを少しずつ読もうとして、やめちゃったこと
- Pythonチュートリアルの本を買って、一通り読んだ
- 実際にアウトプットするべき。そうしないと身につかない
- flaskでLINEBot作った
- pillowで画像加工
- heroku
- deniteのSource作成したい
- Shougoさんにフォローされた
- 4月になったらやるぞ!!
- 小さくやっていこう
- まずはmemobook.nvimを固めていく
- hugoやろうとしてやめた(deniteのSourceに使えるかもと思ったけど、そこまでガチガチにやらないから)
- Goやろうとしてやめた
- Google翻訳をするNeovimのプラグインを作った
やろうと思ってやめたこと
- fishのセットアップ
- Goの学習
- 実践Vimを少しずつやろうと思ってやっていない
- 本当に小さくでいいからやろう
できたこと
- FlaskでLINEbotを作った
- Neovimのプラグインを2つ作ったこと
読んだ本
- チーズはどこへ消えた?
- 変化に応じて、自分も変わることの重要性
- 仕事と人生を激変させるなら99.9%アウトプットを先にしなさい
- 最低限の知識を得たら、すぐに行動する。行動しながら足りないところを学んでいく
- どんどん行動する
- ざんねんな努力
- 小さく初めて、やり始める意志の力を少しずつ小さくしていく
- SNSで宣言し、やるしかないという状況を作ることで、行動ができる
- 毎日、少しずつやる。苦痛にならないようなくらいの小さなことでいいから毎日やる。継続することが大事。
やっていること
2019年4月にやること
- Neovimのプラグインを作る(楽しむ)
- Linucの勉強
ゴリラ.vim#2に参加した
第2回ゴリラ.vimに参加してきました!
ujihisaさんのライブコーディングが自分にとってはすごい参考になりました。 まず、関数のインターフェースを書く。呼び出しを書く。そして、「関数の実装、QuickRunで実行」を繰り返す。 書いていたのはVim scriptだったけど、Pythonでも同じように書いていけそうです!
UniteとVim shell(?)を使ったvim操作が華麗だった。 Uniteの後続のDeniteというものを使ってみようと思います。
懇親会では、ujihisaさんに「Vimではやらない方がいいこと。また、Vimではなく、IDEを使った方がいいことはありますか?」と質問してみたところ、「Webブラウジングくらい」と言っていました(半分冗談かもしれないですが…)
Vim最強では…!?
moppさんの発表で、社内でvimrcを読み合うという、とても楽しそうなことをしていて、正直、「羨ましい」と思いました。自分の会社でもVim活せねば…
また、気になるキーマッピングが2つありました。
選択範囲での検索
vnoremap / <Esc>/\%V
選択した文字列を指定の文字列で置換
vnoremap <C-R> "hy:%s/\V<C-R>h//g<left><left>
\V
で文字列そのものを検索できるのすごい便利!!!
今回の発表内で何回か「実践Vim」の話が出てきていました。自分はKindle版で買って放置していたので、また読み直してみようと思います!
今回もとても楽しいゴリラのセミナーでした!
次回の開催予定は4/18(木)らしいです!
https://gorillavim.connpass.com/
会場を提供してくださったQuipper Ltd様、ゴリラさん、登壇してくださった方々、楽しい時間を本当にありがとうございました!
また、会場スポンサー、登壇者を大募集しているそうです!
ゴリラ.vim #1に参加してきました
昨日、ゴリラ.vim #1に参加してきました。
https://gorillavim.connpass.com/event/119276/
ゴリラさんのvimへの熱意が伝わってきました。
ゴリラさんが、
「mattnさんみたいになります」
と宣言していたのかすごい印象的でした!
自分も、ゴリラさんみたいに行動力ある人になりたい。じゃなくて、行動力がある人になるぞ!
発表では、自分の知らないvimを見ることが出来たので、楽しめました!
また、発表中にQuickRunを使っている方がいて、コードがあんなに簡単に実行できていて、発表を見ながら感動してました! 早速インストールして、使ってます!!
懇親会では、TwitterやGitHubで見るすごい方々と直接お話させたいただくことが出来ました。
懇親会で、ほかの方が「vimは最高のREPL。vimscriptを書いたら、そのままエディタが実行してくれるんだよ?」って、言っていて、「たしかに」って納得してしまいました。
また、会場を貸してくださった株式会社ディー・エヌ・エー様さん、主催者のゴリラさん、登壇してくださった方々、とても楽しい勉強会をありがとうございました!!
次回の日程が決まっているそうなので、立ち見でもいいので参加したいと思います!!
https://gorillavim.connpass.com/event/121394/
会場スポンサー、登壇者を大募集していそうです!!
文字列からクラスのインスタンスを生成 - VB.NET
例) ProjectName.Person
のインスタンスを生成したい
生成対象のクラス(ProjectName.Person
)
Public Class Person Public name As String Public Sub New() Me.name = "hoge" End Sub Public Sub New(ByVal name As String) Me.name = name End Sub End Class
生成するメインモジュール
Module Module1 Sub Main() Dim personType As Type = Type.GetType("ProjectName.Person") ' 引数なしのコンストラクタ Dim personConstructor As ConstructorInfo = personType.GetConstructor(Type.EmptyTypes) ' Stringの引数を持つコンストラクタ Dim personConstructor2 As ConstructorInfo = personType.GetConstructor(New Type() {GetType(String)}) Dim personClassObject As Object = personConstructor.Invoke(New Object() {}) Dim personClassObject2 As Object = personConstructor2.Invoke(New Object() {"太郎"}) Debug.Print(personClassObject.name) Debug.Print(personClassObject2.name) End Sub End Module
出力結果
hoge 太郎
ポイント
Type.GetType()
でクラスの生成{Type}.GetConstructor()
でコンストラクタの生成- 引数なしの場合、
Type.EmptyTypes
- 引数ありの場合、
Type
インスタンスを生成し、渡す
- 引数なしの場合、
{ConstructorInfo}.Invoke()
でインスタンスの生成
参考文献
頭に来てもアホとは戦うな! を読んで
頭に来てもアホとは戦うな! 人間関係を思い通りにし、最高のパフォーマンスを実現する方法
- 作者: 田村耕太郎
- 出版社/メーカー: 朝日新聞出版
- 発売日: 2014/07/08
- メディア: 単行本
- この商品を含むブログ (5件) を見る
読み終わったから、アウトプットする
Before
- 他人にどう思われるかを気にして、行動していた
- 自分はできる人だと思いこんでいた
気づき
1. 他人にどう思われるかは気にせずに行動してみる
他人からどう見られるかは、人生の最後から逆算すればどうでもいい途中経過
人生の終りがあると考えると、やりたいことは今すぐにすべき。
他人にどう思われようと構わずにやりたいことをやるべき。
つまらない意地とかプライドは人生で全く意味のないこと
2. 等身大の自分を知るために、行動する。そして、等身大にあった目標を立てる
等身大の自分を知ること(自分を見失わないこと)
常に等身大の自分を見つめて、それに基づいた正しい目標を設定し、成長していく
自分の力を過信しない。たまたま、なにか成功したからと言って、調子に乗らない。それはただの途中経過で、目標はその先にある
3. 気まずいときこそ、コミュニケーションを取る
これがこの本を読んで一番の収穫
もし、気まずいときにコミュニケーションをしないと、事態は悪化するしかなくなってしまう。
お互いに最悪のシナリオで深読みし合うしかなくなる
コミュニケーションを取らないと、この深読みの負のループに入ってしまい、相手の何気ない行為にも、悪気のある行為であると思いこんでしまい、最終的には衝突してしまう。
最低限のコミュニケーションを取り、相手に敵意はないことを伝えて、これ以上関係を悪化させないようにする
Neovim内で使うpythonをpyenvのアクティブなものにする - Neovim
g:python3_host_prog
に値をセットする(Python3の場合)
g:python3_host_prog
に値をセットすると、neovim内で実行するpython3を指定できる
pyenvのアクティブなPythonを使うようにするには、以下のように~/.config/nvim/.init.vim
に書く
let g:python3_host_prog = system('type pyenv &>/dev/null && echo -n "$(pyenv root)/versions/$(cat $(pyenv root)/version | head -n 1)/bin/python" || echo -n $(which python)')
メモ書き
:checkhealth
したときのメッセージ
## Python 3 provider (optional) - INFO: `g:python3_host_prog` is not set. Searching for python3 in the environment.
:help g:python3_host_prog
してみた
PYTHON PROVIDER CONFIGURATION ~ *g:python_host_prog* *g:python3_host_prog* Program to use for evaluating Python code. Setting this makes startup faster. Also useful for working with virtualenvs. > let g:python_host_prog = '/path/to/python' let g:python3_host_prog = '/path/to/python3'
Pythonコードを評価するためのプログラム。 これを設定すると起動が速くなります。
virtualenvsでの作業にも便利です。
.vimrc
に以下の記述を追加する