Debug- Official Website -

犬土偶日記

海の近くに住みたい

Debug日記の使い方

話題:Webプログラミングとか

2021年01月12日

Web制作環境構築でクソハマる地獄

公開日時: 2021年01月16日 12時46分07秒

珍しく早朝に起きた。DQウォークのレアモン確変が一旦終わったし、今日はPCの環境構築作業をやる。Web制作環境をさっさとやらないといろいろ溜まってきている。犬土偶日記の更新が止まっている。まぁこれはブラウザがあれば更新できるんだが、更新前にローカルでテストしておきたい。CGIの動作テストに使いたい。それに、大晦日の日記にDQウォークのレベル表を載せたんだが、タグ手打ちでごちゃごちゃしていて実際にどう表示されるか分からん。タグ付けミスがありそう。それもローカル更新でチェックしたい。

作業開始。インストールするものは、Apache、ActivePerl、PHP、MySQL。Pythonはほぼ使っていなかったのでリストラする。必要になったらまた入れれば良い。言語やデータベースはできるだけレンタルサーバーと同じものにしたい。まずはレンタルサーバーにログインしてバージョンを調べる。Perlは5.14.4、PHPは7.4.10、MySQLは5.7。Apacheは最新のを入れれば良い。先に全部ダウンロードしておく。しかしPerlは古いバージョンが入手できず、5.28をダウンロードすることになった。まぁ大丈夫だろう。必要なものを準備して、インストール開始。

Apacheから。まさかいきなり苦戦するとは。ダウンロードしたものを解凍してC:\Apache24に移動。設定ファイルhttpd.confを適当に書き換える。再起動して無事に動くはずだった。前のPCではDocumentRootをNAS上のディレクトリに設定する時に苦戦したが、その解決法は犬土偶日記に書いてある。そこでは引っかからないはずだった。しかし、localhostにアクセスしてみると何故かInternalServerErrorが出る。ただのテキストファイルのindex.htmlにアクセスして何故サーバーエラーが出るんだ。どうしても表示できない。仕方がないので、Apache自体がちゃんとインストールできているか確かめるためにDocumentRootを元に戻してチェック。設定ファイルを書き換えたらApacheを再起動する必要がある。コマンドからApacheを再起動。そしたらポート80が他で使われていて起動できないみたいなエラー。netstatでポート80を使用しているプロセスのPIDを調べてタスクマネージャーで調べる。あるにはあるが、ブラウザとかウイルスバスターとかのプロセスだ。使っているという感じではない。ググってみたが分からん。設定ファイルのServerNameとかListenとかのポートを8080に変えてみたりしても無駄。こんなわけの分からんところでハマって身動きが取れん。何でこんな目に遭わねばならんのだ。1時間以上も苦しんで、原因が分かった。サービスでApacheの停止や起動をできるようにしてあった。コマンドで直にやろうとしてもバッティングしてできなかっただけ。サービスの方で再起動し、localhostにアクセス。普通にIt Works!と表示された。Apache自体はおかしくないようだ。またDocumentRootをNAS上のディレクトリに設定し直して再挑戦。今度は何故かサーバーエラーではなく、It Works!の画面。NAS上のindex.htmlファイルの中身はそれではない。Apacheデフォルトのhtdocs内にあるやつだ。httpd.confを書き換えても反映しなくなった。何か起こるたびにググって調べるが全く解決しない。いろいろ試してみたが、設定変更が反映されないのはDocumentRootだけのようだ。そんなバカなことがあるだろうか。結局、ブラウザがキャッシュを表示しているだけだったという地獄のような事態。殺意が湧く。気づけたから良かったが、気づかなかったら一体何時間消費することになっただろうか。で、Ctrl+F5で更新。まぁ予想通り、InternalServerError。元に戻っただけだからな。しかし何故だ。ただのHTMLファイルを表示するだけのことが何故できないんだ。このHTMLファイルをデフォルトのDocumentRootにコピーし、設定ファイルも書き直してやってみた。NAS上ではなくローカルに置けば普通に表示される。何故NASだとエラーになるんだ。意味が分からない。ググっても全く分からない。そもそもサーバーエラーが出るのがおかしい。CGIならともかくただのHTMLファイルだぞ。今度こそ永久に解決できないかもしれないと思った。ここで、ふと気づいてApacheのエラーログを見てみた。なんと.htaccessの文法エラーだと。以前は普通に動いていたのに何故急にエラーを出すようになったんだ。DenyとかAllowとかごく普通のコマンドがダメだと言う。意味が分からない。で、ググってみたら今度は答えが分かった。最近のApacheで.htaccessの文法が変わったらしい。以前の記述がダメになっていた。そんなの知るかよ。調べて書き換えて無事にHTMLは表示されるようになった。

