tag:blogger.com,1999:blog-21870223240825303992024-03-21T12:18:55.531+09:00エンジニアのチラシの裏チラシの裏に書くような個人的メモや覚書、備忘録、ブックマーク的な投稿をしていきます。<br>
個人的なメモの延長の部分も多いです。読みにくい投稿もあるかもしれませんがご容赦ください。tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.comBlogger70125tag:blogger.com,1999:blog-2187022324082530399.post-8544862897071721542020-05-03T13:07:00.000+09:002020-05-03T13:07:08.338+09:00[PHP] macOS Catalina で phpenv install のエラーでハマった<div>
新しいMacをゲット。</div>
<div>
環境設定を実施し始めたのだが、phpenv installでハマってしまったので メモ。 </div>
<div>
<br /></div>
<div>
<br /></div>
<h3>
背景</h3>
<div>
さまざま環境設定をし、<a href="https://brew.sh/index_ja" target="_blank">Homebrew</a>もインストール、<a href="https://github.com/anyenv/anyenv" target="_blank">anyenv</a> -> phpenv とインストールし、いざPHPの特定バージョンをインストールしようと以下を実行。</div>
<blockquote class="tr_bq">
phpenv install 7.2.24</blockquote>
<div>
<br /></div>
<div>
エラーがまあまあ出たが、 ひとつづつ解決していく</div>
<div>
<br /></div>
<div>
<br /></div>
<h3>
error: Cannot find xxxxx</h3>
<div>
Cannot find( 見つかりません)という単純なエラー</div>
<div>
<br /></div>
<div>
<blockquote class="tr_bq">
[Preparing]: /var/tmp/php-build/source/7.2.24<br /><br />
-----------------<br />
| BUILD ERROR |<br />
-----------------<br /><br />
Here are the last 10 lines from the log:<br /><br />
-----------------------------------------<br />
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: ).<br />
<b><span style="color: red;">configure: error: Cannot find zlib</span></b><br />
-----------------------------------------</blockquote>
</div>
<div>
<br /></div>
<div>
この手のエラーは特に問題なくHomebrewで、インストールしながら解決していく</div>
<blockquote class="tr_bq">
brew install zlib</blockquote>
<div>
<br /></div>
<div>
これでOK</div>
<div>
<br /></div>
<div>
<br /></div>
<h3>
error: Cannot find OpenSSL's <evp.h></h3>
<div>
<div>
こういうエラー</div>
<blockquote class="tr_bq">
[Preparing]: /var/tmp/php-build/source/7.2.24<br /><br />
-----------------<br />
| BUILD ERROR |<br />
-----------------<br /><br />
Here are the last 10 lines from the log:<br /><br />
-----------------------------------------<br />
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: ).<br />
<b><span style="color: red;">configure: error: Cannot find OpenSSL's <evp.h></span></b><br />
-----------------------------------------</blockquote>
</div>
<div>
これは、Catalina (Mojaveものようだが)になって、これまでできていたヘッダーファイルのありか(<span style="background-color: #eeeeee; color: #333333; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 16px;">/usr/include</span>)が作成されなくなるという仕様変更によるもののようで、ヘッダーファイルが探せないからのようだ。</div>
<div>
参考: <a href="https://qiita.com/kunit/items/c30147f99a48ebb159d5" target="_blank">macOS 10.15 Catalina 上で phpenv を使って PHP 5.6 を build するのにものすごく苦労した話</a></div>
<div>
<br /></div>
<div>
この手のエラーは<span style="background-color: #eeeeee; color: #333333; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 16px;">PHP_BUILD_CONFIGURE_OPTS</span>などで 回避ができるようになっており、以下のように指定をして実行すると良い。</div>
<blockquote class="tr_bq">
PHP_BUILD_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl) --with-libxml-dir=$(brew --prefix libxml2)" PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j4 phpenv install 7.2.24</blockquote>
<div>
<br /></div>
<div>
<br /></div>
<h3>
特にハマったエラー error: Please reinstall the libcurl distribution</h3>
<div>
順調にエラーを回避していたのだが、最終的にこのエラーに一番悩まされた。</div>
<div>
<blockquote class="tr_bq">
[Preparing]: /var/tmp/php-build/source/7.2.24<br /><br />
-----------------<br />
| BUILD ERROR |<br />
-----------------<br /><br />
Here are the last 10 lines from the log:<br /><br />
-----------------------------------------<br />
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: ).<br />
configure: WARNING: Fallback: search for curl headers and curl-config<br />
<b><span style="color: red;">configure: error: Please reinstall the libcurl distribution -<br /> easy.h should be in <curl-dir>/include/curl/</span></b><br />
-----------------------------------------</blockquote>
</div>
<div>
curl入ってるしなと思いながらいろいろ参考文献を探したが、分からず。。。</div>
<div>
これも結局は</div>
<div>
<br /></div>
<div>
結局最終的には<span style="background-color: #eeeeee; color: #333333; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 16px;">PHP_BUILD_CONFIGURE_OPTS</span>を指定することで回避ができた。</div>
<div>
<br /></div>
<div>
<br /></div>
<h3>
最終的に</h3>
<div>
以下のコマンドを実行することで無事インストールが できた。</div>
<div>
<br /></div>
<blockquote class="tr_bq">
// 7.2.24 インストール<br />
PHP_BUILD_CONFIGURE_OPTS="--with-libedit=$(brew --prefix libedit) --with-curl=$(brew --prefix curl) --with-libcurl=$(brew --prefix curl) --with-openssl=$(brew --prefix openssl) --with-libxml-dir=$(brew --prefix libxml2)" PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j4 phpenv install 7.2.24<br /><br />
[Success]: Built 7.2.24 successfully.<br /><br /><br />
// 7.1.8 もインストールできました<br />
PHP_BUILD_CONFIGURE_OPTS="--with-libedit=$(brew --prefix libedit) --with-curl=$(brew --prefix curl) --with-libcurl=$(brew --prefix curl) --with-openssl=$(brew --prefix openssl) --with-libxml-dir=$(brew --prefix libxml2)" PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j4 phpenv install 7.1.8<br /><br />
[Success]: Built 7.1.8 successfully.</blockquote>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-48626081850330442332019-03-17T22:13:00.002+09:002019-03-19T07:40:37.122+09:00FX分析のため過去の為替データを取得<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLG6ZUiW8hC0uIZ37QBmDr11jk9qbGjir5hVyqEt-5tS8UA1ts_vDL0btNnuu_bXQJdzfnXrIs1L0aVxl1Mee3UsAIDsiVDPS6uzi5Cd72EQ73R18aKbS0BOODvJ6ai_rYPrpVNGLttus/s1600/chart-1905225_1920.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="899" data-original-width="1600" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLG6ZUiW8hC0uIZ37QBmDr11jk9qbGjir5hVyqEt-5tS8UA1ts_vDL0btNnuu_bXQJdzfnXrIs1L0aVxl1Mee3UsAIDsiVDPS6uzi5Cd72EQ73R18aKbS0BOODvJ6ai_rYPrpVNGLttus/s640/chart-1905225_1920.jpg" width="640" /></a></div>
<br />
結構前から興味を持ち始めた機械言語、コツコツ勉強してきました。<br />
<br />
何を分析しようか。<br />
<b>「うーん、やっぱり為替データでもコネコネしますか」</b>ということで、まずはデータ集めから。<br />
<br />
<a name='more'></a><!-- google adsence ↓↓↓ -->
<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<br />
<ins class="adsbygoogle" data-ad-client="ca-pub-6222309276407323" data-ad-format="fluid" data-ad-layout="in-article" data-ad-slot="9574328886" style="display: block; text-align: center;"></ins><script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<br />
まずどこから集めようかといろいろ調べてたところ、最終的には「<a href="https://forextester.jp/data/datasources" target="_blank">Forex Tester データソース</a>」の拝借することに。<br />
<div>
<br />
ここでは、<b>1分足</b>のデータを<b>2001年1月〜最近</b>までのデータをcsvの形式で提供で提供してくれていて、これを使ってpythonか何かでコネコネ(分析)しようかなと思ってます。<br />
<br />
実際のデータはこんな感じです。<br />
<br />
<br /></div>
<div>
<pre class="tr_bq"><ticker>,<dtyyyymmdd>,<time>,<open>,<high>,<low>,<close>,<vol>
USDJPY,20010102,230300,114.43,114.43,114.43,114.43,4
USDJPY,20010102,230400,114.44,114.44,114.44,114.44,4
USDJPY,20010102,230500,114.44,114.44,114.44,114.44,4
USDJPY,20010102,230700,114.44,114.44,114.44,114.44,4
USDJPY,20010102,230800,114.44,114.44,114.44,114.44,4
USDJPY,20010102,230900,114.44,114.44,114.44,114.44,4
USDJPY,20010102,231100,114.44,114.45,114.44,114.45,4
USDJPY,20010102,231200,114.45,114.45,114.45,114.45,4
:
:
</pre>
</div>
<br />
<br />
分析した結果をまた記事にしていくので乞うご期待〜<br />
<br />
ただ分析した結果を使うためにはリアルタイムなデータが必要。<br />
でもそれはまた別の話。<br />
<br />
まずは分析で良い結果を得れなければ意味がないですしねー。<br />
<br />
<h4>
【参考】</h4>
<ul>
<li><a href="https://forextester.jp/data/datasources" target="_blank">Forex Tester データソース</a></li>
<li><a href="http://swdrsker.hatenablog.com/entry/2017/09/04/054822" target="_blank">為替の分足CSVデータが無料でダウンロードできるサイト</a></li>
</ul>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-50506984912459371622018-12-03T00:10:00.000+09:002018-12-07T06:21:56.997+09:00[Mac/Linux] Anacondaで Python3系をインストールし Jupyter Notebook を使うまで<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqXIU8DMo_BJEmIJHSvyEepvzC_WmtR9dTOeIcSr489AC9ztHAPu5xDRCm43kojQxbCz7wejFc0DX_ILNDvsrkN_29vXT5owsepYG5GrcwB_-fwpf4Ccp_TpK_0m7yEu3nolDOjCVxbH4/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-06+21.54.52.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="780" data-original-width="1600" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqXIU8DMo_BJEmIJHSvyEepvzC_WmtR9dTOeIcSr489AC9ztHAPu5xDRCm43kojQxbCz7wejFc0DX_ILNDvsrkN_29vXT5owsepYG5GrcwB_-fwpf4Ccp_TpK_0m7yEu3nolDOjCVxbH4/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-06+21.54.52.png" width="640" /></a></div>
<br />
<h4>
Step0. Anaconda とは</h4>
<a href="https://www.anaconda.com/" target="_blank">Continuum Analytics</a> 社が提供している <b>Python ディストリビューション</b>です。<br />
ダウンロードしてインストールすると、<b>[Python]</b> と <b>[データサイエンスを扱うのに頻繁に利用されるライブラリ]</b> を丸っとまとめてコンピュータに導入することができます。<br />
<br />
<b>[ライブラリ]</b> とは <b>[numpy],[scikit-learn],[matplotlib],[curl],[pip]</b> などですね。もちろん <b>[jupyter] </b>も入ってます。<br />
詳細は<a href="https://docs.anaconda.com/anaconda/packages/py3.7_osx-64/" target="_blank">公式ドキュメントの一覧</a>を参照してください。<br />
<br />
<h4>
本記事を読むことでできること</h4>
<b>[Windows / Mac / Linux]</b> で利用ができますが、本記事を読むことで [Mac / Linux] でのインストールと [Jupyter Notebook] を利用することができるようにします。<br />
<br />
<a name='more'></a>
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<br />
<br />
<h4>
Step1-1. Mac へのインストール</h4>
<b><u>インストーラのダウンロード</u></b><br />
[Mac] のダウンロードページは <a href="https://www.anaconda.com/download/#macos" target="_blank">こちら</a> です。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBgiiTPc6bbKGHuZNWM_iKzaRJInaPUfbu031lSC3HDLkArC93Cg49AyufnB9_bglH6aGEA0M4FGIkHoa7WPv7VKvzu6nS6QyQlk2sypkb2u1kQ0eQ8kYpaTzPbg2Gb7xLzNhg2pqRLu4/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-12-02+23.20.47.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="790" data-original-width="1600" height="197" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBgiiTPc6bbKGHuZNWM_iKzaRJInaPUfbu031lSC3HDLkArC93Cg49AyufnB9_bglH6aGEA0M4FGIkHoa7WPv7VKvzu6nS6QyQlk2sypkb2u1kQ0eQ8kYpaTzPbg2Gb7xLzNhg2pqRLu4/s400/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-12-02+23.20.47.png" width="400" /></a></div>
<br />
新規インストールであれば、迷わず <b>[Python 3.7] で問題ない</b>と思います。<br />
<br />
<u><b>インストーラ実行</b></u><br />
ダウンロードした<b>インストーラパッケージを実行</b>して、指示にしたがってインストールしていきましょう。(基本的には全て変更なしで進んじゃって問題ないです)<br />
<br />
<b><u>パスを通す</u></b><br />
インストールが完了したら、<b>パスを通し</b>ます。<br />
[Anaconda] は通常指示どうりにインストールしたら <b>`~/anaconda3/bin`</b> にインストールされます。このパスを通します。<br />
<b>`~/.bash_profile`</b> か <b>`~/.bashrc`</b> というファイルを編集することで、パスが通ります。(zshの場合は `~/.zshrc` ですね)<br />
パスを通す場合の詳細は別記事があるので、<a href="https://backleaflet.blogspot.com/2018/01/mac_16.html" target="_blank">こちら</a> を参照ください。<br />
<br />
ファイルに以下を追記しましょう。<br />
<pre class="tr_bq">export PATH=/anaconda3/bin:$PATH</pre>
<br />
<u><b>インストールの確認</b></u><br />
これでPython3系が実行ができるようになりました。(ターミナルの再起動が必要かもしれない)<br />
バージョンを表示して、試してみましょう。<br />
<br />
<pre class="tr_bq">$ python3 -V
Python 3.7.0</pre>
<br />
<h4>
Step1-2. Linux へのインストール</h4>
<b><u>インストーラのダウンロード</u></b><br />
まずは<b>ファイルをダウンロード</b>します。<br />
[Linux] の<a href="https://www.anaconda.com/download/#linux" target="_blank">ダウンロードページ</a>へ移動します。<br />
新規インストールであれば、迷わず <b>[Python 3.7] で問題ない</b>と思いますので、<b>[Python 3.7 version]の[Download]</b>ボタンの上で、<b>右クリックをし[リンクアドレスをコピー]</b>します。<br />
<br />
コンソール上でインストールファイルをダウンロードするために以下を実行しましょう。<br />
<pre class="tr_bq">// 事前に管理者権限で入っておきます
$ sudo su -
// wget [コピーしたリンクアドレス]
# wget https://repo.anaconda.com/archive/Anaconda3-5.3.1-Linux-x86_64.sh</pre>
<br />
<b><u>インストーラの実行</u></b><br />
<pre class="tr_bq">// ダウンロードされたファイルを実行
# bash Anaconda3-5.3.1-Linux-x86_64.sh</pre>
<br />
基本は全て [yes] で進んで問題ありません。VSCodeのインストールを進められますがお好みで。<br />
<br />
<u><b>インストールの確認</b></u><br />
Pythonのバージョンを確認して表示されれば<b>インストール完了</b>です(再起動が必要かもしれない)<br />
<pre class="tr_bq">$ python3 -V
Python 3.7.0</pre>
<br />
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<h4>
Step2. Jupyter Notebook を使ってみる</h4>
[Anaconda] で [Python3.6] をインストールできたので、[Jupyter Notebook] を使って見ましょう!<br />
<br />
使い方はとっても簡単です。<br />
コマンド一発で動作して、あとはブラウザでアクセスするだけです。<br />
<br />
<pre class="tr_bq">// 実行するフォルダがルートフォルダになるので、そこまで移動します
$ cd ~/jupyter
// [Jupyter Notebook]の実行コマンド
$ jupyter notebook</pre>
<br />
あとは `http://localhost:8888/` へアクセスしましょう。<br />
[Jupyter Notebook] をブラウザで開くことができるようになります。<br />
こんな感じのページが開きます。(下の例ではファイルが入ってますが、はじめは何もないはず)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY1mTH3O9vQg_R6-bOJlHFvzzBEwNneb1gP0JN9V4JErwDEeQIuFTQBl-MjZrCf3oyKt1nokugJuQ5aSLbg9LPgFp8mvEvSYY1VCmWf0Q4680M8eiLkXP7cMoJM_P9pIYqhEzJF68msxI/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-12-02+22.54.59.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="339" data-original-width="1600" height="134" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY1mTH3O9vQg_R6-bOJlHFvzzBEwNneb1gP0JN9V4JErwDEeQIuFTQBl-MjZrCf3oyKt1nokugJuQ5aSLbg9LPgFp8mvEvSYY1VCmWf0Q4680M8eiLkXP7cMoJM_P9pIYqhEzJF68msxI/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-12-02+22.54.59.png" width="640" /></a></div>
<br />
右上の [New] - [Python 3] と開き、新しい編集ページを開きます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZinKuLkkOOuDsYF3VRRsuti8iNQ2718_ncwhvGFtLRvlRKIJcA6-hV_w54AUH71B2HVm3Tdq2a2LNo5K4RTvacphjwdZR5TRHy6yCz9eEYqQh5lAvxRTfGYvs2oOsg7NmeXOT2aGp8Fs/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-12-02+22.55.11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="640" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZinKuLkkOOuDsYF3VRRsuti8iNQ2718_ncwhvGFtLRvlRKIJcA6-hV_w54AUH71B2HVm3Tdq2a2LNo5K4RTvacphjwdZR5TRHy6yCz9eEYqQh5lAvxRTfGYvs2oOsg7NmeXOT2aGp8Fs/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-12-02+22.55.11.png" width="320" /></a></div>
[Jupyter Notebook] はリアルタイムでデータを編集したり、グラフを表示したりすることができます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv6yNOzfH2IGjAsbMLk67xmotjtyWqEpHLEDxpAxMfcP3i9ChQDSAnZszJqGm6UBFS2avBAy1to3mjRwAtfRcQfRopRLbfNFAL77qjoJE8be3C7kk3AlB8SXVuXN5uEo6GVYLD-PnQAik/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-12-02+22.59.12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="936" data-original-width="1600" height="374" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv6yNOzfH2IGjAsbMLk67xmotjtyWqEpHLEDxpAxMfcP3i9ChQDSAnZszJqGm6UBFS2avBAy1to3mjRwAtfRcQfRopRLbfNFAL77qjoJE8be3C7kk3AlB8SXVuXN5uEo6GVYLD-PnQAik/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-12-02+22.59.12.png" width="640" /></a></div>
<br />
使い方は他の記事に委ねようと思いますが、これでめっちゃ快適なPythonライフが送れますね :)<br />
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d0d2da; background-color: #161821; background-color: rgba(22, 24, 33, 0.95)}
span.s1 {font-variant-ligatures: no-common-ligatures}
</style>
<br />
<h4>
Step3. Jupyter Notebook を GitHub の Gist へアップする</h4>
作成した [Jupyter Notebook] は、そのままの状態でGistへのアップができます。<br />
<br />
<a href="https://gist.github.com/tadamatu/66a27e14991937423bde66639cfa788a" target="_blank">こちらがアップしたサンプル</a>です。<br />
<br />
[Jupyter Notebook] 上で、[File]-[Download as]-[Notebook(.ipynb)] と進んで、ファイルとして保存します。<br />
次に [Gist] の [New Gist] から編集状態にしてファイルをドラッグすることで、公開ができるようになります。<br />
<br />
<a href="https://backleaflet.blogspot.com/2018/01/jupyter-notebook-github-gist.html" target="_blank">こちらの記事</a>で詳しく説明していますので、ご覧いただければと思います。<br />
<br />
参考文献<br />
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-87084941655847554172018-05-08T02:14:00.000+09:002018-12-04T08:24:29.286+09:00[GCP] google cloud storage を PHP から利用する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDUakzBkG39syZSOdqFro-yoIHoDHuxEDfiwX7rpGoZWlvhz3n3Rss7iCt9R1eM8CA3Kdj_izJZeYHwlzfemJSDIgjquWe7JGAXmXtSz39prr-pNgT1duwLIu3ND96xYo5S43QOGEKTA/s1600/gcp-series01_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="800" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDUakzBkG39syZSOdqFro-yoIHoDHuxEDfiwX7rpGoZWlvhz3n3Rss7iCt9R1eM8CA3Kdj_izJZeYHwlzfemJSDIgjquWe7JGAXmXtSz39prr-pNgT1duwLIu3ND96xYo5S43QOGEKTA/s640/gcp-series01_01.png" width="640" /></a></div>
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja" target="_blank">Google Cloud Platform</a>(GCP)[VMインスタンス]で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)
PHP(7.0.27)
</pre>
<br />
今回は [<a href="https://cloud.google.com/storage/?hl=ja" target="_blank">Google Cloud Storage</a>] を [PHP] 上から利用していきます。<br />
<br />
<a name='more'></a><br />
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<h4>
ストレージバケットを作成</h4>
コンソールを使えばそれほど難しくないので、詳細は割愛します。<br />
まずは [Google Cloud Platform コンソール] で [Strage] - [ブラウザ] と進み、[バケット] を作成します。<br />
<a href="https://cloud.google.com/storage/docs/creating-buckets?hl=ja" target="_blank">ストレージ バケットの作成</a><br />
<br />
注意点は[バケット名]の命名です。<br />
命名には<a href="https://cloud.google.com/storage/docs/naming?hl=ja#requirements" target="_blank">ある程度の制限</a>があります。<br />
[Cloud Storage] 全体でユニークである必要があるため、誰かが利用しているバケット名は使うことができません。<br />
また、<a href="https://cloud.google.com/storage/docs/domain-name-verification?hl=ja" target="_blank">ドメイン名を持つバケットには検証</a>が必要です。<br />
<br />
<h4>
ファイルのダウンロード(参照)</h4>
まずは作成したバケットにファイルをアップロードします。<br />
ファイルを一般公開にすることで、以下でアクセスができるようになります。<br />
https://storage.googleapis.com/[バケット名]/[オブジェクト名(ファイル名)]<br />
<br />
<h4>
ファイルのアップロード</h4>
今回はPHPで利用するので、前準備としてPHP用の [client library] をインストールする必要があります。<br />
<a href="https://cloud.google.com/storage/docs/reference/libraries?hl=ja" target="_blank">Cloud Storage Client Libraries</a><br />
<br />
まずはPHPパッケージ管理の [Composer] をインストールします。<br />
<a href="https://qiita.com/kakijin/items/02364adacf36410f449e" target="_blank">Composerをインストールしてみた</a><br />
そしてインストールした [Composer] を利用して [client library] をインストールします。<br />
<pre class="tr_bq">composer require google/cloud-storage</pre>
<div>
<br /></div>
次にアップロードしたファイルが一般公開になるように、以下を参考にバケットの権限を変更します。<br />
<a href="https://qiita.com/ma7ma7pipipi/items/ad33e001b6d08c3368e6" target="_blank">Google Cloud Storage を PHPで。</a><br />
[allUsers] を [ストレージオブジェクト閲覧者] に。<br />
<br />
そして、アクセス許可するための [Google Cloud Platform コンソール] で [service account key] を作成します。<br />
[APIとサービス] - [認証情報] とアクセスし、[認証情報を作成]-[サービスアカウントキー] を選択します。<br />
[サービスアカウント] で [新しいサービスアカウント] を選択します。<br />
適当な[サービス アカウント名] を入力し、役割を [Project > Owner] に設定します。<br />
[キーのタイプ] を [JSON] に設定し、[作成] すると、[秘密鍵ファイル] がダウンロードされる。([秘密鍵ファイル(JSON)] は再ダウンロードができないので、大事に保管すること)<br />
[秘密鍵ファイル] をサーバ上の任意の場所にアップロードし、new StorageClient() でインスタンス生成時に[秘密鍵ファイル]を指定すればよい(keyFile)<br />
<br />
あとは、以下のPHPのアップロードサンプルプログラムを参考にすればファイルがアップロードできます。<br />
<pre class="tr_bq"><?php
include_once 'vendor/autoload.php';
use Google\Cloud\Storage\StorageClient;
function uploadObject($bucketName, $objectName, $source) {
$projectId = '<プロジェクトID>';
$storage = new StorageClient([
'projectId' => $projectId,
'keyFile' => json_decode(file_get_contents('<秘密鍵jsonファイルのフルパス>'), true)
]);
$file = fopen($source, 'r');
$bucket = $storage->bucket($bucketName);
$object = $bucket->upload($file, [
'name' => $objectName
]);
}</pre>
<div>
<br /></div>
<br />
<h4>
【参考】</h4>
<br />
<ul>
<li><a href="https://qiita.com/ma7ma7pipipi/items/ad33e001b6d08c3368e6" target="_blank">Google Cloud Storage を PHPで。</a></li>
<li><a href="https://cloud.google.com/storage/docs/reference/libraries?hl=ja" target="_blank">Cloud Storage Client Libraries</a></li>
<li><a href="https://cloud.google.com/storage/docs/object-basics?hl=ja#storage-upload-object-php" target="_blank">オブジェクトのアップロード、ダウンロード、削除</a></li>
</ul>
<br />
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-25102498574522688432018-01-27T10:01:00.000+09:002018-12-04T09:03:45.383+09:00[PHP] IPアドレスから国を判定する(国コード)を取得する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlFFCHuiUWCgV-D_CWRqv_2bB_diGVg7iAuro2Z6m0MnMSrRKe2jBvqOBZKz2hH2y2LMuy0DuXVvUlqrVxQXWJnRVtfDGF3uKv6kB5AUzZADyUPtH-ztXsg8MF0mLS0igC2FSEvNvIs3E/s1600/1200px-PHP-logo.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1200" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlFFCHuiUWCgV-D_CWRqv_2bB_diGVg7iAuro2Z6m0MnMSrRKe2jBvqOBZKz2hH2y2LMuy0DuXVvUlqrVxQXWJnRVtfDGF3uKv6kB5AUzZADyUPtH-ztXsg8MF0mLS0igC2FSEvNvIs3E/s320/1200px-PHP-logo.svg.png" width="320" /></a></div>
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja">Google Cloud Platform</a>(GCP)[VMインスタンス]上で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)
PHP(7.0.27)</pre>
<br />
今回はPHPでgeoipを利用して、[IPアドレス] や [ホスト名] から国を判定する(国コードなどの取得する)方法です。<br />
<br />
<a name='more'></a>
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<br />
<h4>
データベースの更新</h4>
まず、geoipを取得する必要がある<br />
データベースを取得する必要があります。<br />
<pre class="tr_bq">
$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz<br />$ gunzip GeoLiteCity.dat.gz<br />$ sudo mkdir -v /usr/share/GeoIP<br />$ sudo mv -v GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat</pre>
<br />
データベースは定期的に更新する必要があります。(基本上記の繰り返しでOK)<br />
<a href="http://flatray.com/geoip/" target="_blank">GeoIPの利用方法 - GeoIPデータベースの更新</a><br />
<div>
<br /></div>
<h4>
geoipをインストール</h4>
<div>
php用のgeoipをインストールします。</div>
<pre class="tr_bq">
$ sudo apt-get install php-geoip<br />(if PHP5) $ sudo apt-get install php5-geoip</pre>
<div>
<br /></div>
<div>
これでphpで利用できるようになりました。</div>
<br />
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<h4>
試してみる</h4>
例えば以下で2文字の国コードが帰ってきます。<br />
<pre class="tr_bq">
$countryCode = geoip_country_code_by_name($_SERVER["REMOTE_ADDR"]);</pre>
<br />
国コードは以下を参照<br />
<a href="http://dev.maxmind.com/geoip/legacy/codes/iso3166/" target="_blank">ISO 3166 Country Codes</a><br />
その他含め関数群は以下を参照<br />
<a href="http://php.net/manual/ja/ref.geoip.php#ref.geoip" target="_blank">PHP : GeoIP 関数 - Manual</a><br />
<br />
<h4>
【参考】</h4>
<a href="http://php.net/manual/ja/ref.geoip.php#ref.geoip" target="_blank">PHP : GeoIP 関数 - Manual</a><br />
<a href="http://flatray.com/geoip/" target="_blank">GeoIPの利用方法 - GeoIPデータベースの更新</a>tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-55926573717897890822018-01-21T19:26:00.001+09:002018-12-04T09:04:17.593+09:00[Debian9] SSL/TLS証明書「Let's Encrypt」の導入記録<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk5mXkWSy05Ef3T2lhtShyphenhyphenYgaFBoFI7JS-F63GygFyeNbaGNDWOxcYJGjhx53h2iPbxkAWbOIveMCzE1A5qNQVTjeau2lQOJ2LTGEf8mz3uQ0MHCWR0aMmaswaHeOEYq2kzcCFY_T05hU/s1600/le-logo-twitter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="640" height="281" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk5mXkWSy05Ef3T2lhtShyphenhyphenYgaFBoFI7JS-F63GygFyeNbaGNDWOxcYJGjhx53h2iPbxkAWbOIveMCzE1A5qNQVTjeau2lQOJ2LTGEf8mz3uQ0MHCWR0aMmaswaHeOEYq2kzcCFY_T05hU/s400/le-logo-twitter.png" width="400" /></a></div>
<br />
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja">Google Cloud Platform</a>(GCP)[VMインスタンス]上で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)</pre>
<br />
今回は [Debian 9] で [SSL/TLSの証明書(Let's Encrypt)] を [Apache] インストール環境へ導入した時の記録を残しておきたいと思います。<br />
<a name='more'></a>
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<br />
<h4>
前提条件</h4>
[Apache] が事前にインストールされている<br />
[Let's Encrypt はドメイン名が必要(IP直での証明書の取得はできません)<br />
<br />
<h4>
Certbot クライアントのインストール</h4>
まず初めにCertbot クライアント(旧・Let's Encrypt クライアント)をインストールします。<br />
OSごとにインストールの方法が違います。今回は「Debian 8 (jessie)」に従いインストールします。(今回は「Debian 9 (stretch)」ですが、まだ資料がないので)<br />
<a href="https://letsencrypt.jp/usage/install-certbot.html#Debian8" target="_blank">Certbot クライアントのインストール - Let's Encrypt 総合ポータル</a><br />
<br />
リポジトリ [backports] から入手する必要なないようで、以下を実行。<br />
<pre class="tr_bq">$ sudo apt-get install certbot python-certbot-apache</pre>
<br />
これで [certbot] が使えるようになりました。<br />
<br />
<h4>
certbotで証明書の取得</h4>
[certbot] コマンドで [--apache]オプションを指定すると、設定ファイルから自動的に該当する箇所を検出して https 用の設定をしてくれます。<br />
<pre class="tr_bq">$ sudo certbot --apache</pre>
<br />
このコマンドで初回に聞かれることは以下のとおり<br />
<pre class="tr_bq">No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated) (Enter 'c' to cancel):<span style="color: red;">tadamatuapps.com,www.tadamatuapps.com</span></pre>
ドメインを答えます。複数ある場合は[,(カンマ)]か[(スペース)]で。<br />
<br />
<pre class="tr_bq">Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):<span style="color: red;">xxxxx@gmail.com</span></pre>
連絡用のメールアドレスを答えます。期限切れなど連絡を受け取れます。<br />
<br />
<pre class="tr_bq">-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: <span style="color: red;">A</span></pre>
最後は同意を求められます。<br />
<br />
で、結果は以下のようなエラーが・・・<br />
<pre class="tr_bq">An unexpected error occurred:
The request message was malformed :: Error creating new authz :: DNS name does not have enough labels
Please see the logfiles in /var/log/letsencrypt for more details.</pre>
予期せぬエラーとな・・・<br />
<br />
念のためもう一度実行してみる<br />
<pre class="tr_bq">$ sudo certbot --apache
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.</pre>
うーん、やっぱりエラーに。<br />
<br />
いろいろ調べた結果、2018年1月11日にTLS-SNI検証を無効化したことによるものだと理解をしました。<br />
<a href="https://rms-digicert.ne.jp/digital-certificate-news/update-regarding-acme-tls-sni" target="_blank">Let’s Encrypt ACME TLS-SNI検証を無効化</a><br />
以下のように実行すると良いようです。<br />
<pre class="tr_bq">$ sudo certbot --authenticator standalone --installer apache</pre>
<br />
しかし以下のようなエラーが出ました。<br />
<pre class="tr_bq">-------------------------------------------------------------------------------
The program apache2 (process ID 10724) is already listening on TCP port 80. This
will prevent us from binding to that port. Please stop the apache2 program
temporarily and then try again.
-------------------------------------------------------------------------------</pre>
<br />
コマンドのエラーではなく、単純にApacheのプロセスが残っていたようなので、プロセスを止めます。<br />
<pre class="tr_bq">$ sudo service apache2 stop</pre>
<div>
<br /></div>
再度コマンドを実行。<br />
<pre class="tr_bq">$ sudo certbot --authenticator standalone --installer apache</pre>
<div>
<br /></div>
<div>
ドメインを聞かれます。</div>
<pre class="tr_bq">No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated) (Enter 'c' to cancel):<span style="color: red;">tadamatuapps.com</span></pre>
<br />
<pre class="tr_bq">Please choose whether HTTPS access is required or optional.
-------------------------------------------------------------------------------
1: Easy - Allow both HTTP and HTTPS access to these sites
2: Secure - Make all requests redirect to secure HTTPS access
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): <span style="color: red;">1</span></pre>
HTTPSのオプションを指定します。<br />
1:Easy - HTTPとHTTPSの両方のアクセスを許可する<br />
2:Secure - HTTPSアクセスを保護するためにすべての要求をリダイレクトする<br />
<br />
<pre class="tr_bq">-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://tadamatuapps.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=tadamatuapps.com
-------------------------------------------------------------------------------</pre>
やっと成功!<br />
<br />
さてもう一つwwwサブドメインつきのドメイン名を設定したかったので、もう一度実行。<br />
次はパラメータにドメインをつけて。<br />
<pre class="tr_bq">$ sudo certbot --authenticator standalone --installer apache -d www.tadamatuapps.com</pre>
<br />
<pre class="tr_bq">We were unable to find a vhost with a ServerName or Address of www.tadamatuapps.com.
Which virtual host would you like to choose?
(note: conf files with multiple vhosts are not yet supported)
-------------------------------------------------------------------------------
1: 000-default-le-ssl.conf | tadamatuapps.com | HTTPS | Enabled
2: default-ssl.conf | | HTTPS |
3: 000-default.conf | | | Enabled
-------------------------------------------------------------------------------
Select the appropriate number [1-3] then [enter] (press 'c' to cancel):</pre>
複数はサポートされていません的なメモが。<br />
一旦 [c] を入力し、処理をキャンセル。<br />
<br />
上記に移動して、[default-ssl.conf] を001としてコピー。<br />
<pre class="tr_bq"># cd /etc/apache2/sites-available/
# cp default-ssl.conf 001-default-ssl.conf</pre>
<br />
再度、certbotを実行。<br />
<pre class="tr_bq">$ sudo certbot --authenticator standalone --installer apache -d www.tadamatuapps.com</pre>
<br />
<pre class="tr_bq">-------------------------------------------------------------------------------
1: default-ssl.conf.bk | | HTTPS |
2: 000-default-le-ssl.conf | tadamatuapps.com | HTTPS | Enabled
3: default-ssl.conf | | HTTPS |
4: 000-default.conf | | | Enabled
5: 001-default-ssl.conf | | HTTPS |
-------------------------------------------------------------------------------
Select the appropriate number [1-5] then [enter] (press 'c' to cancel): <span style="color: red;">5</span></pre>
<br />
成功しました。<br />
<pre class="tr_bq">-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://www.tadamatuapps.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=www.tadamatuapps.com
-------------------------------------------------------------------------------</pre>
<br />
最後にApacheの再起動。<br />
<pre class="tr_bq">$ sudo service apache2 restart</pre>
<br />
<h4>
確認</h4>
証明書が作成されているか確認。<br />
<pre class="tr_bq"># cd /etc/letsencrypt/live/tadamatuapps.com
# ls
cert.pem chain.pem fullchain.pem privkey.pem
#cd //etc/letsencrypt/live/www.tadamatuapps.com
# ls
cert.pem chain.pem fullchain.pem privkey.pem</pre>
<div>
<br /></div>
設定したドメインにブラウザでHTTPSアクセスすると・・・<br />
<a href="https://tadamatuapps.com/tool/sslcheck/">https://tadamatuapps.com/tool/sslcheck/</a><br />
うまく動作しました!<br />
<br />
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<h4>
自動更新(Renew)設定</h4>
「Let's Encrypt」は3ヶ月ごとに更新が必要です。<br />
最後に自動的に更新(Renew)されるように対応をします。<br />
まずは任意の場所に自動実行するためのシェル(sh)を作成します。<br />
<pre class="tr_bq">
$ sudo vi cerbotrenew.sh</pre>
<pre class="tr_bq">
#!/bin/sh<br /># 一旦サーバを止める<br />service apache2 stop;<br /># 証明書の再発行<br />certbot renew;<br /># サーバを起動<br />service apache2 start</pre>
<br />
これをcronに登録します。<br />
<pre class="tr_bq">
$ sudo crontab -e</pre>
<pre class="tr_bq">
### Let's Encrypt ### 毎週月曜<br />0 3 * * 1 sudo sh /home/tadamatu0001/sh/cerbotrenew.sh</pre>
<br />
<h4>
【参考】</h4>
<a href="https://letsencrypt.jp/" target="_blank">Let's Encrypt 総合ポータル</a><br />
<a href="http://d.hatena.ne.jp/pyopyopyo/20170906/p1" target="_blank">debian で無料のSSL/TLS証明書(Let's Encrypt) を使う</a><br />
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-84953487799789195642018-01-19T14:46:00.000+09:002018-01-19T14:46:36.410+09:00[HTML] httpsかhttpかを気にせずリンク先URIにアクセスさせる<div>
[<a>タグ] や [<img>タグ] に指定するURIは、[http:] [https:] を省略して記載することができます。<br />
<pre class="tr_bq"><a href="//google.co.jp"></pre>
<br />
<a name='more'></a>こうすることで遷移元のページを、現在のプロトコルで開くことができます。<br />
httpでページを開いている場合は<br />
<pre class="tr_bq"><a href="http://google.co.jp"></pre>
httpsでページを開いている場合は<br />
<pre class="tr_bq"><a href="https://google.co.jp"></pre>
</div>
<div>
と解釈されます。<br />
<br />
<h4>
メリット</h4>
大きなメリットは、httpsで開くページの中にhttpのリンクが誤って混在することを防ぎます。<br />
httpのサクセスが発生することにより暗号化されずに通信されてしまうため危険です。<br />
<br />
ローカルで開発中はhttpでアクセスでき、サーバ環境に移したときにhttpsに切り替わるので開発が少し楽になります。<br />
<br /></div>
<div>
<h4>
【参考】</h4>
</div>
<div>
<ul>
<li><a href="https://qiita.com/arai-wa/items/d9b73539898d658b58c5" target="_blank">リンクの`http:`や`https:`を省略して現在のプロトコルでリンク先にアクセスさせる</a></li>
</ul>
</div>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-65643509162133635102018-01-19T12:02:00.001+09:002018-01-21T09:34:05.851+09:00[PHP] シェルコマンド(Linuxコマンド)を実行する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlFFCHuiUWCgV-D_CWRqv_2bB_diGVg7iAuro2Z6m0MnMSrRKe2jBvqOBZKz2hH2y2LMuy0DuXVvUlqrVxQXWJnRVtfDGF3uKv6kB5AUzZADyUPtH-ztXsg8MF0mLS0igC2FSEvNvIs3E/s1600/1200px-PHP-logo.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1200" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlFFCHuiUWCgV-D_CWRqv_2bB_diGVg7iAuro2Z6m0MnMSrRKe2jBvqOBZKz2hH2y2LMuy0DuXVvUlqrVxQXWJnRVtfDGF3uKv6kB5AUzZADyUPtH-ztXsg8MF0mLS0igC2FSEvNvIs3E/s320/1200px-PHP-logo.svg.png" width="320" /></a></div>
<br />
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja">Google Cloud Platform</a>(GCP)[VMインスタンス]上で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)
PHP(7.0.27)</pre>
<br />
PHPでシェルコマンド(Linuxコマンド)を実行したいときがたまにある。<br />
[shell_exec] を利用することで実行ができる。<br />
<br />
<a name='more'></a><h4>
単純な実行</h4>
<pre class="tr_bq">$output = shell_exec("ls");
結果例)index.php main.css</pre>
こうすることで [ls] コマンドの結果が [$output] にセットされる。<br />
<br />
<h4>
カレントディレクトリ</h4>
<pre class="tr_bq">$output = shell_exec("pwd");
結果例)/var/www/html/test</pre>
phpを実行しているディレクトリがカレントディレクトリとなる。<br />
<br />
<h4>
その他の実行</h4>
<b>シェルファイルの実行</b><br />
もちろんシェルファイルも実行できる<br />
<pre class="tr_bq">$output = shell_exec("sh ../xxx.sh");</pre>
<div>
あたまに [sh] コマンドを記載しないと実行できないので注意</div>
<div>
<b><br /></b></div>
<b>パイプの実行</b><br />
もちろんパイプを使って複数実行も可能<br />
<pre class="tr_bq">$output = shell_exec("ps axu | grep www");</pre>
<br />
<h4>
【参考】</h4>
<a href="https://hacknote.jp/archives/14942/" target="_blank">phpでシェルファイルを実行する</a><br />
<a href="http://php.net/manual/ja/function.shell-exec.php" target="_blank">shell_exec - PHPマニュアル</a>tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-73756458442478734292018-01-18T19:30:00.000+09:002018-01-21T09:33:57.664+09:00[Apache] Apache2.4 (Debian) でファイル一覧を無効にする<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6AYHP_NYgOEhW_Jjh5-lN8Xc-O1UudaoKpTFCpQpMRE0swhe9G_fzYHBurvK0MiWkvZs18g0hVRYHPmWB6EAX18lHPVoL-EoK3K4lTWOkd9SpETgrkorxUYEI07iOumIir_1BEmxnQpU/s1600/server_filelist.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="261" data-original-width="517" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6AYHP_NYgOEhW_Jjh5-lN8Xc-O1UudaoKpTFCpQpMRE0swhe9G_fzYHBurvK0MiWkvZs18g0hVRYHPmWB6EAX18lHPVoL-EoK3K4lTWOkd9SpETgrkorxUYEI07iOumIir_1BEmxnQpU/s640/server_filelist.png" width="640" /></a></div>
<br />
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja">Google Cloud Platform</a>(GCP)[VMインスタンス]上で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)
Apache(2.4.25)</pre>
<br />
Webサーバのファイル一覧がApacheのデフォルトでは覗けてしまう。<br />
これではセキュリティ上問題なので、制御したい。<br />
<pre class="tr_bq">/etc/httpd/conf/httpd.conf</pre>
とよく記載があるが、Debian系のApache2.4での設定ファイルが違ったのでメモ。<br />
<div>
<a name='more'></a></div>
<h4>
設定ファイルのありか</h4>
<div>
設定ファイルは以下にある。</div>
<pre class="tr_bq">/etc/apache2/apache2.conf</pre>
<div>
<br /></div>
<div>
これを以下のように編集する。</div>
<pre class="tr_bq">$ sudo vi /etc/apache2/apache2.conf
:
<Directory /var/www/>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
:</pre>
<div>
<br /></div>
<div>
[Indexes] の前に [-(マイナス)] をつける。[Indexes] を削除してもOK。</div>
<div>
[FollowSymLinks] の前に [+(プラス)] をつけないとApacheの再起動時にエラーになるので注意。</div>
<div>
<br /></div>
<h4>
Apacheの再起動</h4>
<div>
設定を有効にするためにApacheを再起動します。</div>
<pre class="tr_bq">$ sudo service apache2 restart</pre>
<div>
<br /></div>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-18014293255386757712018-01-17T23:26:00.000+09:002018-01-21T09:33:49.338+09:00[Word Press] サーバ切り替えの記録<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgts0wZN-pP4spo0XMnYBmBqc5sMa4qKEF3Tx4Sud33swQydr5-tx8DU7ysWlsRjOtqNq21EvRmPRHJMV15OxKGF9H-ithj-iaaIhqLy5JAYxLScZZsnNSPvJy3ZfUjSwSpf9kWCoaHKng/s1600/wordpress-bg-medblue.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="630" data-original-width="1200" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgts0wZN-pP4spo0XMnYBmBqc5sMa4qKEF3Tx4Sud33swQydr5-tx8DU7ysWlsRjOtqNq21EvRmPRHJMV15OxKGF9H-ithj-iaaIhqLy5JAYxLScZZsnNSPvJy3ZfUjSwSpf9kWCoaHKng/s640/wordpress-bg-medblue.png" width="640" /></a></div>
<br />
<pre class="tr_bq">【試した環境】
切替元:Amazon EC2(Red Hat 4.8.3-9)
切替先:Google Cloud Platform(Debian 9.2)
Word Press:最新バージョン(4.9.2–ja)</pre>
<br />
<b>[Word Press] のサーバ切替</b>の記録です。<br />
<b>[All-in-One WP Migration] というプラグイン</b>を使って引越しをします。<br />
<a name='more'></a><br />
<h4>
前提条件</h4>
<b>[php] [Apache] [MySQL] はインストール済み</b>とします。<br />
<br />
<br />
<h4>
移行先に [Word Press] をインストール</h4>
[Word Press] にインストール先へ移動<br />
<pre class="tr_bq">$ cd /var/www/html</pre>
<br />
[Word Press] のダウンロード<br />
<pre class="tr_bq">$ wget https://ja.wordpress.org/wordpress-4.9.1-ja.zip</pre>
<br />
必要に応じて解凍ツールのインストール<br />
<pre class="tr_bq">$ sudo apt-get install unzip</pre>
<br />
解凍<br />
<pre class="tr_bq">$ sudo unzip -q wordpress-4.9.1-ja.zip</pre>
解凍したファイルは不要なので削除<br />
<pre class="tr_bq">$ rm wordpress-4.9.1-ja.zip</pre>
<br />
以下にアクセスして設定を進める<br />
<pre class="tr_bq">http://[あなたの引越し先アドレス]/wordpress/</pre>
<br />
今回はお引越しの記事なので設定は割愛します。<br />
指示に従い設定するだけなので、大きな問題はないと思います。<br />
<br />
<h4>
移動元の [Word Press] からエクスポート</h4>
<b>バージョンのズレによるリスクを回避</b>するため、<b>[Word Press 本体の更新]</b> と <b>[プラグインの更新]</b> をして最新にしておきましょう。<br />
<br />
今回使う<b>プラグイン [All-in-One WP Migration]</b> をインストールする。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRFCjZPHjO-gPEUZlpo3K77rIRPq3fXM6scxTK2vz4K6XVyqphufFbzxWNJyifkPo4QO_NR5bcc61t6R4FRUOwfXTYGGCtbGiCVwpIqHeCLgzUdDw8W5G_kbRcEwuOvQGHFQzDhgEi8f0/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+21.58.07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="542" data-original-width="1082" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRFCjZPHjO-gPEUZlpo3K77rIRPq3fXM6scxTK2vz4K6XVyqphufFbzxWNJyifkPo4QO_NR5bcc61t6R4FRUOwfXTYGGCtbGiCVwpIqHeCLgzUdDw8W5G_kbRcEwuOvQGHFQzDhgEi8f0/s400/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+21.58.07.png" width="400" /></a></div>
<br />
インストール後、メニューから [エクスポート] を選びます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXnIp2QkeUR9p_dKsUkYsftwMZOVjqb0luaxYMB8jlSuQsYQTIpUfBCejzaO7ql00KM7mu3TN_0AqtpVhUNpeCdP9OzN-3KS4NJJkrFRP8fy8E00rnmuPhZgthh9p_M5GaTf-M7zjxpTM/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+21.58.43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="238" data-original-width="674" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXnIp2QkeUR9p_dKsUkYsftwMZOVjqb0luaxYMB8jlSuQsYQTIpUfBCejzaO7ql00KM7mu3TN_0AqtpVhUNpeCdP9OzN-3KS4NJJkrFRP8fy8E00rnmuPhZgthh9p_M5GaTf-M7zjxpTM/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+21.58.43.png" width="320" /></a></div>
エクスポート先 で [ファイル] を選択<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioE1uAimfm81yH6g9eoOhyphenhyphenU9h771urZAIVZwyx8jSihdnUf9v_FT8AVYd993ZkBXv1S8VROLuFPX-OIJjeaEiPg24dg3canbsympsdT7j7HgzJkIflzmQjYZ-ijpEaPppH89aE9fhYa3c/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+21.59.22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1030" data-original-width="1368" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioE1uAimfm81yH6g9eoOhyphenhyphenU9h771urZAIVZwyx8jSihdnUf9v_FT8AVYd993ZkBXv1S8VROLuFPX-OIJjeaEiPg24dg3canbsympsdT7j7HgzJkIflzmQjYZ-ijpEaPppH89aE9fhYa3c/s400/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+21.59.22.png" width="400" /></a></div>
[DOWNLOAD XXXXXX] をクリックして、<b>エクスポートファイルをダウンロード</b>。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX7g4vX57ZQdvzZwAN0rSatz6izd6QfhfrrmPSmzkb5qcTY2OIN3IB4A7wrJ89_GmMmRqjX-RLPjGsTXK5Rhqk5a-867eOWmjfd4jA8W-7g2Hu48XX3gVv6_wXUDS0Z5yy7UECDA4BoOg/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+21.59.48.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="372" data-original-width="998" height="119" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX7g4vX57ZQdvzZwAN0rSatz6izd6QfhfrrmPSmzkb5qcTY2OIN3IB4A7wrJ89_GmMmRqjX-RLPjGsTXK5Rhqk5a-867eOWmjfd4jA8W-7g2Hu48XX3gVv6_wXUDS0Z5yy7UECDA4BoOg/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+21.59.48.png" width="320" /></a></div>
<br />
<h4>
移動先の [Word Press] へインポート</h4>
こちらも <b>[Word Press 本体の更新]</b> と <b>[プラグインの更新]</b> をして最新にしておきます。<br />
<br />
同様に<b>プラグイン [All-in-One WP Migration] をインストール</b>する。<br />
<br />
インストール後、メニューから [インポート] を選びます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifU6XiLE9z_1KJlj5PR7pEHKtwWhupGaUCrLAR97_Ptrs-sV1P4oKl7NfhHkQcb1R6OVC-qOO0-JX_tCsL0td4qnEEZwtLczyXOnlMLu373FBiPQMD5bNq9t_zhVKrXLP8Xu4RjvV94QM/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+22.19.00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="228" data-original-width="658" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifU6XiLE9z_1KJlj5PR7pEHKtwWhupGaUCrLAR97_Ptrs-sV1P4oKl7NfhHkQcb1R6OVC-qOO0-JX_tCsL0td4qnEEZwtLczyXOnlMLu373FBiPQMD5bNq9t_zhVKrXLP8Xu4RjvV94QM/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+22.19.00.png" width="320" /></a></div>
インポート元として [ファイル] を選択<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaR8ZCaNYVIvNVgPQgMFmm-sZFr0RAcmfJlg_TjtpxrcH5luaF6qNxkI2GEmzL6r1zlkJD-JztO_5hEbEWd1hobUQwY6n9NCYQaNt-GUdpBQFrfRBOcxuOEGhbtq2Ak0Fg48llhxq_n4A/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+22.19.16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1106" data-original-width="1386" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaR8ZCaNYVIvNVgPQgMFmm-sZFr0RAcmfJlg_TjtpxrcH5luaF6qNxkI2GEmzL6r1zlkJD-JztO_5hEbEWd1hobUQwY6n9NCYQaNt-GUdpBQFrfRBOcxuOEGhbtq2Ak0Fg48llhxq_n4A/s400/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+22.19.16.png" width="400" /></a></div>
<br />
<b>注意事項が表示</b>されます。<br />
バックアップしておいた方がよいよなどと書いてありますが、今回は新しく作ったものなので、無視して <b>[PROCEED >]</b> で進んで問題ありません。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIXlO1CFRKi5wvExPvR2xoizdeODOUiXHbyP-mls7f7qmQTWng_bV_dAy99u_PLoXPlIVEtCXj-FiKQI-HYZbQi1ViM1FcoYrxss9RO4bzhCw903JnTssVeIrjumYu6KhdG2kaU8N5GX0/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+22.19.50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="404" data-original-width="998" height="161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIXlO1CFRKi5wvExPvR2xoizdeODOUiXHbyP-mls7f7qmQTWng_bV_dAy99u_PLoXPlIVEtCXj-FiKQI-HYZbQi1ViM1FcoYrxss9RO4bzhCw903JnTssVeIrjumYu6KhdG2kaU8N5GX0/s400/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+22.19.50.png" width="400" /></a></div>
これでインポート完了しました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjagnL3pdp-9B0Hgzm7ZZ2izyDDQ1stCkhOykDz2nEjiAdSEYIZ2BqlyW9cTQx3DHhwhr0_qMN5Foh4-9KW0PniQCZw140K2lubdV7f6Zx_HD2k_vAK6YYz_SDDbP7PKcji8OZijnuVTXU/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+22.20.25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="406" data-original-width="988" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjagnL3pdp-9B0Hgzm7ZZ2izyDDQ1stCkhOykDz2nEjiAdSEYIZ2BqlyW9cTQx3DHhwhr0_qMN5Foh4-9KW0PniQCZw140K2lubdV7f6Zx_HD2k_vAK6YYz_SDDbP7PKcji8OZijnuVTXU/s400/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+22.20.25.png" width="400" /></a></div>
<br />
ほぼ完全にインポートできていることが確認できました。<br />
<br />
<h4>
ドメインの調整</h4>
<b>ドメインサイトで、切り替え先のIPに切り替え</b>ます。<br />
<br />
今回は <b>[<a href="https://www.onamae.com/" target="_blank">お名前.com</a>] のサイトを例</b>に説明します。<br />
※他のドメイン登録サービスの場合は、<b>キーワードは変わらないはず</b>なのでそれを頼りに設定してください。<br />
<br />
[ドメインNavi] にログイン<br />
上部タブの [ドメイン設定] - [DNS関連の設定] を選択<br />
対象の [ドメイン名] を選んで [次へ]ボタン をクリック<br />
[DNSレコード設定を利用する] 横の [設定する]ボタン をクリック<br />
<div>
<br /></div>
[登録済み] - [A/AAAA/CNAME/MX/NS/TXTレコード]<br />
該当する [ドメイン名] のIPを [切り替え先のIP] に入力し、変更を確定します。<br />
<br />
<h4>
【参考】</h4>
<ul>
<li><a href="https://ja.wordpress.org/download/" target="_blank">WORDPRESS.ORG</a></li>
<li><a href="https://server-setting.info/debian/nginx-wordpress-debian7.html#wordpress_5" target="_blank">Debian 7 でLAMP(Nginx+MySQL+PHP)インストールからWordPressを動かすまで(Nginx編)</a></li>
<li><a href="https://its-office.jp/blog/wordpress/2016/04/16/WP-Migration.html" target="_blank">WORDPRESSのお引っ越しプラグインはALL-IN-ONE WP MIGRATIONが最強</a></li>
</ul>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-53259008177315349112018-01-17T22:41:00.001+09:002018-01-17T22:41:16.985+09:00[Word Press] FTPを使わない本体の更新 [Debian + apache2]<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwGYTcZl3cz2eRA5Tzc70ybR5B1CEcK_3OdxgsmJfFWhz96kzRENfmvbsTwZHBGC1Qb1UjS-JJE139l-x6fF4jh3HgzuZHivNZRTDry_w_1x58qgb_OVMXlDlVvm8OJNlXevxooTJtuZY/s1600/wordpress-bg-medblue.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="630" data-original-width="1200" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwGYTcZl3cz2eRA5Tzc70ybR5B1CEcK_3OdxgsmJfFWhz96kzRENfmvbsTwZHBGC1Qb1UjS-JJE139l-x6fF4jh3HgzuZHivNZRTDry_w_1x58qgb_OVMXlDlVvm8OJNlXevxooTJtuZY/s640/wordpress-bg-medblue.png" width="640" /></a></div>
<br />
[Word Press] の本体を更新しようとすると [FTP] のログインを求められる場合、以下の方法で解決ができます。<br />
<a name='more'></a><br />
これをしておくと、わざわざ [FTP] の設定をすることなく、ボタンで一発更新や、自動更新ができます。<br />
<br />
<h4>
解決方法</h4>
よく以下のような解決方法を見るが・・・<br />
<pre class="tr_bq">$ sudo chown -R apache:apach [Word Press ディレクトリ]</pre>
<br />
[Debian + apache2] の環境の場合は以下が正解<br />
<pre class="tr_bq">$ sudo chown -R www-dat:www-dat [Word Press ディレクトリ]</pre>
<div>
<br /></div>
<h4>
【参考】</h4>
<br />
<ul>
<li><a href="http://trip.kobanza.me/web/wordpress/auto_upgrade/" target="_blank">FTPを使わないWordPress自動更新(Debian)</a></li>
</ul>
<br />
<br />
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-84363602902700547462018-01-17T21:33:00.002+09:002018-12-04T09:04:43.691+09:00[phpMyAdmin] permission to access エラーとなったときの対処メモ<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiElJACse55L8CdcNotPwqPgg7oI99SCxB_vdK_EQX-lts09H-yYvc2VNYwc2PAdF3-eyq1ownwBuX0ZooIG05k4lzwu0TcnnY1dFJAlfSxFZjGuIQMuzK6AI90vZ9nVjfWk042382v2uA/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+20.20.45.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="518" data-original-width="1574" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiElJACse55L8CdcNotPwqPgg7oI99SCxB_vdK_EQX-lts09H-yYvc2VNYwc2PAdF3-eyq1ownwBuX0ZooIG05k4lzwu0TcnnY1dFJAlfSxFZjGuIQMuzK6AI90vZ9nVjfWk042382v2uA/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+20.20.45.png" width="640" /></a></div>
<br />
<pre class="tr_bq">【試した環境】
Amazon EC2(AWS)[VMインスタンス]上で実行
OS : Linux(Red Hat 4.8.3-9)</pre>
<b><br /></b>
<b>[phpMyAdmin]</b> にアクセスした時に<b>エラー [You don’t have permission to access /phpmyadmin/ on this server.]</b> が発生した時の対処メモです。<br />
<br />
<a name='more'></a>
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<br />
エラーメッセージのとおり<b>アクセス権限がない</b>ことを表しています。<br />
<br />
phpMyAdminの<b>設定ファイル[phpMyAdmin.conf] 内でIP制限</b>が入っており、そのため拒否されている。<br />
ネットワークアクセスしている<b>グローバルIPを許可</b>すればアクセスが許可されます。<br />
<br />
<h4>
[phpMyAdmin.conf] を探す</h4>
<pre class="tr_bq">$ sudo find / -name phpMyAdmin.conf
/etc/httpd/conf.d/phpMyAdmin.conf</pre>
<br />
<h4>
[phpMyAdmin.conf] を編集する</h4>
<pre class="tr_bq">$ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf</pre>
<br />
<pre class="tr_bq"><Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 99.99.99.99
Require ip 99.99.99.99 //ここに許可するIPアドレスを追加する
Require ip ::1
</RequireAny>
</IfModule></pre>
<br />
<a href="http://backleaflet.blogspot.jp/2018/01/ip.html" target="_blank">グローバルIPアドレスの調べ方</a><br />
<br />
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<h4>
apacheを再起動</h4>
<pre class="tr_bq">$ sudo /sbin/service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]</pre>
<br />
無事アクセスできました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-LArJliRJ4JulUV37gP0f6QxEwAGcnSFcsJywpNE9F3I9QdoxIcwCBIOZqkiL1gs_ANpFzWV0gLLjWrsdo7UWkEeIDwP27Y1PPQqut0Vyzak5E-fvl7XuJrVHictAAUPq0PdttzmHrRs/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+20.38.44.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1056" data-original-width="1586" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-LArJliRJ4JulUV37gP0f6QxEwAGcnSFcsJywpNE9F3I9QdoxIcwCBIOZqkiL1gs_ANpFzWV0gLLjWrsdo7UWkEeIDwP27Y1PPQqut0Vyzak5E-fvl7XuJrVHictAAUPq0PdttzmHrRs/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-17+20.38.44.png" width="640" /></a></div>
<br />
<br />
【参考】<br />
<ul>
<li><a href="https://ex1.m-yabe.com/archives/2977" target="_blank">phpMyAdminにアクセスすると「You don’t have permission to access /phpMyAdmin/ on this server.」</a></li>
</ul>
<br />
<br />
<br />
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-22039759582255232862018-01-17T21:31:00.000+09:002018-01-17T21:31:10.634+09:00グローバルIPアドレスの調べ方<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ_NesQGft4VY2iWLlMJKtsC0N-GRJ_YTpGwstvniADess_9gitRxlKmXuoxK6aMyjWBRD7vzeu3SV1KCc_TB6yTIMX7_6wQrGwcK6NhiwQ9Nd-OfhOcYqU_DxF6aFNLwr4ZlQrXvRRc0/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588_2018-01-17_21_16_37.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="1488" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ_NesQGft4VY2iWLlMJKtsC0N-GRJ_YTpGwstvniADess_9gitRxlKmXuoxK6aMyjWBRD7vzeu3SV1KCc_TB6yTIMX7_6wQrGwcK6NhiwQ9Nd-OfhOcYqU_DxF6aFNLwr4ZlQrXvRRc0/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588_2018-01-17_21_16_37.png" width="640" /></a></div>
<br />
自分の端末が利用しているネットワークのIPアドレス(グローバルIPアドレス)を調べる方法です。<br />
<br />
<a name='more'></a><br /><br />
<h4>
手軽にサービスサイトを利用</h4>
以下のどれかにアクセスしてください。ただそれだけです。<br />
<br />
<a href="https://www.cman.jp/network/support/go_access.cgi" target="_blank">IPアドレス確認 - CMAN</a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9WrQDuPJ3rLCJj_5TXgWqIgH9EyxevjqevksofaRL7_d9QK5_xlAoealyHRV440qgvwyidB8f5OFjyd5A8BD42jq2h7QHNgOT6F7CXmv0ulS0j-3LVb7hUWlRq2KdfdeePDlSpYIrXlE/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588_2018-01-17_21_16_37.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="1488" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9WrQDuPJ3rLCJj_5TXgWqIgH9EyxevjqevksofaRL7_d9QK5_xlAoealyHRV440qgvwyidB8f5OFjyd5A8BD42jq2h7QHNgOT6F7CXmv0ulS0j-3LVb7hUWlRq2KdfdeePDlSpYIrXlE/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588_2018-01-17_21_16_37.png" width="640" /></a></div>
<br />
<a href="http://www.ugtop.com/spill.shtml" target="_blank">確認くん - ugtop</a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPaF6niTr2zW32IcTqhgk64e8zlPIndaJL0HNL0VgvSjJxAHqscBYciJdnO7sA8qcmFCOQ643WQg60TaqELH-uEzz2ur8dPlJHTfYm-ZiKyowhu56MBH5c2uLQGx63sAySOnHrsmYvdP4/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588_2018-01-17_21_25_13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="416" data-original-width="1600" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPaF6niTr2zW32IcTqhgk64e8zlPIndaJL0HNL0VgvSjJxAHqscBYciJdnO7sA8qcmFCOQ643WQg60TaqELH-uEzz2ur8dPlJHTfYm-ZiKyowhu56MBH5c2uLQGx63sAySOnHrsmYvdP4/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588_2018-01-17_21_25_13.png" width="640" /></a></div>
<br />
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-18471978802614150432018-01-17T10:13:00.000+09:002018-01-21T09:33:02.495+09:00[Google Cloud Platform] サブドメイン名を設定する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDUakzBkG39syZSOdqFro-yoIHoDHuxEDfiwX7rpGoZWlvhz3n3Rss7iCt9R1eM8CA3Kdj_izJZeYHwlzfemJSDIgjquWe7JGAXmXtSz39prr-pNgT1duwLIu3ND96xYo5S43QOGEKTA/s1600/gcp-series01_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="800" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDUakzBkG39syZSOdqFro-yoIHoDHuxEDfiwX7rpGoZWlvhz3n3Rss7iCt9R1eM8CA3Kdj_izJZeYHwlzfemJSDIgjquWe7JGAXmXtSz39prr-pNgT1duwLIu3ND96xYo5S43QOGEKTA/s640/gcp-series01_01.png" width="640" /></a></div>
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja" target="_blank">Google Cloud Platform</a>(GCP)[VMインスタンス]で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)
<a href="https://www.onamae.com/" target="_blank">お名前.com</a></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.onamae.com/" target="_blank">
<img alt="" border="0" height="250" src="https://www28.a8.net/svt/bgt?aid=151130423960&wid=001&eno=01&mid=s00000000018015031000&mc=1" width="300" /></a>
<img alt="" border="0" height="1" src="https://www11.a8.net/0.gif?a8mat=2HZ8ZB+FVK5IQ+50+2HHNXT" width="1" />
</div>
<div>
<br />
今回は [Google Cloud Platform(GCP)] にサブドメイン名を設定したいと思います。<br />
IPではなく、適切などメインでアクセスをしてもらえるようになります。<br />
<br />
<a name='more'></a><h4>
前提条件</h4>
[GCP] で [apache] などの公開のための設定は済んでいるものとします。<br />
[メインドメイン] は [<a href="https://www.onamae.com/" target="_blank">お名前.com</a>] などで取得済みとします。<br />
<br />
<h4>
固定IPを設定</h4>
[VMインスタンス] を利用している場合、<b>再起動するたびに [外部IPアドレス] が変わって</b>しまうため、まずは <b>[外部IPアドレス] を固定</b>します。<br />
<br />
[VPCネットワーク] - [外部IPアドレス] にアクセス<br />
[タイプ] を [静的] に設定<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB7PSsioUO9o14ziPHTGBlWxXUu0Tsy1lfO39bRidlvoG723lWuywSqW0XIz78MLTEVB7PRbjHFV4wjeeMj8XN32v58b4hll0TW4RTUCvx5ipGQWZTGMUCWsPX3w0fimmRAqAYsOE2yMU/s1600/domein_gaibu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="84" data-original-width="868" height="60" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB7PSsioUO9o14ziPHTGBlWxXUu0Tsy1lfO39bRidlvoG723lWuywSqW0XIz78MLTEVB7PRbjHFV4wjeeMj8XN32v58b4hll0TW4RTUCvx5ipGQWZTGMUCWsPX3w0fimmRAqAYsOE2yMU/s640/domein_gaibu.png" width="640" /></a></div>
<br />
注意)これをするとIPアドレスを予約している状態になるため、<b>インスタンスを停止していても費用がかかる</b>ようになります。(インスタンスを<b>停止していなければ含まれていますので費用はかかりません</b>)<br />
<br />
<h4>
サブドメイン名とIPの紐付け</h4>
今回は <b>[<a href="https://www.onamae.com/" target="_blank">お名前.com</a>] のサイトを例</b>に説明します。<br />
※他のドメイン登録サービスの場合は、<b>キーワードは変わらないはず</b>なのでそれを頼りに設定してください。<br />
<br />
[ドメインNavi] にログイン<br />
上部タブの [ドメイン設定] - [DNS関連の設定] を選択<br />
対象の [ドメイン名] を選んで [次へ]ボタン をクリック<br />
[DNSレコード設定を利用する] 横の [設定する]ボタン をクリック<br />
<br />
[A/AAAA/CNAME/MX/NS/TXT/SRV/DSレコード] に以下を設定します。<br />
[ホスト名] に [サブドメイン]<br />
[VALUE] に [外部IPアドレス]<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhifjbHMJdDKwWC6JAhVUo_-OYyI_LS2cD-KMrSo6s5_fM6o6SNlo2r03GseC78B6ahLmU-Lix1mHNexXu7f4bygvWy3wNXZEKf2TWFDzH1wONHm-WvjyokimfEdpM49D1aEjyqxK_HJm8/s1600/domein_setting.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="157" data-original-width="681" height="146" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhifjbHMJdDKwWC6JAhVUo_-OYyI_LS2cD-KMrSo6s5_fM6o6SNlo2r03GseC78B6ahLmU-Lix1mHNexXu7f4bygvWy3wNXZEKf2TWFDzH1wONHm-WvjyokimfEdpM49D1aEjyqxK_HJm8/s640/domein_setting.png" width="640" /></a></div>
最後に一番下の [確認画面へ進む] から登録を完了すれば、サブドメインとIPの紐付けは完了です。<br />
<br />
注意)完了画面が表示されたからといって、<b>すぐに反映はされません</b>。たくさんのDNSサーバに反映される必要がありますので、数分~数時間の時間がかかります。あせらず気長に待ちましょう。<br />
<br />
<h4>
確認</h4>
DNSサーバへの反映がすめば、上記に<b>設定したホスト名でアクセスができる</b>ようになります。<br />
今までIPで入力していた部分を、今回設定したホスト名に変更してブラウザなどアクセスして確認してみましょう。<br />
<br />
<pre>http://[IPアドレス(99.99.99.99)]/index.html
↓
http://[今回設定したドメイン名(sub.mydomein.com)]/index.html</pre>
<br /></div>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com3tag:blogger.com,1999:blog-2187022324082530399.post-16687520541718069872018-01-16T15:49:00.000+09:002018-12-04T09:04:56.431+09:00[Android Studio] Emulator: PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [PATH]<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXJxMtMMockt5cFBpjWQM2bEzcBjRLWx65V6gJCjcHkAjZxzubr37GVsX2_VL2gsbLFP9MeIC22cy2NpWEJCTdfCtcsr3kUoi5AVFVjFgoP8nLHmjOFei2he60zYulyfulEPmACCuuo90/s1600/android-studio-logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="800" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXJxMtMMockt5cFBpjWQM2bEzcBjRLWx65V6gJCjcHkAjZxzubr37GVsX2_VL2gsbLFP9MeIC22cy2NpWEJCTdfCtcsr3kUoi5AVFVjFgoP8nLHmjOFei2he60zYulyfulEPmACCuuo90/s640/android-studio-logo.png" width="640" /></a></div>
<br />
[Androi Studio] のバージョンが3.x系になり、<b>[Android Studio 3.0.1] へバージョンアップ</b>(実質は上書きインストール)したときの話です。<br />
<br />
<b>[Androidエミュレータ] で実行</b>をしようとすると以下のようなエラーが・・・<br />
<pre class="tr_bq">Emulator: PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [PATH]!</pre>
<br />
<b>解決した</b>のでその方法をメモ。<br />
<a name='more'></a>
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<br />
<h4>
環境変数の確認</h4>
まず、<b>コマンドで環境変数を確認</b>。<br />
たしかに [ANDROID_SDK_ROOT] に該当のフォルダが指定されている。<br />
<pre class="tr_bq">$ echo $ANDROID_SDK_ROOT
/cocos2dx3/sdk</pre>
<div>
<br />
<h4>
Android Studio の SDK を確認</h4>
次に <b>[Androi Studio] の [Project Structure] で [SDK] のありかを確認</b>。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv1xb_9kdpsJjcU9wrAIbP7y0Hb9N1DB5EEd151Jt8n4aXHI3Bmz8e9PRlVoUo_hL_GR0Oj-ANQKlP1OFMJX7gejug-2Fd04-TrYsOTvwK5-hZqLqcroiRlM58F5LjOVEaqhFQ-swy5H8/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-16+15.37.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="243" data-original-width="704" height="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv1xb_9kdpsJjcU9wrAIbP7y0Hb9N1DB5EEd151Jt8n4aXHI3Bmz8e9PRlVoUo_hL_GR0Oj-ANQKlP1OFMJX7gejug-2Fd04-TrYsOTvwK5-hZqLqcroiRlM58F5LjOVEaqhFQ-swy5H8/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-16+15.37.14.png" width="640" /></a></div>
確かに違う・・・<br />
<br />
<h4>
環境変数の書き換え</h4>
環境変数の [ANDROID_SDK_ROOT] を上記の [Android SDK location] をセットするように書き換えてやります。<br />
[~/.bash_profile] ファイルをエディタで開き、[ANDROID_SDK_ROOT] を以下のように編集。<br />
<pre class="tr_bq">export ANDROID_SDK_ROOT=/Users/user/Library/Android/sdk</pre>
<div>
<a href="http://backleaflet.blogspot.jp/2018/01/mac_16.html" target="_blank">[Mac] 環境変数の確認、設定、削除</a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
[Androidエミュレータ]の実行</div>
<div>
再起動して [Androidエミュレータ] を実行。</div>
<div>
無事起動しました。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0aMHasSFYn16I322aLyRqqqXhlyEiSfwfa_gYHKJYhLiQfeD2bIMS2D7dkKcOLd4vYgNtZEEYN3-1jJy1_rps4cBl4VyoIyVtsaqAL_bc-DspNOG4Wcni9wA6YS80uNoCk6OGYHpqhQ0/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-16+15.44.36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="635" data-original-width="456" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0aMHasSFYn16I322aLyRqqqXhlyEiSfwfa_gYHKJYhLiQfeD2bIMS2D7dkKcOLd4vYgNtZEEYN3-1jJy1_rps4cBl4VyoIyVtsaqAL_bc-DspNOG4Wcni9wA6YS80uNoCk6OGYHpqhQ0/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-16+15.44.36.png" width="457" /></a></div>
<div>
<br /></div>
<br />
<br />
<br /></div>
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-13903089518478039452018-01-16T14:48:00.000+09:002018-01-17T00:40:36.258+09:00[Mac] 環境変数の確認、設定、削除<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzYMKB0jTfwXvOZb-42vo4n4Nq_7-rFeUX1RrupgimUq8sXG-G3TGmkt4Rh9dn5-sQ6w9IuV7RNm0c27ha9iMd_-d92IvinwIww3V_9emKy-kDDdRnqNfshHtJ8XMTTIMCzEyMiFPhSr4/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-16+14.46.40.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="422" data-original-width="854" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzYMKB0jTfwXvOZb-42vo4n4Nq_7-rFeUX1RrupgimUq8sXG-G3TGmkt4Rh9dn5-sQ6w9IuV7RNm0c27ha9iMd_-d92IvinwIww3V_9emKy-kDDdRnqNfshHtJ8XMTTIMCzEyMiFPhSr4/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2018-01-16+14.46.40.png" width="640" /></a></div>
<br />
[Mac] や [Linux] での環境変数の確認、設定、削除の方法です。<br />
<br />
<a name='more'></a><br />
<br />
<h4>
環境変数の確認</h4>
[env] を利用することで環境変数の一覧を表示することができます。<br />
<pre class="tr_bq">
$ env
TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
:
PATH=/usr/bin:/bin:/usr/sbin:/sbin・・・・
LANG=ja_JP.UTF-8
:</pre>
<br />
[grep]コマンドで絞り込むと便利<br />
<pre class="tr_bq">
$ env | grep PATH
PATH=/usr/bin:/bin:/usr/sbin:/sbin・・・・</pre>
<div>
<br /></div>
特定の変数だけを確認する場合は [echo] コマンドに続けて[$変数名]で指定します。<br />
<pre class="tr_bq">
$ echo $LANG
ja_JP.UTF-8</pre>
<div>
<br /></div>
<h4>
環境変数の追加</h4>
<div>
[export] コマンドで追加ができる</div>
<pre class="tr_bq">
$ export ANDROID_SDK_ROOT=/Users/user/Library/Android/sdk</pre>
<br />
PATHのような後ろに追加したい場合は以下のように、変数を使って追加する<br />
<pre class="tr_bq">
$ export hoge=aa
$ export hoge=<b>$hoge:</b>bb
$ env | grep hoge
hoge=aa:bb</pre>
<div>
<br /></div>
<h4>
環境変数の削除</h4>
<div>
[unset] コマンドで削除ができる</div>
<div>
<pre class="tr_bq">
$ unset hoge
$ env | grep hoge
(何も表示されない)</pre>
</div>
<div>
<br />
<h4>
永続的な環境変数の変更</h4>
上記に設定したコマンドは [ターミナル] を<b>再起動すると元に戻って</b>しまう。<br />
<br />
永続的に環境変数やコマンドのエイリアスの設定を変更したい場合は <b>[.bash_profile] や [.bashrc] を直接変更</b>する。<br />
他にもたくさんあるが、<b>基本この2つを変更すれば</b>ことたりる。<br />
<br />
<b>【~/.bash_profile】 </b><br />
ログインのたびに実行される<br />
<br />
<b>【~/.bashrc】</b><br />
シェル(bash)ログインで毎回読込まれ実行される<br />
<br />
<b>【/etc/profile】</b><br />
全ユーザーに適用されるデフォルトの設定ファイル<br />
<br />
<b>【~/.bash_login】</b><br />
ログインして~/.bash_profileが存在しない場合にのみ、存在していれば実行される<br />
<br />
<b>【~/.profile】</b><br />
ログインして~/.bash_profile ・ ~/.bash_loginが存在しない場合にのみ、存在していれば実行される<br />
<br />
<br />
中身は何を書くのか。<br />
それは先に示したコマンドをそのまま記載すれば、適切なタイミングで実行される。<br />
例えばログイン時に[PATH] に [/hoge] というパスを追加したければ、[~/.bash_profile] ファイルに以下のように追記すればよい。<br />
<pre class="tr_bq">
export PATH=$PATH:/hoge</pre>
<br /></div>
<h4>
【参考】</h4>
<div>
<ul>
<li><a href="https://qiita.com/isoppp/items/965ecb8e933a9557d7bf" target="_blank">Macの環境変数の書き方を整理してみた</a></li>
<li><a href="https://qiita.com/ttokutake/items/c9b466312da8239d11b4" target="_blank">シェル変数や環境変数を削除するコマンド</a></li>
<li><a href="https://qiita.com/shyamahira/items/260862743e4c9794b5d2" target="_blank">.bash_profileと.bashrcについて</a></li>
<li><a href="https://qiita.com/hirokishirai/items/5a529c8395c4b336bf31" target="_blank">.bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの?</a></li>
</ul>
</div>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-90102082021030995372018-01-16T13:17:00.001+09:002018-01-19T11:30:08.185+09:00いろいろなSSL証明書の確認方法<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2dn1ckwYx65kQDgKcwRcaaNV0bBDXoOsiaPJSoSV4A3pnPAPaDwVXCAnqchcFyQNIcwrRbJbMsab5xLSaQtd-MlD6N4KGvqH6gS0qk0q4TFepW7WauFmRWOoDyNnHD9WL03BqhQwnwxE/s1600/if_Website_lock_icon_2541670.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="256" data-original-width="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2dn1ckwYx65kQDgKcwRcaaNV0bBDXoOsiaPJSoSV4A3pnPAPaDwVXCAnqchcFyQNIcwrRbJbMsab5xLSaQtd-MlD6N4KGvqH6gS0qk0q4TFepW7WauFmRWOoDyNnHD9WL03BqhQwnwxE/s1600/if_Website_lock_icon_2541670.png" /></a></div>
<br />
今回はさまざまなSSL証明書の確認方法をまとめます。<br />
<br />
<a name='more'></a><br />
<br />
<h4>
無料サイトで簡潔に</h4>
[Qualys SSL Labs]社が提供する、<b>[SSL Server Test(SSL脆弱性診断)]</b>で、SSLサーバ証明書の設定状況の確認や安全性診断などが無料で行えるサイトです。<br />
<br />
以下のにHostNameを指定して実行します。<br />
<a href="https://www.ssllabs.com/ssltest/analyze.html" target="_blank">SSL Server Test</a><br />
<br />
または以下をURLアドレスに入れて実行<br />
https://www.ssllabs.com/ssltest/analyze.html?d=[your host name]<br />
<br />
※標準ポート(HTTPS=443)以外の場合はコロン(:)の後に続けてポート番号を記載してOK<br />
<br />
<h4>
OpenSSLコマンド</h4>
いわずと知れた<b>OpenSSL</b>で確認します。<br />
<pre class="tr_bq">$ openssl s_client -connect google.com:443 < /dev/null 2> /dev/null | openssl x509 -text | grep Not
Not Before: Jan 3 00:55:23 2018 GMT
Not After : Apr 3 00:55:23 2018 GMT</pre>
※標準ポート(HTTPS=443)以外の場合はコロン(:)の後に続けてポート番号を記載してOK<br />
<br />
<b>[Not After]</b> が有効期限<br />
<br />
コマンドの中身を少し説明<br />
[< /dev/null] 実行後にすぐに処理を終えるための EOF<br />
[2> /dev/null] 標準エラー出力を表示させないための<br />
<div>
[openssl x509 -text] 証明書をテキストで表示</div>
<div>
[grep Not] "Not"の付く行でグレップ</div>
<div>
<br /></div>
<h4>
Chromeデベロッパーツールから</h4>
サイトの有効期限なら通常<b>デベロッパーツール</b>から確認できます。<br />
以下はChromeの例ですが、他のブラウザでも確認できるはずです。<br />
<br />
[Chromeメニュー(画面左上)] - [その他ツール] - [デベロッパーツール] を選択<br />
上部メニューの [Security] タブを選択<br />
[View certificate] ボタンをクリック<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvAU63ux_OAHhVSWXRepRHI4LCp5m02Biy-3CJZLUJpUZ844RYNkZBE85qhRX3z4EBYHaUR2I_E5-pxV13L7gDz3Qqzuqk3Nw6BKU-G4SnZ_d31Apwj6Q2AzVFmgqoKQj_Xo2pBSkG3tI/s1600/chrome_seq.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="491" data-original-width="1067" height="294" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvAU63ux_OAHhVSWXRepRHI4LCp5m02Biy-3CJZLUJpUZ844RYNkZBE85qhRX3z4EBYHaUR2I_E5-pxV13L7gDz3Qqzuqk3Nw6BKU-G4SnZ_d31Apwj6Q2AzVFmgqoKQj_Xo2pBSkG3tI/s640/chrome_seq.png" width="640" /></a></div>
<br />
<br />
<h4>
【参考】</h4>
<br />
<ul>
<li><a href="https://qiita.com/moonphase/items/a3a0937f77494e62213c" target="_blank">opensslコマンドでSSL証明書の有効期限を確認する</a></li>
</ul>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-62416267955946496392018-01-15T20:10:00.001+09:002018-12-04T09:05:26.848+09:00[Google Cloud Platform] VSCodeでGCPに接続して同期保存して便利に使う [sftp]<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDUakzBkG39syZSOdqFro-yoIHoDHuxEDfiwX7rpGoZWlvhz3n3Rss7iCt9R1eM8CA3Kdj_izJZeYHwlzfemJSDIgjquWe7JGAXmXtSz39prr-pNgT1duwLIu3ND96xYo5S43QOGEKTA/s1600/gcp-series01_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="800" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDUakzBkG39syZSOdqFro-yoIHoDHuxEDfiwX7rpGoZWlvhz3n3Rss7iCt9R1eM8CA3Kdj_izJZeYHwlzfemJSDIgjquWe7JGAXmXtSz39prr-pNgT1duwLIu3ND96xYo5S43QOGEKTA/s640/gcp-series01_01.png" width="640" /></a></div>
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja" target="_blank">Google Cloud Platform</a>(GCP)[VMインスタンス]で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)
接続元OS : Windows 7
<a href="https://www.microsoft.com/ja-jp/dev/products/code-vs.aspx" target="_blank">Visual Studio Code</a>(VSCode)(1.19.1)
sftp(0.9.5)</pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKTrre36n2gkxxQejxDrl0spD4jRDwr4QyYwJi1DUVduMGRi9TLoId1PaOZETH6a2gSkfZ-ddf7k0JzpQGZXoZZUGnqpYpxLGzrmCHAjX5zZj7Qf2Kr-8t2trjsyLAiQqHXCcThg9m8Nc/s1600/vs-code.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="630" data-original-width="1223" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKTrre36n2gkxxQejxDrl0spD4jRDwr4QyYwJi1DUVduMGRi9TLoId1PaOZETH6a2gSkfZ-ddf7k0JzpQGZXoZZUGnqpYpxLGzrmCHAjX5zZj7Qf2Kr-8t2trjsyLAiQqHXCcThg9m8Nc/s320/vs-code.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
[Microsoft]が開発している有名エディタ<b>[Visual Studio Code(VSCode)]</b>。<br />
最近、軽くて軽快という噂をよく目にするので、こちらを試しているところです。<br />
<br />
今回はこの<b>[VSCode]</b><b>から[Google Cloud Platform(GCP)]にFTP接続</b>して便利に使いたいと思います。<br />
[Visual Studio Code]で保存すると同時に同期保存が可能とすることもできます。<br />
<br />
今回は<b>[sftp]というパッケージ</b>を使います。<br />
<br />
<a name='more'></a>
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<br />
<h4>
[sftp]をインストール</h4>
まずは<b>[VSCode]にパッケージ[sftp]をインストール</b>します。<br />
[VSCode]左側のアイコンメニュー<br />
[拡張機能(Ctrl+Shift+X)] を選択<br />
[sftp]で検索<br />
[インストール]ボタンをクリックしてインストール<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgam_uLNFfBwnFbQ0L0AvuY4EJU7yC-Zb1Gaz43hoIEvZBjhVuAF-8rPFh7OP_H4MeHXZEwwcWwToSDHJ0sqBkRF7QF2sOx-DMfXcMKidzpdS4YShlxF2mHBr6jQQ7cXSEYRBOn6mnK_1E/s1600/install_sftp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="312" data-original-width="638" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgam_uLNFfBwnFbQ0L0AvuY4EJU7yC-Zb1Gaz43hoIEvZBjhVuAF-8rPFh7OP_H4MeHXZEwwcWwToSDHJ0sqBkRF7QF2sOx-DMfXcMKidzpdS4YShlxF2mHBr6jQQ7cXSEYRBOn6mnK_1E/s320/install_sftp.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h4>
設定ファイルを作成</h4>
ワークスペースを保存していない場合は、まず<b>ワークスペースを保存して作り</b>ます。<br />
[ファイル] - [名前をつけてワークスペースを保存...]<br />
<br />
ワークスペースに<b>接続のための設定ファイルを作成</b>します。<br />
[VSCodeメニュー]<br />
[表示] - [コマンドパレット]<br />
[SFTP: Config]と入力しEnter<br />
<br />
すると[.vscode]ディレクトリ内に[sftp.json]ファイルが作成されるので、この設定ファイルに必要な情報を入力していきます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZx54C8I7QwmTgp3ZQFO5YmbvdQcbp3urvbIa8yGQiNNpkElxKPL0iCDXfOgMLTAgSnvBv174D7LL-Oyy3djAubzHm-1Vj6DOoVm5aGVK_HIF6q6Cxjyx09kttCvVYMgBf191Uss-ToLw/s1600/sftp_config.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="453" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZx54C8I7QwmTgp3ZQFO5YmbvdQcbp3urvbIa8yGQiNNpkElxKPL0iCDXfOgMLTAgSnvBv174D7LL-Oyy3djAubzHm-1Vj6DOoVm5aGVK_HIF6q6Cxjyx09kttCvVYMgBf191Uss-ToLw/s400/sftp_config.png" width="335" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
[Google Cloud Platform(GCP)]の接続で最低限必要な設定は以下。</div>
host : ホスト(またはIP)を設定<br />
user : ユーザ名<br />
pass : パスワード<br />
privatekey : プライベートキー(次のフェーズで作成した秘密鍵ファイルを指定)<br />
remotePath:同期をとるリモートパス<br />
※大量にファイルがダウンロードされてしまうので、ルートのままにしないことをオススメします。<br />
ignore:必要に応じて無視するファイル、フォルダを設定します。<br />
<br />
<h4>
[公開鍵/秘密鍵]を作成</h4>
SSH接続のための<b>[公開鍵/秘密鍵]を作成</b>します。<br />
以下を参考に環境に合わせて作成しします。<br />
<a href="http://backleaflet.blogspot.jp/2018/01/mac.html" target="_blank">[Mac] 秘密鍵/公開鍵を作成する</a><br />
<a href="http://backleaflet.blogspot.jp/2018/01/puttygen.html" target="_blank">[Windows] PuTTYgenで秘密鍵/公開鍵を作成する</a><br />
作成時の注意点としては「コメントにユーザ名」を指定する必要があります。<br />
<div>
<a href="https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys?hl=ja" target="_blank">SSH 認証鍵ペアによるインスタンス アクセスの管理</a></div>
<div>
- 新しい SSH 認証鍵ペアの作成</div>
<br />
作成した[秘密鍵]ファイルを任意の場所に置き、前の設定ファイルにパスを設定します。<br />
<br />
<h4>
[公開鍵]を[Google Cloud Platform(GCP)]側に設定</h4>
最後に<b>[公開鍵]を[Google Cloud Platform(GCP)]側に設定</b>します。<br />
[Google Cloud Platform(GCP)]コンソール<br />
[Compute Engine] - [メタデータ]にアクセス<br />
[SSH認証鍵]タブ -[編集]ボタンをクリック<br />
一番下の[+項目を追加]をクリック<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-eXis7m5NG88J2_KA4_eq0bn_aaZrL08kKjiph6CLQZdoBNaob6299iKq57HfMv4-FzWbgunw5b3cQpRjGGjBvivxI_nB2-eNsyXnwGlKkSZNOLKAfJOytle87wGD1BofEkXu9Tel55I/s1600/gcp-meta-menu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="451" data-original-width="1081" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-eXis7m5NG88J2_KA4_eq0bn_aaZrL08kKjiph6CLQZdoBNaob6299iKq57HfMv4-FzWbgunw5b3cQpRjGGjBvivxI_nB2-eNsyXnwGlKkSZNOLKAfJOytle87wGD1BofEkXu9Tel55I/s400/gcp-meta-menu.png" width="400" /></a></div>
<br />
[公開鍵]をを入力するテキストボックスが開くので、そこに[公開鍵]の文字列をコピペします。<br />
フォーマットが以下になっていることを確認してください。(改行なしの1行)<br />
<pre class="tr_bq">ssh-rsa [KEY_VALUE(とても長い)] [USERNAME]</pre>
<br />
これで設定は完了しました。<br />
<br />
<!-- google adsence ↓↓↓ -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6222309276407323"
data-ad-slot="9574328886"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- google adsence ↑↑↑ -->
<h4>
[VSCode]で接続</h4>
<b>[VSCode]で接続</b>してみます。<br />
[VSCodeメニュー]<br />
[表示] - [コマンドパレット]<br />
[SFTP: Download]と入力しEnter<br />
フォルダの指定が求められるのでフォルダを指定<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA9M7K5ak0iKvi2DWDgAkJ2-tK5omeB-4ipRjPHzHFwTHbZdl3xxRZ9gdxtpHxE4DuhV_s-dzkULHXj7pWsuNLwQ_GF73igCsHqGbgKRZVl1CpFGSfz2qgliMoHxsdBdiheA9DAZUhx9Y/s1600/sftp_download_folder_p.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="97" data-original-width="686" height="56" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA9M7K5ak0iKvi2DWDgAkJ2-tK5omeB-4ipRjPHzHFwTHbZdl3xxRZ9gdxtpHxE4DuhV_s-dzkULHXj7pWsuNLwQ_GF73igCsHqGbgKRZVl1CpFGSfz2qgliMoHxsdBdiheA9DAZUhx9Y/s400/sftp_download_folder_p.png" width="400" /></a></div>
設定ファイルから指定した[remotePath]の[ディレクトリ]のみのダウンロードが始まります。(このタイミングではファイルはダウンロードされないようです)<br />
<br />
ファイルをダウンロードするには、左の[エクスプローラー]で下の各コマンドを実行してファイルを操作します。<br />
たとえば、[エクスプローラー]のコンテキストメニューから[SFTP: Download]を選択すると、ディレクトリ内のファイルまたは単一ファイルがダウンロードされます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3UWbi_ViP5ywI1IPrhU4ScXz6GWRFJX0IyJ8Q_uRE-dvTjOpsAJbeXCAcArOUplCUAu-2xgptLhK0gIcbyGtDroKU-VWBjcpOxIEPmOVrZuudSfwubXJmMH-feEup79ulKmP4FSala0Y/s1600/sftp_download_folder.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="476" data-original-width="419" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3UWbi_ViP5ywI1IPrhU4ScXz6GWRFJX0IyJ8Q_uRE-dvTjOpsAJbeXCAcArOUplCUAu-2xgptLhK0gIcbyGtDroKU-VWBjcpOxIEPmOVrZuudSfwubXJmMH-feEup79ulKmP4FSala0Y/s320/sftp_download_folder.png" width="281" /></a></div>
<br />
<h4>
各コマンドの説明</h4>
<b>【SFTP: Config】</b><br />
設定ファイルの作成(既に実施済み)<br />
<br />
<b>【SFTP: Upload】</b><br />
選択したファイルをローカルディレクトリからリモートディレクトリにコピーし、リモートディレクトリを上書きします。 リモート側にのみ存在するファイルは影響を受けません。 ローカル側にのみ存在するファイルは、リモートで作成されます。<br />
<br />
<b>【SFTP: Download】</b><br />
上記と同じであるが、反対方向。<br />
<br />
<b>【SFTP: Sync To Remote】</b><br />
ディレクトリにのみ使用できます。 ローカルディレクトリからリモートの上書き先に共通ファイル(両側に存在するファイル)をコピーします。 [syncMode]を[full]に設定すると、ローカル側にのみ存在するファイルはリモートで作成され、リモート側にのみ存在するファイルは削除されます。<br />
<br />
<b>【SFTP: Sync To Local】</b><br />
上記と同じであるが、反対方向。<br />
<br />
<h4>
設定</h4>
<b>【uploadOnSave】</b><br />
[true]に設定すると自動保存設定となる。<br />
[Ctrl+S]などで保存をすれば自動的にサーバにアップロードされます。<br />
(実際はファイルをローカルに保存してからFTPでアップロードされている感じです)<br />
<br />
<b>【ignore】</b><br />
無視するファイル、フォルダを指定します。<br />
"**/.vscode"と指定すれば、ファイルツリーの任意の深さにある.vscodeという名前のすべてのファイルまたはディレクトリを無視します。<br />
"**/.vscode/**"と指定すれば、ファイルツリーの任意の深さにある.vscodeディレクトリの下にあるすべてのファイルまたはディレクトリを無視します。<br />
必要に応じて、以下のようなものを設定しておくとよいと思います。<br />
<pre class="tr_bq"> "**/.cache/**",
"**/.keras/**",
"**/.local/**",
"**/.ssh/**"</pre>
<div>
<br /></div>
<h4>
【参考】</h4>
<ul>
<li><a href="http://yamada.daiji.ro/blog/?p=1112" target="_blank">Visual Studio Code: SFTPでファイルを同期する</a></li>
<li><a href="https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys?hl=ja" target="_blank">SSH 認証鍵ペアによるインスタンス アクセスの管理</a></li>
</ul>
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-67502151291963498852018-01-11T18:37:00.000+09:002018-01-16T15:55:45.816+09:00著作権やライセンスの理解が曖昧だったのでざっくり整理してみたいちプログラマとして<b>著作物を作る機会が多い</b>のですが、<span style="color: #404040; font-family: "fot-ハミング std l" , , "hiragino kaku gothic pron" , "ヒラギノ角ゴ pron w3" , "meiryo" , , serif; font-size: 16.94px; text-align: justify;"><b>著作権</b>や<b>ライセンス</b>についてあまり理解せずにここまできたので、まずは<b>大雑把にでも理解を深める</b>ために</span><span style="color: #404040; font-family: "fot-ハミング std l" , , "hiragino kaku gothic pron" , "ヒラギノ角ゴ pron w3" , "meiryo" , , serif; font-size: 16.94px; text-align: justify;">ざっくり</span><span style="color: #404040; font-family: "fot-ハミング std l" , , "hiragino kaku gothic pron" , "ヒラギノ角ゴ pron w3" , "meiryo" , , serif; font-size: 16.94px; text-align: justify;">整理してみたいと思います。</span><br />
<span style="color: #404040; font-family: "fot-ハミング std l" , , "hiragino kaku gothic pron" , "ヒラギノ角ゴ pron w3" , "meiryo" , , serif; font-size: 16.94px; text-align: justify;">(詳細は文末の参考先のリンクを読むと良いと思います)</span><br />
<span style="color: #404040; font-family: "fot-ハミング std l" , , "hiragino kaku gothic pron" , "ヒラギノ角ゴ pron w3" , "meiryo" , , serif; font-size: 16.94px; text-align: justify;"><br /></span>
※専門家ではないので、間違いなどあれば指摘いただけると助かります。<br />
<br />
<a name='more'></a><br /><br />
<h4>
そもそも著作権とは</h4>
<b>[知的財産権]</b>の一つ。<br />
<b>[著作物]が創られた時点で自動的に付与</b>するのが,国際的なルールとされている。<br />
<br />
ちなみに[知的財産権]には、[著作権]のほかに[産業財産権(特許権、実用新案権、意匠権、商標権)]などがあり、これらは[申請][登録]などの手続きが必要。<br />
<br />
<br />
<b><u><span style="font-size: large;">著作物</span></u></b><br />
<b>小説/音楽/美術/映画/コンピュータプログラム等</b>あらゆる創作物をさす。<br />
ただし、単なるデータ/アイデア/他人の作品の模倣/工業製品等は除く。<br />
<a href="http://www.bunka.go.jp/seisaku/chosakuken/seidokaisetsu/gaiyo/chosakubutsu.html" target="_blank">文化庁|著作物について</a><br />
<br />
<br />
<b><u><span style="font-size: large;">著作者</span></u></b><br />
<b>[著作物]を創った人</b>。<br />
[著作物]が創られた時点で自動的に権利が発生する。<br />
たとえ幼稚園児であっても絵を描けばその絵の著作者になる。<br />
職務中に指示されて作成したもの(条件があり詳細はリンクを)はその人 が属している会社等が著作者となる。<br />
<a href="http://www.bunka.go.jp/seisaku/chosakuken/seidokaisetsu/gaiyo/chosakusha.html" target="_blank">文化庁|著作者について</a><br />
<br />
<br />
<b><u><span style="font-size: large;">権利の保護期間</span></u></b><br />
原則として<b>[著作者]の生存年間及びその死後50年間</b>が保護期間。<br />
<a href="http://www.bunka.go.jp/seisaku/chosakuken/seidokaisetsu/gaiyo/hogokikan.html" target="_blank">文化庁|著作者の権利の発生及び保護期間について</a><br />
<br />
<h4>
ではライセンスとは?</h4>
[著作権]は権利ですので、他人が無断で勝手に利用することはできません。<br />
そこで<b>[著作者]が特定の使用条件を与え、[著作物]が他人に利用されることを許可</b>することができます。この使用条件が<b>[ライセンス]</b>です。<br />
<br />
<h4>
オープンソースのライセンス</h4>
ほとんどが[無保証][再配布時の著作権表示の保持]を条件としているが、制限が非常に緩いものが多い。<br />
<a href="https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9" target="_blank">Wikipedia|オープンソース</a><br />
<br />
<br />
<b><u><span style="font-size: large;">MIT License</span></u></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0AQ1zRnFcfLdarXZmpAy6hgazNz5SzvyuwWwu3Id0XHnJV3ZChvCp9GL6lFahplIjZIoIuSkco51r9Y2GZc2yfhMLn5gHT4M4T_AiOwNdc_Jp86lDH8bNBgeoQrKu-CXqDapv1fc8bQc/s1600/licence_mit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="288" data-original-width="288" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0AQ1zRnFcfLdarXZmpAy6hgazNz5SzvyuwWwu3Id0XHnJV3ZChvCp9GL6lFahplIjZIoIuSkco51r9Y2GZc2yfhMLn5gHT4M4T_AiOwNdc_Jp86lDH8bNBgeoQrKu-CXqDapv1fc8bQc/s200/licence_mit.png" width="200" /></a></div>
マサチューセッツ工科大学 (MIT) を起源とするライセンス。非常に制限が緩い。<br />
利用条件<br />
・無保証<br />
・著作権表示の保持<br />
<a href="https://opensource.org/licenses/mit-license.php" target="_blank">MIT License</a><br />
<br />
<br />
<b><u><span style="font-size: large;">BSDライセンス</span></u></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFVFaXXcCBi7vTfvDwzfimt0RpWRLEYF084B3ZTuFnAEJxNv9SMEcj40RUorR3eQyubIo7sA3VDwosBmnUQzKaHiXe5oUg-8VT2lMvL5SGB8ErFVSmHZ95U39_4wEIW13bTizuGoBP6V8/s1600/licence_Freebsd.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="320" data-original-width="800" height="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFVFaXXcCBi7vTfvDwzfimt0RpWRLEYF084B3ZTuFnAEJxNv9SMEcj40RUorR3eQyubIo7sA3VDwosBmnUQzKaHiXe5oUg-8VT2lMvL5SGB8ErFVSmHZ95U39_4wEIW13bTizuGoBP6V8/s320/licence_Freebsd.png" width="320" /></a></div>
カリフォルニア大学によって策定された。<br />
・無保証<br />
・著作権表示の保持<br />
・二次的著作物の広告には、オリジナルの著作者が紹介されていること(宣伝条項)<br />
<a href="http://www.freebsd.org/copyright/license.html">BSD(Berkeley Software Distribution License)</a><br />
<br />
<br />
<b><u><span style="font-size: large;">GNUのライセンス</span></u></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhNG9W008B8tgjwhSSDyIUejdBioSoPjfCpPhwHQW2SnpWt2XFpVMulQLfIi54tS3mAXVnTojK4q8JiZ3HmWcWoMQHAngYfH6fORZexWzyw1ng9HFiYCpvQvCv4FI5OrOegiCPNUqW5x4/s1600/licence_GPL.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="597" data-original-width="1200" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhNG9W008B8tgjwhSSDyIUejdBioSoPjfCpPhwHQW2SnpWt2XFpVMulQLfIi54tS3mAXVnTojK4q8JiZ3HmWcWoMQHAngYfH6fORZexWzyw1ng9HFiYCpvQvCv4FI5OrOegiCPNUqW5x4/s320/licence_GPL.png" width="320" /></a></div>
<div>
GNUプロジェクトの一環としてフリーソフトウェア財団より配布されているライセンス。</div>
<div>
さまざま派生(GPL、LGPL、GFDLなど)したものがあるが、基本条件は以下。</div>
<div>
・無保証</div>
・著作権表示の保持<br />
・同一ライセンスの適用<br />
<a href="http://www.gnu.org/licenses/gpl.html">GPL(GNU General Public License)</a><br />
<br />
<br />
<b><u><span style="font-size: large;">Apache Software License</span></u></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDI94hiQYw8-OZlCpgie1pB12VAPmi_0Oy00xV9VQAHm7Euf4OsSNPeboTRwQ1KwVfBO1g7ZLia6rpfCuwPpsU5wuzKtivTD-XqzrETlm-QzPiRMUe-KiWCUTHTSeFlUuGwZQuhlIXIq8/s1600/licence_apache.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="194" data-original-width="459" height="135" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDI94hiQYw8-OZlCpgie1pB12VAPmi_0Oy00xV9VQAHm7Euf4OsSNPeboTRwQ1KwVfBO1g7ZLia6rpfCuwPpsU5wuzKtivTD-XqzrETlm-QzPiRMUe-KiWCUTHTSeFlUuGwZQuhlIXIq8/s320/licence_apache.png" width="320" /></a></div>
Apacheソフトウェア財団によるライセンス。<br />
BSDライセンスをベースに作成されたBSDスタイルのライセンスの一つ。<br />
<a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache Software License</a><br />
<h4>
その他のよく見かけるライセンス</h4>
<u><b><span style="font-size: large;">パブリックドメイン</span></b></u><br />
ちなみに、権利を放棄、または50年の著作権切れで誰も権利を持たず、自由に使えるようになったもの。<br />
<div>
<u><br /></u></div>
<div>
<u><br /></u></div>
<span style="font-size: large;"><b><u>クリエイティブコモンズ(CC)</u></b></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4aJFHCiozBhUdFSsAGLIBApJP2_N_049Jw3-2IFC3UTTLkw73P4HIF_f6VLddm2fROYUNavmF3dis1zl7SCIU6yyIG79WPQa8tiw98yJ4uu21g8Vs-ohodM2t_UF29g_BSmXs80GRwVw/s1600/lisence_cc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="146" data-original-width="342" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4aJFHCiozBhUdFSsAGLIBApJP2_N_049Jw3-2IFC3UTTLkw73P4HIF_f6VLddm2fROYUNavmF3dis1zl7SCIU6yyIG79WPQa8tiw98yJ4uu21g8Vs-ohodM2t_UF29g_BSmXs80GRwVw/s320/lisence_cc.png" width="320" /></a></div>
あらゆる著作物に使え、段階的に、しかもわかりやすく利用者が行使可能な権利を教えてくれるシステム。<br />
youtubeやflickrなどで適用できることが有名。<br />
<a href="https://creativecommons.jp/licenses/" target="_blank">クリエイティブ・コモンズ・ライセンスとは</a><br />
<br />
<br />
<h4>
最後に</h4>
この記事が皆様の作成意欲の一助になれば幸いです。<br />
<br />
<h4>
【参考】</h4>
<a href="http://www.bunka.go.jp/seisaku/chosakuken/seidokaisetsu/index.html" target="_blank">文化庁|著作権制度に関する情報</a><br />
<a href="https://funnis.net/blog/knowledge/copyright_license/" target="_blank">制作者が知っておく著作権やライセンスについて</a><br />
<a href="http://webcre8.jp/think/creative-license-user.html" target="_blank">[ライセンス]結局何を使っていいの?利用者視点でのよくわかる著作権!</a><br />
<a href="https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9" target="_blank">Wikipedia|オープンソース</a><br />
<a href="https://ja.wikipedia.org/wiki/%E8%91%97%E4%BD%9C%E6%A8%A9" target="_blank">Wikipedia|著作権</a><br />
<a href="https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3" target="_blank">Wikipedia|パブリックドメイン</a>tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-23992655106561143512018-01-11T00:14:00.001+09:002018-01-21T09:32:03.859+09:00[Linux] バックグラウンドでLinuxコマンドを実行する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmFYhklgTvetYvq77EoLPdwi9E-5nuz3Msa6yc5j_ftWN1I0RJYd0pq2L6yhLRKMkDxAvT8awJYLckVMsOTZd2WIEBkFYXqPv22smkeOkfma0DYf1MAJoQwdz617mDqpu-lwvM3W1ZWE/s1600/%25E3%2582%25BF%25E3%2582%2599%25E3%2582%25A6%25E3%2583%25B3%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%2588%25E3%2582%2599.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="156" data-original-width="323" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmFYhklgTvetYvq77EoLPdwi9E-5nuz3Msa6yc5j_ftWN1I0RJYd0pq2L6yhLRKMkDxAvT8awJYLckVMsOTZd2WIEBkFYXqPv22smkeOkfma0DYf1MAJoQwdz617mDqpu-lwvM3W1ZWE/s320/%25E3%2582%25BF%25E3%2582%2599%25E3%2582%25A6%25E3%2583%25B3%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%2588%25E3%2582%2599.png" width="320" /></a></div>
<br />
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja">Google Cloud Platform</a>(GCP)[VMインスタンス]上で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)</pre>
<br />
今回は<b>バックグラウンドでLinuxコマンドを実行</b>する方法です。<br />
<br />
<h4>
バックグラウンドでLinuxコマンドを実行</h4>
<b>コマンドの最後に[&]をつける</b>とバックグランドで実行することができる。<br />
<pre class="tr_bq">$ [実行コマンド] &</pre>
<br />
<a name='more'></a>例えば<br />
<pre class="tr_bq">$ sleep 30 &
<span style="color: #999999;">[2] 26005</span>
$</pre>
プロセスIDが表示され、即座に次のコマンドが実行できるようになる。<br />
注意するのは、<b>ターミナルの切断が切れたりしてログアウトした場合に、この方法ではプロセスは終了</b>してしまう。<br />
<br />
<h4>
ログアウトしてもバックグラウンドで実行</h4>
ログアウトしてもプロセスをバックグラウンドで実行を続けたい場合は、<b>[nohup]コマンドを先頭につけて実行</b>すると、<b>永続的なバックグランド</b>のコマンドを実行できる。<br />
(SIGHUPを無視した状態でプロセスを起動することができる)<br />
一般的にはこれでバックグラウンド実行する。<br />
<pre class="tr_bq">$ nohup [実行コマンド] &</pre>
<div>
例えば</div>
<pre class="tr_bq">$ nohup php background.php &
<span style="color: #999999;">[2] 26005</span>
$</pre>
<br />
<h4>
標準出力の指定</h4>
標準出力の指定がないと実行ディレクトリに<b>[./nohup.out]というファイルが出力</b>されてしまう。<br />
できれば<b>ログ出力を指定をしておいた方が良い</b>。<br />
<pre class="tr_bq">$ nohup php background.php > log.txt &</pre>
<br />
<br />
<h4>
【参考】</h4>
<ul>
<li><a href="https://qiita.com/inosy22/items/341cfc589494b8211844" target="_blank">Linuxコマンド(Bash)でバックグラウンド実行する方法のまとめメモ</a></li>
<li><a href="https://qiita.com/yushin/items/732043ee23281f19f983" target="_blank">HUPシグナルとnohupとdisownとバック/フォアグラウンドジョブの理解</a></li>
</ul>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-46370188635652115062018-01-10T22:52:00.000+09:002018-01-21T09:31:54.733+09:00[Linux] 実行中のプロセスを強制終了する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmFYhklgTvetYvq77EoLPdwi9E-5nuz3Msa6yc5j_ftWN1I0RJYd0pq2L6yhLRKMkDxAvT8awJYLckVMsOTZd2WIEBkFYXqPv22smkeOkfma0DYf1MAJoQwdz617mDqpu-lwvM3W1ZWE/s1600/%25E3%2582%25BF%25E3%2582%2599%25E3%2582%25A6%25E3%2583%25B3%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%2588%25E3%2582%2599.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="156" data-original-width="323" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmFYhklgTvetYvq77EoLPdwi9E-5nuz3Msa6yc5j_ftWN1I0RJYd0pq2L6yhLRKMkDxAvT8awJYLckVMsOTZd2WIEBkFYXqPv22smkeOkfma0DYf1MAJoQwdz617mDqpu-lwvM3W1ZWE/s400/%25E3%2582%25BF%25E3%2582%2599%25E3%2582%25A6%25E3%2583%25B3%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%2588%25E3%2582%2599.png" width="400" /></a></div>
<br />
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja">Google Cloud Platform</a>(GCP)[VMインスタンス]上で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)</pre>
<br />
今回は<b>実行中のプレセスを終了(強制終了)</b>するコマンドです。<br />
<br />
<h4>
実行中のプレセスを終了</h4>
<pre class="tr_bq">$ kill [-s シグナル] プロセスID</pre>
<div>
<br /></div>
暴走したプロセスを止めたり、バックグラウンドで実行しているプロセスを止めたりするときに利用します。<br />
<br />
<a name='more'></a><br />
<br />
[プロセスID]は<b>[ps]コマンド</b>を実行して該当するプロセスを探します。<br />
<pre class="tr_bq">$ ps ax | grep php
<span style="color: #999999;"> PID TTY STAT TIME COMMAND </span>
<span style="color: #999999;"> </span><span style="color: red;">1514</span><span style="color: #999999;"> ? S 26:23 php xxxx.php</span></pre>
※詳細は以下を参照してください。<br />
<a href="http://backleaflet.blogspot.jp/2018/01/linux_10.html" target="_blank">[Linux] 実行中のプロセスを表示する</a><br />
<br />
<br />
調べた<b>[プロセスID]を指定</b>して<b>[kill]コマンド</b>を実行します。<br />
<pre class="tr_bq">$kill <span style="color: red;">1540</span></pre>
<br />
<h4>
実行中のプロセスを強制終了</h4>
ハングアップしてた場合などは、終了できない時があります。<br />
その時はシグナルを指定して<b>強制終了</b>すると良い。<br />
<pre class="tr_bq">$kill -KILL <span style="color: red;">1540</span>
<span style="color: #cccccc;">または</span>
$kill -9 <span style="color: red;">1540</span></pre>
<br />
<br />
<h4>
【参考】</h4>
<ul>
<li><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230806/" target="_blank">【 kill 】 プロセスおよびジョブを強制終了する</a></li>
<li><a href="http://www.atmarkit.co.jp/ait/articles/1604/05/news022.html" target="_blank">【 kill 】コマンド/【 killall 】コマンド――実行中のプロセスを終了させる</a></li>
</ul>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-52490846936855918112018-01-10T21:47:00.000+09:002018-01-21T09:31:27.189+09:00[Linux] 実行中のプロセスを表示する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmFYhklgTvetYvq77EoLPdwi9E-5nuz3Msa6yc5j_ftWN1I0RJYd0pq2L6yhLRKMkDxAvT8awJYLckVMsOTZd2WIEBkFYXqPv22smkeOkfma0DYf1MAJoQwdz617mDqpu-lwvM3W1ZWE/s1600/%25E3%2582%25BF%25E3%2582%2599%25E3%2582%25A6%25E3%2583%25B3%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%2588%25E3%2582%2599.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="156" data-original-width="323" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmFYhklgTvetYvq77EoLPdwi9E-5nuz3Msa6yc5j_ftWN1I0RJYd0pq2L6yhLRKMkDxAvT8awJYLckVMsOTZd2WIEBkFYXqPv22smkeOkfma0DYf1MAJoQwdz617mDqpu-lwvM3W1ZWE/s400/%25E3%2582%25BF%25E3%2582%2599%25E3%2582%25A6%25E3%2583%25B3%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%2588%25E3%2582%2599.png" width="400" /></a></div>
<br />
<pre class="tr_bq">【試した環境】
<a href="https://cloud.google.com/?hl=ja">Google Cloud Platform</a>(GCP)[VMインスタンス]上で実行
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)</pre>
<br />
<h4>
実行中のプロセスを表示</h4>
<b>実行中のプロセス</b>を表示する<br />
<pre class="tr_bq">$ ps axfu
<span style="color: #999999;">USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 2017 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 2017 60:45 \_ [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 2017 0:00 \_ [kworker/0:0H]
:
www-data 24539 0.0 0.2 326192 19904 ? S 21:02 0:00 \_ /usr/sbin/apache2 -k start
www-data 24782 0.0 0.2 326328 17492 ? S 21:08 0:00 \_ /usr/sbin/apache2 -k start
:</span></pre>
<b>a</b><span style="white-space: pre;"> </span>自分以外のユーザーのプロセスも表示する<br />
<b>x</b><span style="white-space: pre;"> </span>制御端末のないプロセスの情報も表示する<br />
<b>f</b><span style="white-space: pre;"> </span>ツリー形式で表示する<br />
<b>u</b><span style="white-space: pre;"> </span>ユーザー名と開始時刻を表示する<br />
<br />
<a name='more'></a><br />
<br />
<h4>
grepしてフィルタ表示</h4>
このままでは関係のないプロセスも含めてたくさん表示されてしまうので、<b>grepして表示</b>しましょう。<br />
<pre class="tr_bq">$ ps axfu | grep php
<span style="color: #999999;">user+ 24906 0.0 0.0 12784 964 pts/0 R+ 12:18 0:00 | \_ grep php
user+ 1514 0.4 36.6 637412 374408 ? S Jan06 25:46 php function.php</span></pre>
<b>[ | grep php ]</b>を同時にコマンドに追加することで、[php]の文字列が存在する<b>実行中のプロセスに絞る</b>ことができます。<br />
<br />
<h4>
表示要素</h4>
表示される<b>要素</b>は以下のとおり。<br />
<pre class="tr_bq"><b>USER</b><span style="white-space: pre;"> </span>ユーザー
<b>PID</b><span style="white-space: pre;"> </span> プロセスID
<b>%CPU</b><span style="white-space: pre;"> </span>プロセスのCPU使用率
<b>%MEM</b><span style="white-space: pre;"> </span>プロセスが確保している物理メモリ
<b>VSZ,RSS</b><span style="white-space: pre;"> </span>仮想メモリ領域のサイズ、物理メモリ領域のサイズ
<b>TTY</b><span style="white-space: pre;"> </span> 仮想端末ファイル
STAT プロセスの状態(詳細は後述)
<b>START</b> プロセスの開始時間
<b>TIME</b> プロセスが実際にCPUを使った時間
<b>COMMAND</b> プロセスの実行コマンド
<b><STAT列></b>
<b>1文字目</b>
<b>R</b>:実行可能状態なプロセス
<b>S</b>:割り込み可能な待ち状態
<b>D</b>:ディスクIO待ちの状態
<b>Z</b>:ゾンビプロセス状態(親プロセスに待たれずに死んでしまった子プロセス)
<b>2文字目以降</b>
<b>+</b>:フォアグラウンドのプロセスグループ
<b>s</b>:セッションリーダー
<b><</b>:優先度が高いプロセス
<b>N</b>:優先度が低いプロセス
<b>l</b>:マルチスレッドのプロセス</pre>
<br />
Windowsの<b>タスクマネージャーと同じ</b>ような用途で使うことができます。<br />
<br />
実行中のプロセスを一覧して、<b>メモリの使用量を調査</b>したり、<b>バックグラウンドで実行中のプロセスを止めたり</b>、<b>暴走したプロセスを確認したり、止めたり</b>します。<br />
<div>
<a href="http://backleaflet.blogspot.jp/2018/01/linux_33.html" target="_blank">[Linux] 実行中のプロセスを強制終了する</a><br />
<br />
<h4>
プロセスの親子確認</h4>
</div>
親子関係などを確認する場合には<b>pstreeコマンド</b>を使います。<br />
<pre class="tr_bq">$ pstree
<span style="color: #999999;">systemd─┬─acpid
├─2*[agetty]
├─apache2───6*[apache2]
├─cron
├─dbus-daemon
├─dhclient
├─google_accounts
├─google_clock_sk
├─google_ip_forwa
├─mysqld───28*[{mysqld}]
├─ntpd───{ntpd}
├─php
├─rsyslogd─┬─{in:imklog}
│ ├─{in:imuxsock}
│ └─{rs:main Q:Reg}
├─sshd─┬─sshd───sshd───sftp-server
│ └─sshd───sshd─┬─bash───pstree
│ └─sftp-server
├─systemd-journal
├─systemd-logind
└─systemd-udevd</span></pre>
<br />
<h4>
【参考】</h4>
<ul>
<li><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230860/?rt=nocnt" target="_blank">【 ps 】 実行中のプロセスを表示する</a></li>
<li><a href="https://qiita.com/toshihirock/items/565fe71d778d3ee36b96" target="_blank">psコマンドで表示される内容について調べた</a></li>
</ul>
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-28033189470824424152018-01-10T12:34:00.001+09:002018-01-21T09:31:11.959+09:00[Google Cloud Platform] AtomでGCPに接続して同期保存して便利に使う [Remote-FTP]<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDUakzBkG39syZSOdqFro-yoIHoDHuxEDfiwX7rpGoZWlvhz3n3Rss7iCt9R1eM8CA3Kdj_izJZeYHwlzfemJSDIgjquWe7JGAXmXtSz39prr-pNgT1duwLIu3ND96xYo5S43QOGEKTA/s1600/gcp-series01_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="800" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDUakzBkG39syZSOdqFro-yoIHoDHuxEDfiwX7rpGoZWlvhz3n3Rss7iCt9R1eM8CA3Kdj_izJZeYHwlzfemJSDIgjquWe7JGAXmXtSz39prr-pNgT1duwLIu3ND96xYo5S43QOGEKTA/s640/gcp-series01_01.png" width="640" /></a></div>
<blockquote class="tr_bq">
【環境】<br />
<a href="https://cloud.google.com/?hl=ja" target="_blank">Google Cloud Platform</a>(GCP)[VMインスタンス]で実行<br />
OS : Linux(<a href="https://www.debian.org/">Debian</a> 9.2)<br />
接続元OS : macOS Sierra (10.12.6)& Windows 7<br />
<a href="https://atom.io/" target="_blank">Atom</a>(1.22.1)<br />
Remote-FTP(2.1.4)</blockquote>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXBOjxj3xgHcOl0GdIFeW6NBYgLDY-MQI8GY3gWHvABg2p0voiwdPkSZq1_GwRh6Wr0yGvpEry6hdGThRa_Wum0USWCpUNr0CgtjcTdVdi6h1IRDHYoWuHFWDCuNpV1-oh88D2owh3aWA/s1600/atom_image.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="182" data-original-width="377" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXBOjxj3xgHcOl0GdIFeW6NBYgLDY-MQI8GY3gWHvABg2p0voiwdPkSZq1_GwRh6Wr0yGvpEry6hdGThRa_Wum0USWCpUNr0CgtjcTdVdi6h1IRDHYoWuHFWDCuNpV1-oh88D2owh3aWA/s320/atom_image.png" width="320" /></a></div>
<br />
[GitHub Terms]が開発している有名エディタ<b>[Atom]から[Google Cloud Platform(GCP)]にFTP接続</b>して便利に使いたいと思います。<br />
[Atom]で保存すると同時に同期保存が可能となります。<br />
<br />
今回は<b>[Remote-FTP]というパッケージ</b>を使います。<br />
<br />
<a name='more'></a><br />
<h4>
[Remote-FTP]をインストール</h4>
まずは<b>[Atom]にパッケージ[Remote-FTP]をインストール</b>します。<br />
[Atom]メニュー<br />
[File] - [Settings(Ctrl+Comma)] - [Install] を選択<br />
[Remote-FTP]で検索<br />
[Install]ボタンをクリックしてインストール<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSfGaCDYfJ35OoGnBgNiPbnBL1b6dkHwBPwqe12QL7pmWhYGFmR6fx9lV5qJC6U_Tp5cYTgAea8vm47op3xKQRrLvnUuLzdCmyHK38s5sdAecFVHnk2OBGy_Z9Z0K16h3LgpezbNMfwdQ/s1600/remote-ftp-install.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="267" data-original-width="669" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSfGaCDYfJ35OoGnBgNiPbnBL1b6dkHwBPwqe12QL7pmWhYGFmR6fx9lV5qJC6U_Tp5cYTgAea8vm47op3xKQRrLvnUuLzdCmyHK38s5sdAecFVHnk2OBGy_Z9Z0K16h3LgpezbNMfwdQ/s400/remote-ftp-install.png" width="400" /></a></div>
<br />
<h4>
設定ファイルを作成</h4>
プロジェクトを作成していない場合は、まず<b>プロジェクトを作り</b>ます。<br />
[File] - [Add Projectfolder...]<br />
<br />
そのプロジェクトに<b>接続のための設定ファイルを作成</b>します。<br />
[Atomメニュー]<br />
[Packages] - [Remote FTP] - [Create SFTP config file]<br />
<br />
この設定ファイルに必要な情報を入力していきます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXmrqsI3vggCNwC9wVCTlkApY1nrTbXCQ60y3AzpMyuwuIXp1E4uHv-pu0Hg6AZmqVShggsykLdAdRua8Yv_SFlLJjmtoCrgM8iuYX1nOjhKeIWP9yWuUDRc0EZji6ibhWWU-V8MGee-E/s1600/remote-ftp-setting.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="552" data-original-width="564" height="391" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXmrqsI3vggCNwC9wVCTlkApY1nrTbXCQ60y3AzpMyuwuIXp1E4uHv-pu0Hg6AZmqVShggsykLdAdRua8Yv_SFlLJjmtoCrgM8iuYX1nOjhKeIWP9yWuUDRc0EZji6ibhWWU-V8MGee-E/s400/remote-ftp-setting.png" width="400" /></a></div>
[Google Cloud Platform(GCP)]の接続で最低限必要な設定は以下。<br />
host : ホスト(またはIP)を設定<br />
user : ユーザ名<br />
pass : パスワード<br />
privatekey : プライベートキー(次のフェーズで作成した秘密鍵ファイルを指定)<br />
<br />
<h4>
[公開鍵/秘密鍵]を作成</h4>
SSH接続のための<b>[公開鍵/秘密鍵]を作成</b>します。<br />
以下を参考に環境に合わせて作成しします。<br />
<a href="http://backleaflet.blogspot.jp/2018/01/mac.html" target="_blank">[Mac] 秘密鍵/公開鍵を作成する</a><br />
<a href="http://backleaflet.blogspot.jp/2018/01/puttygen.html" target="_blank">[Windows] PuTTYgenで秘密鍵/公開鍵を作成する</a><br />
作成時の注意点としては「コメントにユーザ名」を指定する必要があります。<br />
<div>
<a href="https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys?hl=ja" target="_blank">SSH 認証鍵ペアによるインスタンス アクセスの管理</a></div>
<div>
- 新しい SSH 認証鍵ペアの作成</div>
<br />
作成した[秘密鍵]ファイルを任意の場所に置き、前の設定ファイルにパスを設定します。<br />
<br />
<h4>
[公開鍵]を[Google Cloud Platform(GCP)]側に設定</h4>
最後に<b>[公開鍵]を[Google Cloud Platform(GCP)]側に設定</b>します。<br />
[Google Cloud Platform(GCP)]コンソール<br />
[Compute Engine] - [メタデータ]にアクセス<br />
[SSH認証鍵]タブ -[編集]ボタンをクリック<br />
一番下の[+項目を追加]をクリック<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-eXis7m5NG88J2_KA4_eq0bn_aaZrL08kKjiph6CLQZdoBNaob6299iKq57HfMv4-FzWbgunw5b3cQpRjGGjBvivxI_nB2-eNsyXnwGlKkSZNOLKAfJOytle87wGD1BofEkXu9Tel55I/s1600/gcp-meta-menu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="451" data-original-width="1081" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-eXis7m5NG88J2_KA4_eq0bn_aaZrL08kKjiph6CLQZdoBNaob6299iKq57HfMv4-FzWbgunw5b3cQpRjGGjBvivxI_nB2-eNsyXnwGlKkSZNOLKAfJOytle87wGD1BofEkXu9Tel55I/s400/gcp-meta-menu.png" width="400" /></a></div>
<br />
[公開鍵]をを入力するテキストボックスが開くので、そこに[公開鍵]の文字列をコピペします。<br />
フォーマットが以下になっていることを確認してください。(改行なしの1行)<br />
<blockquote class="tr_bq">
ssh-rsa [KEY_VALUE(とても長い)] [USERNAME]</blockquote>
<br />
これで設定は完了しました。<br />
<br />
<h4>
[Atom]で接続</h4>
<b>[Atom]で接続</b>してみます。<br />
[Packages] - [Remote FTP] - [Connect]<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRFu7x7dzgcLhIioyjCUQw2v5bTkzzuAnaHhAcrLeLV-NUlAs_Jbsonx65u_7Oo70TPi001iHMK6EPp3TrkfV4jSrmzY7KBUXG8r1aISo5FmuoV8zy847unA06qoYtk3x7euOBvggP7u0/s1600/remote-ftp-connect.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="654" height="121" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRFu7x7dzgcLhIioyjCUQw2v5bTkzzuAnaHhAcrLeLV-NUlAs_Jbsonx65u_7Oo70TPi001iHMK6EPp3TrkfV4jSrmzY7KBUXG8r1aISo5FmuoV8zy847unA06qoYtk3x7euOBvggP7u0/s320/remote-ftp-connect.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
[Connected]となれば接続成功です。<br />
<br />
画面左にプロジェクトが表示されていると思うので、エクスプローラー風の操作でサーバのファイルが開けます。<br />
(実際はFTPでファイルをローカルダウンロードしてきてから開かれている感じです)<br />
<br />
[Ctrl+S]などで保存をすれば自動的にサーバにアップロードされます。<br />
(実際はファイルをローカルに保存してからFTPでアップロードされている感じです)<br />
<br />
<br />
<h4>
【参考】</h4>
<ul>
<li><a href="https://qiita.com/otsukaaaa/items/8117055665af259bd9f2" target="_blank">AtomでRemote-FTPを使う</a></li>
<li><a href="https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys?hl=ja" target="_blank">SSH 認証鍵ペアによるインスタンス アクセスの管理</a></li>
</ul>
<br />
<br />tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-13875320219045291692018-01-09T23:08:00.000+09:002019-03-10T14:35:03.856+09:00[Mac] 秘密鍵/公開鍵を作成する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcldelWYG9zI8xpUCJ3272taRjG2aQVN9m0vxjRpugISFE0F_UciO81rN2B614kqGVk2NTsJ0f4c30qgWCXi6CA9X1ogJnSxC1PYzVaTlLtjoAlp_Dz9AHyCC63UXFT-YyFl8XtTdEifM/s1600/job_kagiya.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcldelWYG9zI8xpUCJ3272taRjG2aQVN9m0vxjRpugISFE0F_UciO81rN2B614kqGVk2NTsJ0f4c30qgWCXi6CA9X1ogJnSxC1PYzVaTlLtjoAlp_Dz9AHyCC63UXFT-YyFl8XtTdEifM/s320/job_kagiya.png" width="320" /></a></div>
<br />
【環境】<br />
OS : macOS Sierra (10.12.6)<br />
<br />
今回は[macOS]でGCP(Google Cloud Platform)などでSSH通信するための<b>秘密鍵/公開鍵を作成</b>してみます。<br />
<br />
<a name='more'></a><br /><br />
[macOS]ではプリインストールされている<b>[ssh-keygen]というツール</b>を利用して秘密鍵/公開鍵を作成します。<br />
<br />
<b>[ターミナル]</b>を開き以下を実行します。<br />
<blockquote class="tr_bq">
$ ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [COMMENT]</blockquote>
<br />
具体的な例を示します。<br />
<blockquote class="tr_bq">
$ ssh-keygen -t rsa -f ~/.ssh/key_filename -C comment<br /><span style="color: #999999;">Generating public/private rsa key pair.<br />Enter passphrase (empty for no passphrase):<br />Enter same passphrase again:<br />Your identification has been saved in /Users/XXXX/.ssh/key_filename.<br />Your public key has been saved in /Users/XXXX/.ssh/key_filename.pub.<br />The key fingerprint is:<br />SHA256:PQTTAD1XXXXXXXXXog6fmFA comment<br />The key's randomart image is:<br />+---[RSA 2048]----+<br />| .+=*=+=ooo.|<br />| ++.. = ..|<br />| E.* * o |<br />| . + @ = |<br />| . S O * . |<br />| . % * . |<br />| + * + |<br />| o o . |<br />| . . |<br />+----[SHA256]-----+</span></blockquote>
<div>
<br /></div>
<br />
カレントディレクトリの[.ssh]フォルダに以下の2つのファイルができているはずです。<br />
key_filename・・・[秘密鍵]<br />
key_filename.pub・・・[公開鍵]<br />
<br />
<div>
<b>[秘密鍵]</b>はファイルに保存してローカルで利用します。</div>
<div>
<b>[公開鍵]</b>はサーバ側などに保存/記録して利用します。</div>
<br />
<br />
本記事は鍵を作成するところまで。<br />
これらの利用方法はまた別記事で。<br />
<div>
<br /></div>
<br />
【参考】<br />
<ul>
<li><a href="https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys?hl=ja" target="_blank">SSH 認証鍵ペアによるインスタンス アクセスの管理</a></li>
<li><a href="https://qiita.com/0084ken/items/e763c85054a5a1e2cc6c">BitbucketにSSH認証鍵を設定する</a></li>
</ul>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0tag:blogger.com,1999:blog-2187022324082530399.post-70446538707115062122018-01-09T19:58:00.000+09:002018-01-09T23:07:17.419+09:00[Windows] PuTTYgenで秘密鍵/公開鍵を作成する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-krRwz9E161WfLyg7_DOQub5Sma_Ku4nFKSQ8hboWSM9E69E1S8cjeGMIFbdlwl9BZOs7W45Gy4t-XlhLxZX5t7L7wRc0kLgANcTLEW_fM4Vg6vdxLIzJaRt_nFkG19JHViIEtGVftVY/s1600/job_kagiya.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-krRwz9E161WfLyg7_DOQub5Sma_Ku4nFKSQ8hboWSM9E69E1S8cjeGMIFbdlwl9BZOs7W45Gy4t-XlhLxZX5t7L7wRc0kLgANcTLEW_fM4Vg6vdxLIzJaRt_nFkG19JHViIEtGVftVY/s320/job_kagiya.png" width="320" /></a></div>
<blockquote class="tr_bq">
【試した環境】<br />
OS : Windows 7<br />
PuTTYgen(Release 0.70)</blockquote>
<br />
今回はWindows上で[PuTTYgen]というツールを使ってSSH通信をするための<b>秘密鍵/公開鍵を作成</b>してみます。<br />
<br />
<a name='more'></a><br />
以下のURLより<b>[PuTTYgen]ツール</b>をダウンロード。<br />
<a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html" target="_blank">Download PuTTY</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaAGj7hf_EPqUTkzenpP_VT8Vb3JUwOTQwldH-mPjkrZOeopoTUQN1c2TI3i-Teg6yRoQYutW5RmVO7kehRLVEOu9LG4ZyUcr5YZPczGumZS0hhhToWjNk_Z7BGyiG7cJzr4Y9OtVvfZA/s1600/puttygen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="123" data-original-width="113" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaAGj7hf_EPqUTkzenpP_VT8Vb3JUwOTQwldH-mPjkrZOeopoTUQN1c2TI3i-Teg6yRoQYutW5RmVO7kehRLVEOu9LG4ZyUcr5YZPczGumZS0hhhToWjNk_Z7BGyiG7cJzr4Y9OtVvfZA/s1600/puttygen.png" /></a></div>
<br />
ダウンロードしたらアプリを起動します。<br />
起動した画面<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinme9LG0DgGS_bevKy7Mb-eyuje724n-khh87osM1P9gxr7Em5jNxnmOu5K3I0a1n6BwzaCDCWgFCX_9oAY1RauX0d1BLGduNrMSszGPNhyphenhyphenngngl3yv3eTRrEZw53MBjdnmo5s0kjU9dI/s1600/puttygen1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="399" data-original-width="483" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinme9LG0DgGS_bevKy7Mb-eyuje724n-khh87osM1P9gxr7Em5jNxnmOu5K3I0a1n6BwzaCDCWgFCX_9oAY1RauX0d1BLGduNrMSszGPNhyphenhyphenngngl3yv3eTRrEZw53MBjdnmo5s0kjU9dI/s320/puttygen1.png" width="320" /></a></div>
<br />
<b>[Parameters]を確認</b>し、<b>[Generate]ボタンをクリック</b>し、鍵を作成します。<br />
※パラメータはGCP(Google Cloud Platform)などで使用する場合はデフォルト(RAS-2048)で問題ないです。<br />
<br />
<b>[Generate]ボタンをクリック</b>すると次のような画面になります。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSDE-VDssjJKDOl7DDHarjhV7i5xlXko7Tw4koW8xo_p9r1n9fOtdA5I3_fp4lukeUJXBF04QHtS2kMVNXjHBX_FXWrbpBYm3ZFcfuj8Ppfrm-TlUG4GTIpKvjmc-gDbxcoXqmYWjyKyg/s1600/putty_key.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="399" data-original-width="483" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSDE-VDssjJKDOl7DDHarjhV7i5xlXko7Tw4koW8xo_p9r1n9fOtdA5I3_fp4lukeUJXBF04QHtS2kMVNXjHBX_FXWrbpBYm3ZFcfuj8Ppfrm-TlUG4GTIpKvjmc-gDbxcoXqmYWjyKyg/s320/putty_key.png" width="320" /></a></div>
<br />
ここがちょっとはまりポイント。(英語が苦手な人は特に)<br />
<div>
<b>ブランクエリアでマウスをグリグリ</b>しないとインジケーターが進みません。</div>
<div>
ただ待ってるだけでは完了しないです。</div>
<div>
<br /></div>
<div>
さて出来上がるとこんな感じの画面になります。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh50JE0RQiLGOWjL2brPdC7Odot3bBcFsDkg1BVtZ0yxJfkHVsF1y9gHohLk988Kr-foP6zduThqNlNN3zr0jqk8bhwckyGVo7Hw6yz50jUrtuDxZ0ugrPKvXZoKMhIXYUW0BV6MAYOSGI/s1600/puttygen1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="399" data-original-width="483" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh50JE0RQiLGOWjL2brPdC7Odot3bBcFsDkg1BVtZ0yxJfkHVsF1y9gHohLk988Kr-foP6zduThqNlNN3zr0jqk8bhwckyGVo7Hw6yz50jUrtuDxZ0ugrPKvXZoKMhIXYUW0BV6MAYOSGI/s320/puttygen1.png" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
任意でパスフレーズを設定し、<b>[Save public key] [Save private key]</b>をそれぞれクリックすると<b>[秘密鍵][公開鍵]</b>が保存できます。</div>
<div>
<br /></div>
<div>
<b>[秘密鍵]</b>はファイルに保存してローカルで利用します。</div>
<div>
<b>[公開鍵]</b>はサーバ側などに保存/記録して利用します。</div>
<br />
<br />
本記事は鍵を作成するところまで。<br />
これらの利用方法はまた別記事で。<br />
<br />
<br />
【参考】<br />
<br />
<ul>
<li><a href="http://www.tempest.jp/security/keygen.html" target="_blank">PuTTYgenの利用</a></li>
<li><a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html" target="_blank">Download PuTTY</a></li>
<li><a href="https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys?hl=ja" target="_blank">SSH 認証鍵ペアによるインスタンス アクセスの管理</a></li>
</ul>
tadamatuhttp://www.blogger.com/profile/05252110368528676433noreply@blogger.com0