XAMPPとIISの競合について

IISでローカルのPHPの開発環境を構築して勉強をしていたが
諸々考えてくとXAMPPで環境構築した方がはかどることに気づいて乗り換えた。

その時に,ポートが競合してハマったのでメモ。

現象

XAMPPインストール後に,Apacheを起動しようとすると
Port 80 in use by "Unable to open process" with PID 4!

と怒られる。

解決策

IISがポート80を使用していたため,inetmgrからIISを停止すれば解決する。

以上

viでphp-docのコメントを自動生成するプラグイン(PDV – phpDocumentor for Vim)

本体のダウンロード

Downoad

プラグイン用フォルダの生成

vim用のプラグインを導入するのは初めてなので作成しておく

$mkdir ~/.vim

.vimファイルの移動

$mv (ダウンロードしたファイルのパス) ~/.vim/

.bashrcへの記述を追加

$vim ~/.vimrc

下記を追加

" PDV - phpDocumentor for Vim
source ~/.vim/php-doc.vim
inoremap <C-P> <ESC>:call PhpDocSingle()<CR>i 
nnoremap <C-P> :call PhpDocSingle()<CR> 
vnoremap <C-P> :call PhpDocRange()<CR>

.vimrcも更新しておいた。

https://github.com/nekonisi/Tools/tree/master/Vim

以上

Windows10でPHPの実行環境構築

IISを利用して,PHPの実行環境を構築する。

