HTTP

WEBサイト作成

ローカル開発環境のためのWebサーバー構築の準備


PHP5.4ビルトインWebサーバーを使う。

PHPの5.4からビルトインWebサーバーが付いており、テスト環境でわざわざApatceをインストールする必要がなくなりました。「開発用としてのみ設計されたものであり、 実運用に使ってはいけません」と思いっきり書いてあるのですが、数台の現場端末から実績収集するくらいなら実運用でも耐えられるんじゃないかとも思います。

というのは一般的に客先サーバー環境でのソフトウェアのインストールは制限が多い。「Webサーバーを立ち上げます」と言うと客側で気持ち的に負担になるのでので、「PCにPHPとMysqlをインストールするだけで、数台のPCから簡単に実績収集と管理ができます」と言えば抵抗がずいぶん少なくなります。

1. PHPプログラムの準備

php-5.4.5-nts-Win32-VC9-x86.zipを解凍してものを適当な場所に作ったフォルダ名C:\php(どこでもOK)の下にコピーする。

2. 環境変数にPHPプログラムのパスを追加

コンピューター (右クリ)-> プロパティー > システムの詳細設定のPathに「c:\php;」を追加。

3. ドキュメントルートの作成

適当な場所にドキュメントルート(C:\www\htdocsみたいなもの)を作成。

4. php.iniの修正

php.iniはwindowsフォルダにコピーする必要なし。
C:\php\php.ini-developmentをphp.iniにリネームしてサーバールートの指定を行う。

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "c:\php\ext"

5. php.exeのショートカットを作成

プロパティに以下のオプションを追加

C:\php\php.exe -S 127.0.0.1:80

デフォルトではドキュメントルートは「c:\php」なので「Start in」に「C:\www\htdocs」を追加。
php.exeを常時起動しておく必要があり、タスクバーにphp.exeのアイコンが表示されるのがウザイが、気軽にWebサーバー立ち上げるには便利だと思う。
phpビルトインサーバー

(注1)php.iniを修正してPHPの稼動確認を行う場合はビルトインサーバーを必ずリスタートさせる。php.iniはビルトインサーバー起動時に1度だけ読み込まれるので、php.ini修正の影響を確認するためにはリスタートが必要になる。

PHPビルトインサーバーはApacheなしで完全にPHP5.4単独で稼動します。
問題はPHP5.4はDoS攻撃防止のため受け付けるパラメータ数に上限をかけていること。php.iniの設定を変えても解消されず。うーん。。。

ちなみに>Dos攻撃(hashdos)とは・・・

PHPなど多くの言語では、文字列をキーとする配列(連想配列、ハッシュ)が用意されており、HTTPリクエストのパラメータも連想配列の形で提供されます。PHPの場合、$_GET、$_POSTなどです。

連想配列の実装には、高速な検索が要求されるためハッシュテーブルが用いられます。ハッシュテーブルは、文字列を整数値(ハッシュ値)に変換するハッシュ関数を用いて、平均的には一定時間に検索・挿入・削除が行えるデータ構造です。しかし、ハッシュ値が一致する(衝突する)キー文字列については、通常ハッシュテーブルは順次的な探索となり、検索・挿入などが遅くなります。

hashdosは、ハッシュ値が同じになるキーを多数POSTパラメータに含ませることにより、CPU資源を枯渇させる攻撃です。

方法は.htaccessに「php_value max_input_vars xxxxx」を追記して対応したい。
ところがPHPビルトインサーバーは.htaccessファイルを認識しない・・・。仕方ないのでApacheをインストールしかないなあ。

Apacheを使う。

 

1. Apacheのインストール

httpd-2.2.22-win32-x86-openssl-0.9.8t.msiをダウンロードして実行。Network NameとServer Domainはlocalhostにする。
Apacheのインストール

2. ブラウザからlocalhostにアクセス

Apacheのインストール
Apacheのホームディレクトリはデフォルトではhttpd.confに以下のように設定されている。
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

3. ApacheとPHPビルトインサーバーの関係

どっちもWebサーバーだが・・・

Apacheを起動するとlocalhostでApacheのホームディレクトリ「C:\Program Files\Apache Software Foundation\Apache2.2\htdocs」を見に行く。

Apacheを停止してPHPビルトインサーバーを起動するとビルトインサーバーのホームディレクトリ「C:\www\htdocs」を見に行く。

