カメリアの記事

意味があることやないことを綴ります

Google ドライブ上のファイルを自分向けに自宅ウェブサーバで公開する

Google ドライブ上のファイルを自分向けに自宅ウェブサーバで公開する方法を示します。ここで示す他の方法でいろいろと試しましたがうまくいきませんでした。以下がが唯一の方法という気がします。

Google ドライブ

パソコン版 Google ドライブでは設定ウィンドウにある「 Google ドライブ」左タブを開き、ミラーリングを選択します。 Apache はストリーミングのフォルダにアクセスできないっぽいです。

デフォルトのストリーミングから、ミラーリングに変更するのは大きな決断です。データ運用における重大な判断になるでしょう。

ストリーミングはファイルの幻影のようなものをローカルに保存しておいて、アクセスした際にだけ実体ファイルがダウンロードされる方式です。ミラーリングは実体ファイルがローカルにも保存されています。

Apache on Windows

ウェブサーバをローカルマシンに立てます。 nginx ではユーザフォルダ( C:\Users\user_name )にアクセスできないっぽいので選べません。

  • ディストリビューションApache Haus を使います。
  • Zip ファイルをダウンロードして解凍して配置します。 Google ドライブ内に配置することもできます。
  • 管理者権限でターミナルを起動し、 httpd -k install としてサービスに登録します。
    • サービスに登録 httpd -k install
    • サービスから削除 httpd -k uninstall
    • 起動 httpd -k start
    • 停止 httpd -k stop
    • リロード httpd -k reload

conf

Apache\conf\httpd.conf と、好みに合わせて Apache\conf\extra\httpd-vhosts.conf などを編集してサイトを公開します。

httpd.conf

約 39 行目で Apache の本体を置いた場所を記述します。

Define SRVROOT "C:\Users\camellia\マイドライブ\www\Apache"

約 256 行目で公開するドキュメントのルートフォルダを指定します。僕の場合はフォルダ構造がデフォルトと異なるため、下のような記述をしています。

Define DOCROOT "C:\Users\camellia\マイドライブ\www"
DocumentRoot "${DOCROOT}"
<Directory "${DOCROOT}">

また上述に関連して約 374 行目を書き換えています( SRVROOT を DOCROOT に)。

ScriptAlias /cgi-bin/ "${DOCROOT}/cgi-bin/"

同じく 390 行目を書き換えています。

<Directory "${DOCROOT}/cgi-bin">

バーチャルホストを利用する場合は約 509 行目の # を削除します。

Include conf/extra/httpd-vhosts.conf

それから利用するモジュールによって約 69 行目から下の # を外します。僕は .htaccess でヘッダを指定したり、アドレスの読み替えをしたり、またエイリアスを使ったりするのでしたの三つの # を外しています。

LoadModule headers_module modules/mod_headers.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so

httpd-vhosts.conf

バーチャルホストを利用する場合は下のような記述をします。

<VirtualHost *:80>
    DocumentRoot "C:\Users\camellia\マイドライブ\www\studio"
    ServerName satsuki.c
</VirtualHost>

エイリアス

エイリアスを利用するにはホストの定義で下のような記述をします。下の例では、上述のバーチャルホストの設定に記述を追加しています。

<VirtualHost *:80>
    DocumentRoot "C:\Users\camellia\マイドライブ\www\studio"
    ServerName satsuki.c
    Alias /scribe "C:\Users\camellia\マイドライブ\scribe"
</VirtualHost>

hosts ファイル

Windows の設定です。ブラウザのアドレスバーに localhost と入力してサイトにアクセスしてもいいですが、好みのアドレスにすることもできます。また、バーチャルホストを利用して複数のサイトを作るなら必要な作業になります。

ネームサーバを立てるのは面倒なので、 hosts ファイルで解決します。 hosts ファイルは下のフォルダにあります。

C:\Windows\system32\drvers\etc

テキストエディタで開き下のように記述します。

127.0.0.1       studio.c
::1             studio.c

上は IPv4 のループバックです。下は IPv6 のループバックです。この例ではブラウザのアドレスバーに http://studio.c と入力するとパソコン自身にアクセスして Apache が作動します。ちなみに IPv6 の設定は必要ではありません。 hosts ファイルを更新すると経路情報にすぐに反映されます。

これでやりたいことが達成されました。

https

ちなみに、 https にするのは難しいです。と言うか難しくはないんです。以前挑戦したときのうろ覚えの記憶からすると、非公開のウェブサーバで得られる無料のサーバ認証というのが限られていて、それでそんなサーバ認証ではブラウザ( Chrome )がいい顔をしないのです。いちいち危険を指摘してきます。そんなつもりじゃなかった、という感じです。やらないのがおすすめです。

ちなみに https でないと動作しない JavaScript というのがあります。僕が遭遇したのはクリップボードに書き込むスクリプトです。他にもあるかもしれません。そのあたりを考えると、上述を押して https にするほうがいいのかもしれません。ですが僕は GitHub Pages でウェブサイトを公開しているのでそこで JavaScript の動作を確認しました。