この記事は初心者が試行錯誤した記録です。セキュリティや設計は未熟な部分があります。実運用・公開用途ではそのまま使わないでください。
Webアプリの画面は表示できたのに、
PHPを置いて「保存できるようにする」ところから、地獁が始まりました。
ChatGPTに言われた通りに、
- PHPファイルを作って
- Xサーバーの
public_htmlに置いて - URLを開く
なのに、出るのはこれだけ。
404 Not Found
何回やっても、404。
置き場所も合ってる。
ファイルもある。
エラーも出ない。
なのに、開けない。
意味が分かりませんでした。
「public_htmlの外に置いてるんじゃ?」→違う
調べると、みんなこう書いてあります。
public_html の中に置きましょう
ちゃんと入ってる。
違う。
「フォルダの中に入れてるんじゃ?」→違う
フォルダも合ってる。
違う。
じゃあ、何が違ったのか
原因は、これでした。
ファイル名。
正確に言うと、
拡張子。
でもその時の私は、拡張子が何か知りません。
何が起きていたかというと
途中で、ファイル名をこう変えました。
nekolog.html → nekolog.php
でも私は、
「最後の文字がちょっと変わった」
くらいにしか思ってませんでした。
URLは、昔のままだった
ブラウザで開いていたのは、ずっとこれ。
https://example.com/nekolog.html
でも、サーバーにあるのは
nekolog.php
当然ですが、
.html のファイルはもう存在しない。
だから、404。
でも本人は気づかない
なぜなら、
- ファイルはある
- 置き場所も合ってる
- コードも合ってる
- サーバーも合ってる
だから、
「どこが間違ってるのか、本当に分からない」
状態になります。
これ、初心者が一番ハマる404です。
そして、この事実に気づいた瞬間
URLの最後を
nekolog.html → nekolog.php
に変えたら、
一発で開きました。
あれだけ何時間も悩んだ404が、
たったこれだけで解決しました。
私はこのとき、初めて知りました。
.html と .php は、ただの文字の違いじゃない。
サーバーから見たら、まったく別のファイルだということ。
例えるなら、
.html と .php は「名前が似ている別の建物」です。
そして、URLはその建物の「住所」。
私はずっと
https://example.com/nekolog.html
という住所に行っていました。
でも、サーバーに置いてあったのは
nekolog.php
という別の建物。
サーバーからすると
「その住所に、その建物は存在しません」
だから、404 になります。
さらに、初心者がハマるポイントがあります。
Xサーバーは「Linux(リナックス)」という種類のコンピューターで動いています。
このLinuxは、ファイル名の大文字・小文字を完全に別物として扱います。
たとえば
nekolog.php
Nekolog.php
これは、サーバーから見るとまったく別のファイルです。
でも、私たちが普段使っているWindowsパソコンでは、
この2つは同じように見えることが多いです。
自分のパソコンでは同じに見えていたのに、
サーバーから見ると違っていた。
ここで、多くの初心者が404で止まります。
1文字でも違ったら、サーバーから見ると別物なんです。


コメント