ビルトインサーバーのホームディレクトリはphp.exeのショートカットの「Start in」に設定しているだけ。Apacheをインストールしていないのでhttpd.confなんかないし、php.iniに何か指定する必要もない。

4. httpd.confでドキュメントルートを修正(2箇所)

C:\Program Files\Apache Software Foundation\Apache2.2\conf\にあるhttpd.confを修正

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
# DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
DocumentRoot "C:/Users/Hp/Documents/www/htdocs"

# This should be changed to whatever you set DocumentRoot to.
#
# <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs>
<Directory "C:/Users/Hp/Documents/www/htdocs">

5. 指定のディレクトリがドキュメントルートに変わる

ただしPHPが稼動していないのでフォルダ内のツリーが見える。
Apacheのインストール

6. ApacheとPHPのリンク

ApacheとPHPのバージョンの違いによってhttpd.confの設定が異なっていたり、設定ファイル自体が異なっていたりする。
面倒くさいのでXAMPPをインストールしちゃおうかなー。

XAMPPを使う。

XAMPP(ザンプ)とは、apache friendsが公開しているWebサーバ及びWebアプリケーション環境を構築するためのフリーソフトウェア群を一括してインストールすることができるパッケージです。パッケージにはApache, MySQL, PHP, phpMyAdmin, FileZilla FTP Server, Mercury Mail Transport Systemが含まれています。

1. インストール

xampp-win32-1.8.0-VC9-installer.exeをダウンロードして実行するだけ。

ただしXAMPPのインストール前にMysqlのみ単独でインストールしていたりすると、XAMPPからインストールしたMysqlが起動しなくなるので、事前にMysqlを完全にアンインストールしておく必要がある。残す必要のあるDBはバックアップ&リストアでXAMPPインストール後に復旧させればいいし。

2. localhostを確認

デフォルトのドキュメントルートはC:\xampp\htdocsでxamppフォルダにリダイレクトされる。
XAMPP

3. Control Panelからhttpd.conf(Configボタン)を修正(2箇所)

XAMPP

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
#DocumentRoot "C:/xampp/htdocs"
DocumentRoot "C:/Users/Hp/Documents/www/htdocs"

# This should be changed to whatever you set DocumentRoot to.
#
#
# This should be changed to whatever you set DocumentRoot to.
#
#<Directory "C:/xampp/htdocs">
<Directory "C:/Users/Hp/Documents/www/htdocs">

4. Control PanelからApacheを再起動

ドキュメントルートがC:/Users/Hp/Documents/www/htdocsに変更されPHPも問題なく稼動。Apache2.2とPHP5.4の連携で苦労したのは何だったんだ・・・。ちなみにphp.iniはC:\xampp\phpにあります。

5. .htaccessファイルの作成

php_value max_input_vars 50000を記述し無事パラメータ制限を回避できた。

6. phpMyAdminの初期設定

phpMyAdminは初期状態でログインなしで使えてしまうのでC:\xampp\phpMyAdmin\config.inc.phpのauth_typeをhttpに変更する。

$cfg['Servers'][$i]['auth_type'] = 'http';←ココ
$cfg['Servers'][$i]['user'] = 'root';(デフォルトのまま)
$cfg['Servers'][$i]['password'] = '';(デフォルトのまま)

この後phpMyAdminにroot(PWDなし)でログインすると、ツールバーメニューに「Users」が表示されるので、ここからlocalhostのrootのパスワードを変更し、phpMyAdminを開き直すと該当するPWDが有効になっている。

7. 64bitのWindowsで32bit用MySQL ODBCドライバーを使う

Windowsが64bitでもアプリケーションが32bitであれば当然ながらODBC Connectorは32bit版を使用する。32bit版のODBCドライバを64bit版Winにインストールすると、コントロールパネルからODBC設定画面を起動してもインストールしたはずのMySQL5.1ドライバが表示されない。よってコマンドプロンプトから以下のコマンドで32bit版のODBCデータソースアドミニストレーター画面を表示させ、ホスト名などの設定を行なう。

%windir%\SysWOW64\odbcad32.exe

上記にてシステムDNSを作成しMySQLとのコネクションを確立したら、アプリケーション側に以下のMySQL5.1のConnectionStringを記述(設定)する。

Driver=MySQL ODBC 5.1 Driver;Persist Security Info=False;User ID=root;Data Source=asprova;Extended Properties="DSN=asprova;UID=root;"





おすすめ記事一覧

1

