« お気の毒 | トップページ | 意外と »

2016年1月16日 (土)

XAMPPとPHPに関するエラー

今日も綺麗な青空が広がっていた。

風があまりないと過ごしやすくていいねぇ。

PCネタ。

Webサイトを構築する時に役に立つのが、XAMPP

2000年始めの頃は、自分でWebサイト動作環境をローカルに構築するのは一苦労だった。

このXAMPPが出てからは、かなり簡単にそれが構築できるので重宝している。

ふと思って、久しぶりにXAMPPをアップグレードしてみようかと思った。

以前アップグレードしたのはいつ?というくらいかなり前。
する理由はあまりないし。

あと、アップグレードすると、大概問題が出てくるから、その対処が面倒で。(苦笑)

アップグレードでなくても、OS環境が変わった時にも動かなかったし。

とりあえず、興味があったので、やってみることに。

以前のものは全てバックアップし、現時点で最新の「xampp-win32-7.0.1-0-VC14-installer.exe」をダウンロードしてインストール。

PHP7にしてみた。どうなるやら。
PHP7にする理由はないけれど、せっかくだから、新しいのを、と。

インストールは問題なし。

が、早速問題発生。

XAMPPのコントロールパネルを開いて、Apacheを起動させようとするとエラー。

以前は、ポート80がぶつかって動かなかった、ということはあったけれど、今回はそうではなかったようだ。

そのエラーを元に調べてみると、XAMPPのコントロールパネル(xampp-control.exe)は、管理者権限で動かす必要があるとのこと。

以前はそんなことなかったのに...

右クリックしてそうすると、確かにApacheは起動した。

このコントロールパネル、僕が使っていたものと随分違って、「立派」になったねぇ。(笑)

「http://localhost/」と打って、下記が出ればOK。

よしよし、ということで、Apacheの「httpd.conf」ファイルの編集。

編集とは言っても、僕のWebサイトのエイリアスを登録するだけ。

それは、以前のものをコピペすれば良い。

が!

Error 403のAccess forbidden・・・(泣)

なかなかそううまくいかないものなのね。(苦笑)

これについても調べてみる。

なるほど、エイリアスの書き方が変わったようだ。

以前はこう書いていた。

Alias /エイリアスの名前/ "Webサイトのパス"
<Directory "Webサイトのパス">
    Options Indexes FollowSymLinks ExecCGI MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all

    DirectoryIndex index.php index.htm
</Directory>

その中の、Order Allow,Denyと Allow from allを「Require all granted」に変更する必要性があるらしい。

Alias /エイリアスの名前/ "Webサイトのパス"
<Directory "Webサイトのパス">
    Options Indexes FollowSymLinks ExecCGI MultiViews
    AllowOverride None
    Require all granted
    DirectoryIndex index.php index.htm
</Directory>

そうして、Apacheを再起動すると、ちゃんと表示された!

とりあえず、これでOK。

念のために、PHPを動かしてみると・・・

2つエラー・メッセージが。(泣)

1つ目は、「Warning: Creating default object from empty value」というもの。

なんのことかさっぱりわからない!

ネットの情報では、「new stdClass()」で変数を初期化する必要性がある、と書かれていた。

が、デバックしてみるけれど、よくわからない。

動かそうとしていたPHPプログラムは、自分の書いたものではなく、エンジンに当たるもの。

とりあえず、色んな場所でこれかな?と思うものを「new stdClass()」で初期化してみると、やっとWarningが消えた!

そんな場所でそれを初期化する必要性があるとは・・・

これがダメだったら、そのメッセージが出ている行の最初に「@」を付けてやり過ごそうかと思った。
「@」を付けると、メッセージが出なくなるとのこと。

とりあえず、解決したのでよかった。

もう1つのエラー・メッセージは、「Notice: Undefined offset:」。

これもよくわからない!!

どうも配列の中の値を見ている時にこのメッセージが出ているようだ。

別に変な見方をしていないと思ったのだけれど、ネットの情報では、「isset()」を使って変数を見るようにした方がよいとのこと。

そうしてみると、確かに消えた。

うーん、細かいねぇ。(苦笑)

やったのは、一例として書いてみると、

元:    for ($i = 0; $ary[$i] <> ''; $i++){

            ↓

新:    for($i = 0; isset($ary[$i]) == TRUE; $i++){

確かに前者は「スマート」ではないかもしれないけれど、別に問題ないじゃない!(笑)

これで、問題なく動くようになった。

上記の問題やエラーは、ネット上では情報として点在していたけれど、はまりそうなところかなと思って、ここにまとめておいた。

最後は、XAMPPのコントロールパネルの起動について。

以前は、XAMPPのコントロールパネルはそのまま起動していたけれど、今は管理者権限で起動するので、いちいちUACの確認でOKボタンを押さないといけない。

面倒だなぁ、と思っていたら、「xampp_start.exe」や「xampp_stop.exe」というコマンドの存在を知った。
以前からあったようだけれど。

XAMPPのコントロールパネルの方で、Apacheが間違いなく起動するのがわかっていれば、「xampp_start.exe」を使えばいいみたい。

これであれば、管理者権限云々は考慮しなくていい。

終わる時は、「xampp_stop.exe」をダブルクリック。

これらのショートカットを作っておけば、XAMPPのコントロールパネルを起動しなくてもOK。

これはいいかも。

XAMPPやPHPが最新になっても、僕の方ではそんなに恩恵はないけれど(笑)、新しいというのは気分がいいね。

|

« お気の毒 | トップページ | 意外と »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« お気の毒 | トップページ | 意外と »