1. ホーム
  2. プロフィール
  3. By-JH4AGB/14
  4. カウンター

Windows(64bit)版PCのサーバー化

「Windows 10/8.1/7、 64bit パソコンをサーバーPCに !!。
「Windows10/8.1/7、 64bit パソコンにApache2.4(32bit)、とActivePerl(32bit)をインストールしよう!。」
「Windows10/64bit パソコンに Apache2.4(64bit)、とActivePerl(64bit)をインストールしよう!。」(R03-3-4 追記)←ここ


常時使用している Windows 7 (32bit)サーバー化パソコンが不調になりやむをえず格安な Windows 8 (64bit)を購入しましたがホームページの編集に不都合が生じている為、 Windows 8 をサーバー化しました。以下は筆者の様な悪戦苦闘をしないようにとの思いで、忘備録を書きました。これをご覧の皆さんの参考になれば幸いです。
下記説明は、XP版のサーバーを構築された経験の有る方向きですから少し説明不足です。下記にリンクしているサイトの記事を印刷して参考にしながら作業を進る事をお勧めします。
なお、HPサイトのトラブルに備えてそのサイトを PDFファイル化していますからこのPDFアイコンをクリックしてください読みにくいですが参考にどうぞ。


(1)まずは基礎知識編  

 パソコンがWindows 7になって64Bitが導入されましたが32bit版を購入していたので、ApacheやActivePerlに対してどの様になっているのか全く理解が出来ていません。 そこで Windows 10/8.1/7でのサーバー化の導入記事をインターネットの検索で情報収集から始めました。
少ない導入化の記事から Apache や ActivePerl に 32Bit 版や 64Bit 版があることが判明しました、マシン領域では Windows10/8.1/7のどれでも、Apache や ActivePerlの 32Bit 版で動かせる事が分かり、同梱(下記)しているソフトでサーバー化にこぎつけました、以下は「7」版での説明です。

*追記-1   Win7PC、及び Win8.1→Win10更新PC 共に同じ方法でインストールして正常に動作しています。(H29-3-15)

(2)Apache2.4   32bit版のインストールと「httpd.conf」の編集  

Apache2.4   32bit版のダウンロードとインストールは←ここを参考にしました。このサイトではPHPやSSIそして PHPとCGIの組み合わせの設定が記述されている為、理解出来にくいです、そこで、CGIだけの「httpd.conf」の設定は←ここが 良いでしょう。
  * 参考(Apache2.xxx系について)

実際のインストール手順や説明は、前記のサイトを良く読んで実施してください。
インストールでエラーメッセイジが出たらVisual C++ ランタイムが必要になる場合があります、
ダウンロードしたランタイムは拡張子が .exe ですからダブルクリックするだけで必要なファイルにインストールされます。 下記 同梱ソフト 3)よりダウンロード可能です。
 

「Apache24」、「ActivePerl-5.16.3.1603-MSWin32-x86.msi」と「スタートボタン導入ソフト」 はこのページの下記 同梱ソフトでダウンロードが出来ます。
ActivePerl-5.16.3.1603-MSWin32-x86.msiの拡張子が「.msi」となっているルのはインストーラー付きということです。 「x86」は32Bitを意味します、
これが「x64」だと64Bit版と言うことです。ApacheとPerlの Bit数は合わせましょう。筆者は64Bit版のインストールはしていませんがインストールは同様です。
「httpd.conf」の編集はメモ帖で出来ますが「Trapad」もお勧めです。


Apache2.4   32bit版のインストール方法は通常のインストーラーによるインストールではなく、 直接 C:ドライブ直下に「Apache24」フォルダーをコピーしておいてから コマンドレベルでインストールする方法です。 ここではコマンドプロンプトに入る方法が省略されているので、ここを 参考←にしてください(後半に記述がしてあります)。 なぜ直接 C:ドライブ直下に「Apache24」をコピーするのか←ここ←注UAC対策について

*追記-2   Apache2.4   のインストール方法(H28-12-23) (参考)この最後にアンインストールの方法が記載されています。

「Vista」や「7」でのファイル修正は管理者権限で実行すると可能となります。その方法←はここ。
コマンドプロンプトに入る方法(1)は「スタート」→「検索」の枠内に、または「ファイル名を指定して実行」に「cmd」と入力し「エンター」で入ります。
コマンドプロンプトに入る方法(2)は「スタート」→「すべてのプログラム」→「アクセサリー」→「コマンドプロンプト」を「エンター」して入ります。
コマンドプロンプトに入る方法(3)は「スタート」→「Windowsシステムツール」→「コマンドプロンプト」→右クリック→その他→管理者として実行。(Win 10)
コマンドでの操作ではマウスは使用できません、入力文字を間違えたらバックスペースで修正します。


 注 筆者は 8.1 のスタートポタンでは直接ファイルを操作したり、コマンドレベルに入る為には、 不満なため、スタートボタン復活の 7 風のソフトを導入しています。