よく会計の世界では「利益と減価償却でキャッシュを作る」と言われ、これは企業のキャッシュの源泉が利益と減価償却の二種類あるという意味なのですが、減価償却費はキャッシュの流出のない費用であり、P/L上の当期利益額よりも実際には減価償却費分だけキャッシュは多く残っているという数字遊びをしているだけで、物理的にキャッシュが生み出されるわけではありません。

2

毎月の生産でいくらコストがかかったかを計算する原価計算(実際原価)業務は、インドネシアではシステム化されている事例は少なく、細かく計算すれば時間がかかり、どんぶり勘定だと見たい情報が見られず、コロナ禍の影響で時間に余裕が出来た今は収益改善という観点から原価計算のやり方を見直す絶好の機会です。

3

ジャカルタでは、2019年4月にMRT地下鉄の第1期区間(総延長15.7km)が正式開通しましたが、コロナ禍の中にあった今年6月に、現在の始発駅であるPlaza Indonesia前のBendaran HI駅から、北ジャカルタのKotaまでの6.3km、西ジャカルタのアンチョールの車両基地までの5.2kmの総延長11.5km(11駅)を第2期区間として工事が開始されました。

4

2014年に誕生したジョコウィ政権は、事あるごとに中国寄りと言われ、2015年に中国と日本が受注合戦を繰り広げ日本の新幹線方式での導入が確実視されていたジャカルタ~バンドゥン高速鉄道案件では、インドネシア政府が手のひら返し中国案に鞍替えし、日本を袖にしたのは記憶に新しいところですが、南シナ海の南方にあるナトゥナ諸島周辺の排他的経済水域(EEZ)は、中国が主権を主張する「九段線」と呼ばれる境界と重複しており、中国漁船が公船を伴って活動する違法漁業問題で中国と対立しています。

大統領選挙で考えたギャップにハマるということ 5

ギャップにキュンとするというのは人間の本能みたいなもので、ジョコウィの私利私欲のない素朴なおじさん像と、その実強力なリーダーシップを発揮する実務派という内面が、一見普通の人だが実はスゴイというギャップ好きのインドネシア人に大ウケして、大衆は一種の集団催眠状態にあるようです。

情報の質のレベル 6

見える化された結果を共有化することで問題点が共通認識されますが、共有化が進むことで情報の持つ希少価値が薄れて困る人間がいる場合、有益な情報を独占することでポジションを高めようという政治力が働きます。

7

日本人がインドネシアに来ると、インドネシア人ののんびり加減にイライラするというのは昔からよく聞く話で、インドネシア在住日本人にとってのバイブル的小説である深田祐介著「ガルーダ商人」の中でも、インドネシア宗教省の高官が日本人とインドネシア人を自宅に招待する際に、インドネシア人向けの招待状には、遅刻することを前提にパーティ開始時間を三十分早く書いておくという記述があるほどです。

宗教によって異なる「死んだらどうなる」の考え方 8

キリスト教もイスラム教もともにユダヤ教から派生した宗教であり、それぞれイエス・キリスト(本人が神)またはアッラーという唯一無二の神を信じます。

株価操作なんてインドネシア株では当たり前 9

株価は売り注文と買い注文により変動し、大量の売り注文を買う注文がたくさん入れば、他の投資家達は「俺も俺も」と続くことで株価が上がります。

心臓に毛が生えたインドネシア人のずうずうしい転職活動を応援してみた 10

インドネシア人は秘密の話は誰かに暴露しないと精神の安定を保てない人が多いため、内緒の話に情報の希少性は少なく信憑性も低いことが多いので、「ここだけの話」という枕詞付きで聞かされる話は話半分に聞いておいたほうがいいかもしれません。

日系企業のインドネシアでの存在意義 11

今のまま日本の人口減が続けば、内需は縮小の一途をたどるわけで、そうなると日本国内市場だけで生き残るのは難しいと判断する国内企業が、海外市場に活路を見出そうとするのは必然です。

チャンスはあるが勝てる分野を見つけるのが難しい 12

実際にインドネシアに住んでみて、自分で動いて人と話しをして、現地の事情を少しずつ理解していくにつれて、インドネシアで起業することが意外と手強いことに気づき、その難しさの原因は、高い送料と関税であったりローカル企業との競争であったり、就労ビザ(IMTA)や外国人技能開発基金(DPKK)などのランニングコストの高さであったりします。

インドネシアのシステムインテグレーション業界 13