IISの有効化と”Hello html!”まで

  1. Windowsボタン + Rを押下 > controlと入力(コンパネを開く)
  2. 「プログラムと機能」 > 左パネルよりWindowsの機能の有効化と無効化を選択
  3. 下記を参考にチェックをつける。
    インターネットインフォメーションサービス
    > World Wide Webサービス
    > アプリケーション開発機能
    > CGI <-チェックインターネットインフォメーションサービス
    > Web管理ツール <-チェック
  4. OKボタンを押下するとインストールが開始される。
  5. C:\inetpub\wwwroot\の既存ファイルを削除(ndex.htmlを作成し,HelloWorldと入力
    (書き込み権がなかったら,wwwrootを選択しAlt + Enterを押下。
    セキュリティ > 編集より書き込み権限を付与する。)
  6. 任意のブラウザでhttp://localhostにアクセス。

以上


PHPの有効化

  1. https://windows.php.net/download/よりWindows用のPHP(zip)をダウンロード
  2. C:\inetpub\php配下に展開(どこでもいいんだけどね)
    権限が必要と言われるけど,「はい」でOK
  3. php.ini-productionをphp.iniにリネーム
  4. php.iniに任意のエディタで下記を追記する。
    (本当はコメントアウトして設定したほうがいいけど。)

    extension_dir = "ext" cgi.fix_pathinfo=1 fastcgi.impersonate = 1 fastcgi.logging = 0 extension=mbstring.dll [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto

    TODO: 設定項目に関する説明を別投稿にまとめる。

  5. 「VCRUNTIME140.dllが見つからないため~」とエラーが表示された場合はVCRUNTIME140.dllをインストールする。
    1. ダウンロードサイト
    2. 自分のOSのCPUのビット数に合わせること
      64bit -> x64
      32bit -> x86
    3. 落としたexeを実行すればOK
  6. 2の手順で展開したフォルダC:\inetpub\phpにフォーカスを合わせAlt + Enterを押下
  7. セキュリティタブ > 編集より,セキュリティ画面を開く
  8. 追加ボタンを押下し,「ユーザまたはグループの選択」ダイアログを開く
    「選択するオブジェクト名を入力してください」テキストボックスに「IIS_IUSRS」と入力。
  9. 「名前を確認」ボタンを押下
    「名前が見つかりません。」ダイアログが開かれた場合は,名前が間違ってる可能性があるので,「IIS_IUSRS」のスペルを確認!
  10. Windowボタン + Rを押下し,inetmgrと入力
  11. ハンドラーマッピングをダブルクリック
  12. 右パネルより,モジュールマップの追加を選択
  13. 下記を参考に設定を行う。
    要求パス: *.php
    モジュール: FastCgiModule
    実行可能ファイル: C:\inetpub\php\php-cgi.exe
    名前: PHP

    設定はこれで完了。

動作確認

C:\inetpub\wwwroot\test.phpを作成し,下記をコピペ

<?php
//ここを書き換える。
$name="nekonisi";


$fp=fopen("http://abehiroshi.la.coocan.jp/top.htm","r");
$arr=array();
$arrVal=array();
while(!feof($fp)){
	$data = mb_convert_encoding(fgets($fp), 'UTF-8', 'sjis-win');
	array_push($arrVal,$data);
}
$arr=preg_replace("(阿部 寛)",$name,$arrVal);



foreach($arr as $val){
	echo ($val);
}
?>

以上

AWSのセキュリティに関する設定

このブログはAWSのlightsailを使用して作成されている。
ネットワークの知識が希薄なため,Qiitaの記事を参考になんとなく作成されていたが,この機会にセキュリティを強化しようと思い記事を作成した。

クラウドサーバ自体のセキュリティに関して

オンプレミス(実機を使ったサーバ構築)と比較し,クラウドサーバのセキュリティは甘いのか?という疑問があるだろう。

確かに,オンプレミス型のサーバと異なり,クラウドサーバは誰でもアクセスすることができるため,不正アクセスの危険性はある。

オンプレミス型のサーバの場合,システム管理者がセキュリティパッチを当てて,最新化しなければならないが,AWSの場合,Amazon社がこれをカバーしてくれるため,情弱でも安心して使用できるという一面もある。

セキュリティグループの設定について

注意点として,セキュリティグループ。ファイアウォールの設定である。
つまりはIP等に関するポートの設定である。
攻撃者は常にポートスキャンを行っていると考え,不用意なポート開放は避けなければならない。

パスワードログインに関して

オンプレミス型のサーバでは,パスワードログインによる接続も十分にセキュアになりうるが,パブリックネットワークに晒されているクラウドサーバではパスワードログインはセキュリティが甘い。
なぜなら,攻撃者はパスワードをクラックするツールを保持していると考えるべきだからである。

サーバイメージのコピーに関して

AWSのサーバは,インスタンスであるので簡単にマシンイメージのコピーを行うことができる。
便利な機能ではあるが,最新のセキュリティパッチが適用されていないイメージをコピーしてしまう可能性があるため,注意が必要である。

参考サイト

AWSを使っている人が絶対にやっておくべきセキュリティ対策


TODO: 自インスタンスをSSL認証させる

 

現状と今後に関して

定食屋で瓶ビールで一杯やりながらブログの記事を書く。
憧れていた自分とは少し違うけれど,我ながら大人になったなと思う。

現状

現在,26歳で年収は300万程度。
IT業界に所属しているが,あまり技術があるとは言えない。
彼女と別れたら自分には話し相手すらいなかったことに気づいた。でも,遠方に住んでいる家族や友達と話すきっかけができて,本当は孤独ではなかったんだと気づかされた。
「周りに恵まれている。こんな俺なのに」と最近思っている。

これからどうしていきたいか?

とりあえず,転職は決まった。
1月末に想像以上に長居をしてしまった浜松を離れて東京の会社にお世話になる予定だ。
「どういう形であれ」,俺はとことんやってやるつもりだ。

それが自分の能力に関して,あるいは,人間的な面での苦悩だったとしても
とことんやってやろうと思っている。

甘さと優しさを履き違えていた自分を戒めるためにも,
死ぬ気で苦しんで,苦しんで,成長しようと思っている。

以上

PHPのお勉強

2月からWeb業界に転職するつもりなので,PHPの勉強をしている。

基本的にはバスと電車の中で本を読んで,
帰りにコーヒー屋で手を動かしてアウトプットという感じで進めている。

読んでいる本はコレ
一周目が終わって内容を理解したので,アウトプット中。

開発用サーバ: http://52.194.187.169

文法等については後日まとめる。
きちんと寝て,明日に備えよう。
やってきたこと,考えてきたことを出せればいい。

結果はどうあれ,あの日から全力でやってこれた。

以上


ネットワーク関連の勉強内容

今日勉強した内容について走り書き

プログラムのことについて,勉強しようとするとついつい書くのに夢中になってまとめる時間がなくなってしまう。

1時間勉強したら40分は勉強,20分はまとめる時間を取らないとだめだなぁ。

ドメインとか名前解決とか

名前解決

www.nekonisi.comを名前解決しようと思ったら下記の手順になる。

  • Client: nekonisi.comってどこよ? > ルートサーバ
  • ルートサーバ: わからんけど,comのこと知ってんのはコイツら > Client
  • Client: nekonisi.comってどこよ? > comのこと知ってるサーバ
  • comのこと知ってるサーバ: 13.231.122.238やで。 > Client
  • Client: サンガツ

ルートサーバ

DNSの頂点のサーバ。

全部で13クラスタある。

下記で確認できる。

PING *.ROOT-SERVERS.NET

もし,世の中をメチャメチャにしたければ,
この13クラスタを潰せば世界中のインターネットは止まる。

ping A.ROOT-SERVERS.NET



A.ROOT-SERVERS.NET [198.41.0.4]に ping を送信しています 32 バイトのデータ:
198.41.0.4 からの応答: バイト数 =32 時間 =167ms TTL=49
198.41.0.4 からの応答: バイト数 =32 時間 =81ms TTL=49
198.41.0.4 からの応答: バイト数 =32 時間 =71ms TTL=49
198.41.0.4 からの応答: バイト数 =32 時間 =66ms TTL=49



198.41.0.4 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 66ms、最大 = 167ms、平均 = 96ms

TLD(Top Level Domain)

ルートサーバがボスだとしたら,中ボス。
www.nekonisi.comcomの部分。

ルートサーバの次にたらいまわしにされるサーバ。

2LD(2nd Level Domain)

www.nekonisi.comnekonisiの部分。

wwwの必要性

元々は同じドメインでも

HTTP nekonisi.com 192.○.○.○ -> www.nekonisi.com

SMTP nekonisi.com 192.△.△.△-> smtp.nekonisi.com

POP3 nekonisi.com 192.□.□.□-> pop.nekonisi.com

という風に分けていた名残。

以上

host名を設定

IPをいちいち覚えていられないので,
host名を設定する。

  1. vim /etc/hostsで下記の書式に従って設定を追加する。
    1. IPアドレス 任意のhost名

WordPressの新しいエディタ正直使いにくい。

以上

Don’t be afraid

自分の気持ちや考えを箇条書きにしておく。

  • 冷徹になる
    • そうしなければ,顔向けできないから
    • 切るのも優しさだ。中途半端に手を差し伸べれば余計に苦しめる。
  • 自分を責めない
    • 自分を責めることすら甘えだと自覚しろ
  • 自分のために生きる
    • 自分の人生を他人に委ねるな
    • 裏切られても大丈夫なように手を打たないのは甘えだ
  • 愚痴るくらいなら行動をする
    • 愚痴ることほど非生産なことはない。
    • 誰も助けてはくれない。自分で考え,自分で動け。

失うものなど何もない。強気に生きろ。

必ずうまくいくし,必ず成功する。
自分の選択に後悔はしない。それがせめてもの償いだ。

It’s only after we’ve lost everything that We’re free to do anything.

以上