スタートボタン導入ソフトの入手先ここ←です。
「クラシックシェル」でしたら下記の同梱ソフトをどうぞ。

さて Apache24のconfigファイルの編集です、configファイルは C:/Apache24/conf/ にある httpd.conf が編集すべきファイルです。このファイルのコピーをバックアップにしておくと安心ですが、このファイルの元は  originalフォルダー内にありますので編集に失敗してもこのファイルをコピーして使えるので安心して編集してください。

httpd.conf の設定

Apache の Win版は httpd.confの設定だけです、それでは具体に設定していきましょう。
 (**行あたり)は目安ですからそのあたりを探してください。
ServerRoot "c:/Apache24" (36行あたり)
Listen 80 (57行あたり)
標準は80です。
70行目から180行目あたりはユーザーが使用するモジュールです、行に#がないものが利用できます。
インストール時に設定されています、必要により#を削除してモジュールを生かします。
ServerAdmin admin@exam@le.com (210行目あたり)
管理者へのE:mail です。
SarverName www.example .com :80 (218行目あたり)
管理者のドメイン名です。
<Directory />
  AllowOverride none
  Require all denied
</Directory> (214〜217行あたり)
このままです。
DocumentRootの設定
DocumentRoot "c:/web/htdocs"
<Directory "c:/web/htdocs"> 
   Options Indexes FollowSymLinks ExecCGI (この行追記)
  Allowoverride None
</Directory> (220〜264行目あたり)
DocumentRoot Directoryとは管理者のホームページファイルのある場所です、各自に合わせてください。
<Ifmodule dir module>
  DirectryIndex index.html
</Ifmodule>        (270行目あたり)
index.html 以下に必要によりホームページの見出しファイルを指定します。たとえばindex.htm とか。
これ以降は編集の必要は無いと思われます。CGIの設定は省略しています。
編集(設定)後について
編集(設定)後は必ずApacheの再起動を実施してください。また、再起動後は、ブラウザーの更新が必要です。
説明が完全ではありませんので下記のサイトを参考にしてください。

参考サイト貧乏ライフ←Configファイルの設定  最終行のApache2 httpd.conf詳細設定 windows も必ず見てください。

(3)Apache2.4の起動、停止と再起動方法。  

Apache2.4の制御方法はモニタープログラム「ApacheMonitor.exe」(C:/Apache24/bin/にあります)のショートカットをデイスクトップに作成して それをダブルクリックしてモニターを起動させてください。そのモニターから「Start」、「Stop」または「Restart」 で起動、停止させます。最下段に赤い羽根マークしか表示されませんので、隠れているインジケーターのこのマークを右クリックして、 モニターを表示させます。
「httpd.conf」ファイルを編集し直したらその都度、Apache の「Restart」が必要ですし、 ブラウザの更新も忘れずに実施しないと正しい編集結果は得られません。
そして、「httpd.conf」ファイルの編集ミスがあると Apache は正常動作はしません。

*追記-3   Apache2.4   のもう一つの再起動方法(H29-3-15)

(4)ActivePerlのインストール方法と確認。  

ActivePerlのインストール方法は通常の方法で特に問題になる所はありませんが、インストールで次に進んだところでとても時間が掛かるので、
我慢して待ちましょう。
始めActivePerlソフトのダウンロードを64bit版と間違えていたためCGIが動かず苦労しました。
またインストーラー付きの「Perlのインストールについて」 ←はここを参考にしてください。

ActivePerlのインストール後の確認方法を参照してください。  

*追記-4    パールのインストールの確認方法(H29-3-15)

以上で「ローカルホスト」つまり「http://127.0.0.1/」で自分のパソコンに仕込んだ「.html」と「.CGI」ファイルがブラウザで見れることになります、
ちなみに私の PC では Apache 本体は自動起動しています。
Network Dnmain ゃ Server Name・Email Addressを入力する画面で「for All User,on Port,as a Service-Recommemded」にチェックを入れて インストールをしているからです。