先日JETRO(日本貿易振興機構)さんと、インドネシアの中小企業のIT投資について意見交換させていただく機会をいただいたのですが、そこで「システム投資のコストメリットはどのように説明できるのか」という、システムインテグレーターの存在価値にも関わる重要な問題提起がありました。

肉体と精神と心と魂 14

「Body and Soul」といえば、昨日の内閣改造に伴う人事で内閣府政務官に内定した自民党の今井絵理子参議院員がメンバーだったSPEEDのデビュー曲であり、インドネシアの老舗女性ファッションブランド名でもあります。

ジャカルタのラーメン市場 15

僕がインドネシアに初めて来たのが1997年10月、インドネシア語は分からないし、仕事は辛いし、周囲の人間は理不尽だし、一時期日本に帰りたくて仕方がない時期がありましたが、当時自分をかろうじてインドネシアに繋ぎ止める心の支えとなっていたのが、協栄プリンスビル(今のWisma Keiai)の日本食レストラン「五右衛門」であり、ここでキムチラーメンを食べることが唯一の楽しみと言っても過言ではありませんでした。

ブランド力、技術力、資金力の3要素 16

1998年のジャカルタ暴動後、ルピアが暴落し海外からのドル建て債務を抱えた国内企業が利子の支払いに苦しんでいた頃、僕は外貨が獲得できるインドネシアでの新しいビジネスを探していました。

日本とインドネシアの間でのタイムマシン経営が通じなくなっている件 17

先進国と後進国との間にある流行のタイムラグを利用して、先進国での成功例を後進国で実践するビジネスモデルをタイムマシン経営といいますが、インターネットの普及に伴い情報がフラット化してしまい、モノと情報のタイムラグが限りなく小さくなった今、先駆者である中小零細同業他社が乱立し市場が出来上がったところに、後発の大手が参入し先発零細を駆逐していく、という典型的な負けパターンにはまります。

サリナデパートとマクドナルド 18

本日5月10日を最後にインドネシアのマクドナルド第1号店であるサリナデパート店(Sarinah)が閉店になりますが、ジャカルタのショッピングモールが新しいコンセプトでモダンにリニューアルされ続ける中で、僕がインドネシアに来たばかりの20数年前には、若者の待ち合わせ場所の定番でもあったサリナデパートやブロックMのパサラヤ(Pasaraya)などは完全に時代に取り残されてしまいました。

不景気の歴史 19

僕がインドネシアに来てからこれまで何度か経済不況を見てきましたが、今回の新型コロナウィルスの感染拡大により、間違いなく景気後退しますので、数年後にはこれがコロナショックとかコロナ不況とか呼ばれるようになるのかもしれません。

日本のバブル経済崩壊後とインドネシアの通貨危機後 20

自分が大学に入学したのがバブル経済末期の1991年、土地も株価もMAX爆上げして、三菱地所がアメリカの象徴であるロックフェラーセンタービルを買収し、ジュリアナ東京でワンレンボディコン(登美丘高校ダンス部のバブリーダンスみたいなやつ)のお姉さん達が扇子振って踊っている時期でした。

内需と外需の自国経済に及ぼす影響 21

公共事業投資を行っても、お金が企業内や個人の貯蓄に滞留してしまい国内消費が増えないのが日本の状況であり、国内消費は増えても消費材の輸入品比率が高く、国内資産が海外に流出しているのがインドネシアの状況です。

2019年の総選挙を前にインドネシア政治史のおさらい 22

来年の大統領選挙(Pemilu Pilpres Pileg Indonesia 2019)に向けての選挙運動(Kampanye)を解禁するにあたり、投票用紙に印字される順番はジョコウィ現職大統領・マフル副大統領候補組が1番、プラボウォ大統領候補・サンディアガウノ副大統領候補組が2番と決まりました。

コーヒーをもっと楽しくもっと美味しく 23

インドネシアは北回帰線と南回帰線をはさむコーヒーベルトに位置するコーヒー栽培に適した国で、1602年の東インド会社の進出を契機にオランダの植民地支配が300年以上続き、その間アラビカ種のコーヒーが持ち込まれ、気候のいい高原地帯で栽培が開始されました。

インドネシア人の悪魔祓い 24

人間誰しも自分の中に悪魔が潜んでおり、それが何らかのきっかけで表面に出て来るという考え方自体には、背景に宗教が有るか無いかの違いだけで、基本的に理解できる話であり、それを信じるか信じないかは別として、そういう考えがあることを認めることは大切なことだと思います。

-WEBサイト作成

© 2020 バテラハイシステム Powered by STINGER