PHPのインストール。というか解凍してC:\PHPに移動するだけ。php.iniは後でやろう。Apacheのhttpd.confでCGIやPHPの設定をしておく。適当に書き換えてCGIやPHPが動くようにして再起動。あとはphpinfo();でチェックだ。これがまたInternalServerError。PHPもまた文法が変わったのか?以前と違うバージョンになったしな。もう調べる気力もないぞ。ていうかphpinfo();でエラーが出るとかあり得んだろ。またApacheのエラーログを調べる。また.htaccessだった。DocumentRootだけでなくいくつかのサブディレクトリにも.htaccessが置いてあった。鬱陶しいな。書き換えて無事に動いた。次はPerlだ。

ActivePerlのインストール。インストール先はデフォルトのままC:\Perl64にした。Pathの設定はインストール時に自動でやってくれたようだ。これでCGIも動くはず。だが動かない。InternalServerError。さっきPHPをチェックしたのと同じディレクトリだから今度は.htaccessではないぞ。ひたすらハマりまくるんだな。地獄か。エラーログをチェックすればいいんだろ。ファイルがありませんだと。どういうことだ。気が狂いそう。あぁそうか。#!/usr/local/bin/perlか。C:\usr\localにインストールしないとダメなんだ。だが、perl.exeをそこにコピーすればOKだ。レンタルサーバーの方でパスが変わっていた。以前は/usr/local/bin/perlと/usr/bin/perlのどちらでもOKだったが今日みたら/usr/bin/perlしか書いていない。しかし#!/usr/local/bin/perlのCGIはレンタルサーバー上で今も動いている。どちらでも良いままなんだろうな。でも/usr/bin/perlにして欲しい気配だから俺も今後は/usr/bin/perlにしよう。しかし過去のプログラムを全部修正するのは大変だ。なのでC:\usr\binとC:\usr\local\binを用意してperl.exeを両方にコピーしておいた。これでどちらでも動くはず。適当BBSのPerlCGI版をlocalhostで動かしてみる。無事に表示された。犬土偶日記も表示してみる。大丈夫。Perlのインストールは終わり。次はMySQL。

ネットから必要なファイルをダウンロードしながらインストールする軽量版と最初からフルで入っているインストーラーの2種類ある。軽量な方でやったが、途中でダウンロードができずにエラーで止まるというウザさ。フル版をダウンロードし直して無事にインストール完了。my.iniを弄ってデータベースの場所をNAS上に指定。これもApacheと同じく、ドライブレターでの指定ではなくIPアドレスで指定する必要がある。無事に完了。

php.iniの書き換えがまだだが、もう疲れ果てた。数時間消費した。数時間というか半日というか、ほぼ1日。とりあえず犬土偶日記の更新ができるようになったから更新しよう。大晦日の日記をローカルで更新してチェックしたらやはりDQウォークのレベルの表がダメだった。TDタグの書き忘れがあって崩壊していた。サクッと直して終了。文章も読み直しておかしいところを修正する。元日の日記では年賀状の画像を貼るようにタグ付けされていたが、肝心の画像を用意していなかった。前のPCが壊れて作業できなかったんだな。GIMPを起動して画像を用意し、サーバーにアップロード。ローカルでも表示チェック。大丈夫だ。大晦日から今日まで13日。あまり大量に更新すると読む人もつらいだろうから、半分だけ更新することにしよう。とりあえず1月5日までで良いかな。残りは2日後ぐらいに。

まだ16時半だが死ぬほど眠い。30分後にDQウォークどこでもメガモンが出る。それを倒して寝よう。

話題:Webプログラミングとか

Info.
公開日時2021年01月16日 12時46分07秒
本文文字数3967文字 (タグ込み)
URLhttps://orca.xii.jp/debug/diary/diary.cgi?id=dogoo;date=20210112
RSS1.0https://orca.xii.jp/info/diary-dogoo.rdf
Comments

コメントはありません。

コメント投稿フォーム
文字色              
  • 名前を省略すると「名無しDebugger」になります。
  • メールアドレスの入力は任意です。
  • 海外からのコメントスパム対策のため、表示された漢字の読みを必ず入力してください。
  • 本文は必須項目です。投稿する場合は必ず記入してください。タグは使えません。
  • 改行が1つ入力された場合は強制改行として処理されますが、2つ以上連続する改行は段落の終了として処理されます。
  • 本文の行頭に「>」のある文は引用としてマークします。引用でない部分の冒頭に「>」は付けないでください。
  • コメントの削除は管理者若しくは日記執筆者しかできません。書き込む時は注意しましょう。
  • 全部記入が済んだら投稿ボタンを押す前に一度読み直して推敲しましょう。