私がエラーを解くのに苦戦してしまったこの内容、この記事を読んでくれてるあなたも同じことで悩んでいるのではないでしょうか?
私の場合だとネットで調べても同じ状況の情報が見つけられず、結局1時間半かけて解決までこぎつけました。
PHPの勉強がしたくてMAMPを起動したはずが、MAMP導入でつまずいて時間を大幅ロスする。
それって非常にもったいないですよね。
今回はそんな私の失敗経験を備忘録として残します。
エラー解決のヒントになれば嬉しいです。
【結論】MAMP PROとMAMPで接続先のパスが全く違う
結論は見出し通りで、MAMPとMAMP PROとで接続先のパスが全く変わります。
実際に私がやらかしたことを要約すると、無料版のMAMPを使用したいのにMAMP PROを起動してた、ということ。
MAMP PROだと「Document root」がそもそも違うことさえ気づかず、延々と入力済みのフルパスが間違ってないかのチェックをしたり、ネットで「MAMP 404」などでネット検索しまくるハメになりました。
気づけた後は笑い話ですけど、リアルに解決できてない時間は地獄のようでした 笑。
じゃあなぜ私が無料版のMAMPではなく、有料版のMAMP PROを起動して全く気づかなかったのか?
以下では私がやらかしたことの詳細を詳しくお話する前に、まずは404エラーについても軽く触れておきます。
404エラーの原因は「ページが存在しない」こと
今回MAMP経由で起こった404エラー、これが出る時は「ページが存在しませんよ」とサーバーが私たちに教えてくれてるわけです。
まず404エラーの主な原因は下記のとおり。
- URL指定されたページ自体が削除、もしくはURLが変更されている
- 入力したURLが間違っている
- リダイレクト先のURLが間違っている
- サーバー側でディレクトリの設定を間違っている
今回のようにWEBサーバーを利用してPHPファイルを表示させたい場合だと、考えられる原因としては以下の内容が挙げられそうです。
- 入力したURLでスペルミスを起こしている
- サーバー側で設定したディレクトリと違う場所にPHPファイルを置いている
- ファイル名が違う
じゃあ私の場合はと言うと、根本的にはファイルを置くディレクトリが違うから404エラーが発生してました。
ウェブカツで指示された通りのディレクトリに配置したのになぜページが存在しないなんて言われるのか?
その大元の原因はそもそもアプリ自体の選択が間違っていたから、でした。
MAMPとMAMP PROは同時ダウンロードされる
現在私はウェブカツでHTML・CSS部入門、JS・jQuery部入門まで済ませ、ひとまずPHP・MySQL部に入部したばかりです。
PHPを動かせる環境のために公式サイトからMAMPダウンロードをすべく、下記サイトにまずはアクセスしました。
公式サイトトップページに「Free Download」とあるのでそこをクリックし、私が使用しているmac専用のMAMPを下記画面よりダウンロードしました。
ダウンロードが完了すると「アプリケーション」フォルダ内に、MAMPフォルダとMAMP PROのアイコンが表示されます。
そう、ここが私の思いっきりハマった落とし穴。
アプリケーションフォルダにはMAMP PROアイコン、MAMPフォルダしか表示されないわけです。
実は無料版MAMPのアプリ自体はMAMPフォルダ内に格納されてて、私はそんなことも知らずMAMP PROを起動して、404エラーに延々悩まされた、というのが事の顛末でした 笑。
ちなみに、MAMPとMAMP PROとでアイコンがどれだけ似てるかというとこの通り。
MAMP PROアイコン
MAMPアイコン
色違いってだけデザインはほぼ一緒なんですねー。
いや色で気づけよって話なんですが、アプリアイコンの違い以外にもこんな部分で違いがあります。
それぞれの違い | MAMP PROの場合 | MAMPの場合 |
---|---|---|
金額 | 有料(14日後、有料版を購入しなければならない) | 無料 |
Document root | (自分のホームフォルダ) > Sites > localhost | Applications > MAMP > htdocs |
アプリタイトル | MAMP PRO | MAMP |
アプリウィンドウ | 大きめ(詳細設定が色々あるため) | コンパクト |
ウィンドウ右上の期限表示 | あり | なし |
一番気づきやすいのはDocument root部分。
MAMPの場合だと、「htdocs」フォルダ内に表示させたいPHPファイルを置く必要があります。
しかしMAMP PROの場合だと「Sites/localhost」フォルダ内に配置しなければならず、MAMPで使用するディレクトリとは全く場所すら違うわけです。
404エラーが出るのも当然の話ですよね。
MAMPを使用した際に404エラーに引っかかってかつ本来正しい位置にファイル配置している場合には、今使ってるのが本当にMAMPかどうか、念のため一度確認してみてください。
まぁ私みたくハマる方がレアケースなんでしょうけども 笑。
MAMPで404エラーが出るその他の原因
それ以外にもMAMPで404エラーが起こる原因がいくつかあります。
実際にウェブカツで質問されていた内容から、404エラーに関するその他の原因についても紹介しておきます。
1.URLの指定ミス
今回のようにWEBサーバーを利用してPHPファイルを表示させたい場合だと、URL自体は自分で手入力する必要があります。
その時にうっかりスペルミスを起こしてしまった、というのはよくある話。
ウェブカツでの質問内容、あとネット検索してた時に見かけた人だとこんなスペルミスがあったそうです。
- localhost/8888/..で、ポート番号が”/”の後に続けられている
- localhost:888/..で”8″がひとつ足りない
- localhost:8888/index.phpで、ファイルを配置した”sample”ディレクトリの記載漏れがある
- localhost:8888/sampel/index.phpと、ディレクトリのスペルミスがある
- localhost:8888/..が正しい(ポート番号は”:”で続ける)
- localhost:8888と、8は4回続けて入力するのがデフォルトの番号指定
- localhost:8888/sample/index.phpとして、直下に配置したディレクトリまで記載する
- 正しくは、localhost:8888/sample/index.php
実際に私もMAMP PROからMAMPに切り替えられて一安心した直後、いざサイト表示させようとした時に一度やらかしてます。
単純なスペルミスでも弾かれてエラーになるんで、油断大敵ですね 笑。
実際にプログラミングしている時でも、スペルミスが起こる時は起こるもんです。
404エラーに限らず、自分が入力した内容が本当に正しいか、ここは真っ先に疑ってかかりましょう。
2.指定外のディレクトリにファイルを配置している
今回の場合だと、MAMPではhtdocsディレクトリに表示させたいファイルを配置するのが原則です。
それを誤って別のディレクトリに格納してしまうと、サーバー側から「そんなファイルどこにもないよ」と怒られてしまうわけですね。
WEBサーバーを使う際に指定のディレクトリがある場合には、そのディレクトリ直下にファイルを配置するよう注意しましょう。
3.ファイル名、ディレクトリ名を変更したのに変えていない
自分でPHPファイルを作成している時に、後から「別の名前にしとけば良かったなー」と感じることもあるでしょう。
ディレクトリに関しても、もしかしたら後から名前変更したくなることもあるかも。
その時にファイル名、またはディレクトリ名を変更したのにURLのパスをうっかり変更し忘れた場合、もちろん404エラーが発生する原因になっちゃいます。
自分でファイル名、ディレクトリ名を変更した場合は、忘れずに指定するURLのパスも変更するよう注意しましょう。
まとめ
今回はMAMPで私が出会った404エラーに関する内容を紹介しました。
いちおうウェブカツ生でも1人だけ同じ現象に出くわしてる人がいたようなんで、決して可能性は0ではないはず… 笑。
初学者のうちは特に、エラーが出るとつい勉強することに嫌気が指す瞬間も。
しかしエラーの原因を突き止めて自己解決を図れる能力はエンジニアに必須なんで、今のうちから鍛えておいて損はありません。
なので実際にエラーが出た時には、エラーで書かれた文章の意味や根拠をネットで検索するクセをつけましょう。
もし英語が苦手なら翻訳ソフトで日本語に訳してから意味を理解する、という努力も必要です。
私自身もまだまだですが、いっぱしの稼げるエンジニア目指してエラー解決能力もガンガン鍛えていきましょー! 笑
それでは。