処で「Windows8.1」は「7」に近づきましたがまだ「7」に慣れた方には、「8.1」は苦手の様です。
以下に「8.1」を「7」やXPに近い環境が得られるソフトを紹介します。4)の「クラシックシェル」です。
「クラシックシェル」である程度馴染んだらアンインストールしてください、「Windows8.1」に戻ります。(-現在ではもう必要ないかも?-)
__________________________________
◇◆◇◆◇◆◇◆◇◆32Bit版ダウンロードソフト集◇◆◇◆◇◆◇◆◇◆◇◆◇
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆◇同梱ソフトは下記からダウンロードが出来ます◇◆
1)アパッチ httpd-2.4.zip
2)アクティブパール ActivePerl-5.16.3.1603-MSWin32-x86.lzh
3)Visual C++ ランタイム Apache(32ビット版)でエラーが出たら必要です。
4)クラシックシェル(Win 8→7化) ClassicShell-J368.lzh
__________________________________
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
__________________________________
◇◆◇◆◇◆◇◆◇◆64Bit版ダウンロードソフト集◇◆◇◆◇◆◇◆◇◆◇◆◇
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆◇同梱ソフトは下記からダウンロードが出来ます◇◆
1)アパッチ httpd-2.4.28-Win64-VC15.zip(R02-2-20最新版)
2)アクティブパール ActivePerl-5.24.3
3)Visual C++ ランタイム Apache(64ビット版)でエラーが出たら必要です。
4)httpd.conf 現在運用中の物です。
__________________________________
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(なおVC14(あるいはVC15)とはVisual Studio 2015でビルドされたアプリケーションという意味です)。64Bit版DL追記(H30-1-25)
Visual Studioのバージョン毎に必要となるランタイムは異なります。それぞれ必要なファイルと入手先は次の通りです。
ランタイムの必要と入手先の説明←ここ

(5)お友達の為に HP の場所を提供出来る設定&(方法)。  

つづいて、「Windows8.1」・「7」版自サバ(PCサーバー)にお友達の為に HP の場所を提供できるようにする設定を記述します。
「httpd.conf」ファイルの450行目(私のhttpd.confはいじって在るので番号は違います)あたりにある下記行をコメントアウト(Userモジュールを有効に)します。


# Language settings
Include conf/extra/httpd-languages.conf
# User home directories (ユーザー設定)
Include conf/extra/httpd-userdir.conf (先頭の#を削除してモジュールを有効にします)


そして「extra」フォルダー内の「httpd-userdir.conf」を次のように書き換えます。
* 注* Apache 2.XX-系から languages userdir ssl manual 等のモジュールが「extr」フォルダーに分離されました。 Apacheの以前のバージョンでは全ての設定を「httpd.conf」ファイルに記述していましたが、 Apache2.2系からはいくつかの設定項目については別ファイルに分離し、必要に応じて「httpd.conf」に読み込むようになりました。 デフォルトで用意されている設定ファイルは「conf\extra」ディレクトリに含まれています。 「Include」は他に用意された設定ファイルを取り込む事です。  


# Settings for user home directories
#
# Required module: mod_userdir

#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received. Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir "C:/Websaver/USER/*/"

#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "C:/Websaver/USER/*/">
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI IncludesNoExec
    <Limit GET POST OPTIONS>
      Order allow,deny
      Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
      Order deny,allow
      Allow from all
    </LimitExcept>
</Directory>


Directory 内の意味は、お友達のHPファイルの提供場所は「C:/WebSaver/USER/*/」です、「*」はワイルドカードで「全て」を意味します。
また、ここでは、CGIの使用を許可をしています。
私のパソコンサーバーでは、「C:/WebSaver/USER/」の USER 内に、お友達のHPファイルを提供しています。


「** 参考-1 **」
「httpd.conf」ファイルの<Directory />・・・・・・</Directory>に記述してある内容の説明です。
"AllowOverride"=アクセス制御に関する設定で外部ファイルによる使用の可否を記述します。

「** 参考-2 **」
筆者の設定ファイルを次に示します。
「Windows 7」の設定ファイルは、 「httpd.conf」 「httpd-userdir.conf」(7の 32Bit版)
       *注*Vistaゃ7の初期版では、 httpd.conf conf 、httpd-userdir.conf の編集(メモ帳など)は管理者権限で編集しないと上書きが拒否される場合があります。
設定ファイルは基本的に「7」も「8.1」も同じで良いと考えます。

 筆者のデイレクトリー形式  C:/apache24    perl  D:/Websaver /Public_html (ホームページ本体/Basic認証)   D:/Websaver /user (お友達用に提供)

(6)特定会員だけに閲覧を解放する為の「Basic認証」の設定&(方法)  

Apacheには、簡単にアイデーとパスワードを入力して秘匿エリヤを公開できる Basic認証 が簡単に出来る機能が備わっていますが、少し秘匿性に欠ける面があります。
私たちの会員だけが閲覧出来たら良いと云うだけの秘匿性で第三者が見ても支障のないようなエリヤと内容であればこれで十分と考えています。

前置きはこのぐらいで、本題にはいります。「Basic認証」をする為には、「.htaccess」と「.htpasswd」の二つのファイルをBasic認証をかけるフォルダーに設置するのと httpd.confファイルを少し編集をするだけです。(*以前はApacheに備わっているコマンドレベルで設定(参考)していた)
以下は、Basic認証をかけるフォルダーを「test」、認証「ID」を「IDtest」、またパスワードは「**任意**」として説明しています。

.htaccess」の例とその説明

AuthType Basic ←Basic認証で在ることの宣言
AuthUserFile C:/WebSaver/Public_html/test/.htpasswd ←Basic認証を掛けるフォルダーの階層とパスワードファイル名
AuthGroupFile /dev/null ←グループ名 この例では設定していない。
AuthName "Please enter your ID and password" ←認証画面のガイダンス
require valid-user ←パスワードをクリャーした人はすべて解放の意味
testフォルダーは仮の説明用です。

.htpasswd」の例とその説明

IDtest:$apr1$3gf2Eq6.$d17ukc0Hx4xSpzHjvamYj0 ←Basic認証のパスワード(MD5タイプ)
IDtest :は仮の「ID」の説明用です、それ以降がパスワードです

「httpd.conf」の変更点とその説明

200行〜250行(行数にはずれがあります)の変更を下記の様に編集します。
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/WebSaver/Public_html/test">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks ExecCGI

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#
AllowOverride all
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

</Directory>
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
  DirectoryIndex index.html
</IfModule>
#
AccessFileName .htaccess
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.ht">
   Order allow,deny
   Deny from all
   Satisfy All
</FilesMatch>
#



←testここに.htaccess と .htpasswdを設置
するとこのフォルダー以下が認証の対象となります。
test以下の階層フォルダーに設置するとそ
のフォルダー内が 対象となります。








←CGIを動かす為にExecCGIを追記







←Noneをallに変更 (これ重要)















←アクセスファイルが.htaccessである事の追記




←.htで始まるファイルの観覧禁止処理 

Apacheには「bin」フォルダーにhtpasswd.exeというパスワードをMD5形式で作成するブログラムが在るのでコマンドレベルでパスワードファイルを作る事は 可能ですが、私はこの←サイトで作成しました。
Windowsではファイルの初めが「.」で始まるファイルの保存はできませんが、「".htaccess"」の様に「"」で囲んでやれば保存できます。
以下にパスワードフアイルの作成方法やBasic認証の参考となるサイトを記載します。

(Edit=H26-5-19)(Edit=H26-12-3)・(Edit=H29-3-15)

(7)Win 10へのApache/Perl(64bit)をインストールした時の忘備録です  

 Apache24/Perl(64bit)どちらも32Bit版のインストール方法は変わりません、Pirl64のインストールでは途中経過が分かる用になっていました。Win 7でPerl(32Bit)をインストール時インストール途中の経過が分からず コンピューターがフリーズしているのでは ?、と思われた、あれから数年が経過しこの点が改良されていました。
 コンフィグファイルの編集ですが、私は32Bit版をそのまま流用しました。ですが CGIがうまく表示(動作)しませんでした。CGIを動かすためにネットを色々検索しましたが解決に一週間 程かかりました。36~37行目あたりに Define SRVROOT "C:/Apache24" ServerRoot "${SRVROOT}" が目新しく以下のサーバールートがマクロ定義となっていました。(*注1*参照) この項目は変更しなくてもよかった。

 問題はCGIでの表示(動作)がうまくいかない事でした、原因はわかってみれば簡単なことで CGIファイルの先頭行には Perlへのパスが、私の自鯖(Apache24)の場合 
#!c:\perl\bin\perl と書くようになっているのですが、Pirl64 のインストールでは C:\ドライブのフォルダー名が (Perl64) になっていました 32Bit 版では(Perl)だったので問題はなかったのです、しかしPerl64 フォルダーでは パスが通りません、フォルダー名を Perl にするか、CGIファイルのパスを#!c:\perl64\bin\perlに書き換える必要があります。最初から64Bit 版をインストール する場合は、インストール後にフォルダー名を Perl にした方が手っ取り早いです。(64Bit版だけインストールした場合はPerlかも知れません)先に記述したようにこのことに気ずくのに一週間かかりました。(Edit=R03-3-4)

★ActivePerl64のインストール方法←ここクリック
 *注1* Define SRVROOT" C:/Apache24"  ServerRoot "${SRVROOT}"とは以下の"${SRVROOT}"は"C:/Apache24"ですよと言う意味です、「定義する」という事です。

64Bit版参考サイト
★web design lab
★なんでも工房のブログ
★Let'sプログラミング
★Webデザイナーになる!!
★ActivePerlダウンロードサイト(ActivePerl-5.28.msi/R03-3-4)





参考サイト(32Bit版)
■人生ひまつぶし(Part-1)
■人生ひまつぶし(Part-2)
■大橋のページ
■Htaccess作成
■Allabut
■Webサーバー版Apache2Apache 2.0.53 版ですが参考になります。
■戻る