この記事でできること
無料サーバー上で hello.php を1ファイル表示できます。環境構築は不要で、ファイル作成とアップロード、URL確認だけで完了します。
所要時間の目安は15〜30分です。概念の整理はPHPとは、HTML公開の基礎はHTMLの公開方法が前提です。この記事を終えると、条件分岐の greeting.php やフォーム受け取りの receive.php へ拡張できる土台ができます。私たちはPHP公式マニュアル(php.net)を参考にまとめました。
できることの範囲を明確にします。この記事では表示確認までを扱い、DB接続は扱いません。DB連携はPHPとMySQL接続で段階的に拡張します。いきなり掲示板やログイン機能を置くと切り分けが難しくなるため、最小構成の成功を先に作ります。
必要なもの・前提条件
| 必要なもの | 具体例・設定値 | 備考 |
|---|---|---|
| 無料サーバーアカウント | FreeHostBoxのアカウント | PHP対応の環境であることを確認する |
| テキストエディタ | VS Code、メモ帳、CotEditorなど | 文字コードUTF-8(BOMなし)で保存する |
| ブラウザ | Chrome、Safari、Firefox | シークレットウィンドウで再確認すると確実 |
| 公開フォルダの位置把握 | public_html 等(環境により異なる) | 管理画面の表示に従う |
| HTTPS準備 | 無料SSLの案内 | フォーム拡張前に有効化する |
対応バージョンは管理画面のPHP設定表示で確認し、PHP公式マニュアルの対応バージョン一覧で裏取りします。FreeHostBoxではPHP 8.3をご用意していますので、ぜひ無料プランでお試しください。古い書き方のコピーや古いバージョン前提の解説はエラーの元になるため、8系前提の書き方で進めます。
事前確認は3点です。公開フォルダ名、PHPバージョン表示、ファイルマネージャーまたはFTPの接続情報です。FTPを使う場合はホスト名・ユーザー名・パスワード・公開フォルダの4点を控えます。ファイルマネージャーを使う場合も、アップロード先フォルダとファイル名の大文字小文字を間違えないことが重要です。管理画面の表示に従って進めてください。
詳細手順:hello.php表示までの7歩
手順は7歩です。1歩ずつ確認しながら進めます。
手順1:hello.php をUTF-8(BOMなし)で新規作成する
テキストエディタで新規ファイルを開き、ファイル名を半角小文字の hello.php とします。全角文字や空白、日本語ファイル名はトラブルの元になるため避けます。保存時の文字コードはUTF-8、改行コードはLFが無難です。VS Codeでは右下の表示でUTF-8であることを確認します。
手順2:最小コードを貼り付けて保存する
後述のコード全文(hello.php)を使います。拡張子が .txt になっていないか、末尾に余計な空白が入っていないかを確認します。<?php の前に空白や改行を入れないことも意識します。
手順3:公開フォルダの位置を確認する
管理画面にログインし、ファイル管理や公開フォルダの案内を確認します。一般例として public_html や htdocs などの名称が使われますが、環境により異なるため管理画面の表示に従って進めてください。階層を間違えて非公開領域に置くとURLで開けません。
手順4:ファイルマネージャーまたはFTPでアップロードする 1ファイルだけなら管理画面内のファイルマネージャーで公開フォルダ直下へアップロードします。複数ファイルや繰り返し更新が見込まれるならFTPクライアントを使います。アップロード方式の違いは下表の通りです。
| 方式 | 向く場面 | 注意点 |
|---|---|---|
| ファイルマネージャー | 1〜2ファイルの確認・修正 | 公開フォルダ直下か階層を確認する |
| FTP | 複数ファイル・継続更新 | 接続情報と転送モード(自動/バイナリ)を確認する |
FreeHostBoxではFTP・オンラインファイルマネージャーをご用意しています。どちらを使う場合も、上書き前のバックアップとして元の hello.php をPC側に残してください。
手順5:ブラウザで https://あなたのURL/hello.php を開く
http ではなく https で開きます。FreeHostBoxでは無料SSLをご用意していますので、有効化してお試しください。独自ドメイン直下に置いた場合は https://例.com/hello.php、サブフォルダに置いた場合は https://例.com/test/hello.php のように階層を含めます。
手順6:「PHPが動きました」と時刻が表示されるか確認する 見出しと現在時刻が出れば成功です。表示されない場合は次章のエラー表で切り分けます。成功したらシークレットウィンドウでもう一度開き、キャッシュの影響を除外します。
手順7:greeting.php で条件分岐まで拡張する
hello.php が表示できたら、同じフォルダに greeting.php(時間帯挨拶)を追加します。いきなりDB連携へ進まず、条件分岐と htmlspecialchars 出力の形に慣れるのがコツです。拡張後はPHPとMySQL接続記事へ進みます。
コード全文と解説:hello.phpとgreeting.php
1つ目の全文は hello.php です。表示確認用の最小構成で、変数・出力エスケープ・日付表示の3要素を含みます。
<?php
$message = 'PHPが動きました';
$now = date('Y-m-d H:i');
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPテスト</title>
</head>
<body>
<h1><?= htmlspecialchars($message, ENT_QUOTES, 'UTF-8') ?></h1>
<p>時刻: <?= htmlspecialchars($now, ENT_QUOTES, 'UTF-8') ?></p>
<p>このHTMLはPHPが作ってブラウザに渡しました。</p>
</body>
</html>
要点は3つです。拡張子は .php、保存はUTF-8(BOMなし)、出力は htmlspecialchars です。date() の結果も文字列としてエスケープする習慣を付けると、後で外部入力を表示する際の事故を防げます。概念の補足はPHPとは記事に戻ると理解が深まります。
2つ目は greeting.php です。hello.php の成功後に追加する条件分岐の例です。
<?php
$hour = (int)date('H');
if ($hour < 12) {
$msg = 'おはようございます';
} elseif ($hour < 18) {
$msg = 'こんにちは';
} else {
$msg = 'こんばんは';
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>時間帯挨拶</title>
</head>
<body>
<h1><?= htmlspecialchars($msg, ENT_QUOTES, 'UTF-8') ?></h1>
<p><a href="./hello.php">hello.phpに戻る</a></p>
</body>
</html>
ブラウザのソース表示には結果のHTMLだけが残り、if 文は見えません。この「結果だけが届く」感覚がサーバー側実行の核心です。次の段階のフォーム受け取り(receive.php)では $_POST の値を同じく htmlspecialchars で表示します。
エラー表と解決策:症状別の切り分け
エラーは上から順に確認します。複数箇所を同時に直すと原因が特定できません。
| 症状 | 原因候補 | 対処 |
|---|---|---|
| 404 Not Found | 置き場所・ファイル名・階層の間違い | 公開フォルダ直下か確認し、綴りと大文字小文字、サブフォルダ名を見直す |
| 真っ白(何も出ない) | PHP文法エラー(セミコロン・括弧の閉じ忘れ等) | hello.php の最小コードに戻し、1か所ずつ追加して切り分ける |
| PHPコードがそのまま表示される | 拡張子 .html のまま/PHP未処理 | 拡張子を .php に直し、対応環境と公開フォルダかを確認する |
| 文字化け | 保存形式と meta charset の不一致 | エディタをUTF-8(BOMなし)で保存し直し、<meta charset=UTF-8> を確認する |
| 403 Forbidden | パーミッションや公開範囲の問題 | ファイル権限を初期値に戻し、非公開領域に置いていないか確認する |
| httpsで警告が出る | SSL未設定・URLがhttpのまま | 無料SSLの案内を確認して有効化し、httpsで開き直す |
補足として、真っ白の裏側では文法エラー以外に文字コードのBOMや <?php 前の余計な出力が原因の場合もあります。無駄に設定ファイルを触らず、ファイル名・拡張子・保存形式・公開フォルダの4点を先に潰すのが効率的です。通信や公開の基礎はHTTPとHTML公開の基礎記事も参照してください。
完了チェックリストと動作確認
公開前の確認をチェック形式で残します。
-
hello.phpがUTF-8(BOMなし)・半角小文字・.php拡張子で保存されている - 公開フォルダ直下(または意図した階層)にアップロードされている
-
https://あなたのURL/hello.phpで見出しと時刻が表示される - シークレットウィンドウでも同じく表示される(キャッシュ除外)
- ソース表示にPHPコードが残らず、結果のHTMLだけになっている
-
greeting.phpでも時間帯挨拶が切り替わる - 元ファイルをPC側に保管し、上書き前の状態に戻せる
動作確認のコツは2つです。URLはコピー&ペーストで開き、手入力の綴り間違いを避けます。修正後は強制再読み込み(Ctrl+F5/Cmd+Shift+R)でキャッシュを除外します。表示成功のURLとファイル配置をメモに残すと、DB連携やWordPress構築の際に役立ちます。確認用URL・ファイル名・更新時刻の3点を記録し、次回修正時の差分比較に使います。深夜の更新後は翌朝の再確認も行い、キャッシュ切れ後の表示崩れを見逃しません。
補足:つまずきを減らすファイル管理と確認手順
ファイル名は半角英数字とハイフン・アンダースコアに統一します。Hello.PHP のような大文字混じりや ハロー.php のような日本語名は、環境によって扱いが変わり404の原因になります。公開フォルダ直下に test フォルダを作り、test/hello.php のように段階を分けて試すと、本番ファイルを壊さずに実験できます。公開前のファイルはPC側に hello-20260909.php のような日付付きで保管し、上書き前の状態に戻せるようにします。
文字コードの確認は保存時と表示時の両方で行います。エディタのステータスバーでUTF-8(BOMなし)を確認し、HTML側の meta charset もUTF-8にします。BOM付きで保存すると <?php の前に不可視文字が出力され、後でリダイレクト処理(header() 関数)を足した際に警告が出ます。現段階で header() を使わなくても、BOMなしに統一する習慣が後工程の障害を減らします。
ブラウザ確認ではキャッシュ除外を徹底します。修正後に表示が変わらない場合は、強制再読み込みの後にシークレットウィンドウで開き直します。それでも変わらなければ、アップロード先の階層とファイル名の綴り、拡張子が .txt になっていないかを見直します。FTP利用時は転送ログで上書き成功を確認し、ファイルサイズと更新時刻が変わっているかも見ます。1か所ずつ変えて確認するのが、複数箇所の同時変更より早く解決します。
注意点・セキュリティ:本番表示と秘密情報の扱い
- 本番でエラー詳細を出しっぱなしにしない:詳細なエラー文は攻撃の手がかりになります。表示ではなくログで確認する方針にします。
- パスワードや鍵をコードに直書きしたまま共有しない:FTP情報やDB情報はコード内に残さず、権限設定と保管場所を含めて管理します。公開リポジトリへのpushは特に注意します。
- いきなり外部のコピー用大作を置かない:DB接続や認証はPHPとMySQL接続記事とMySQL解説記事で段階的に拡張します。
- 古い書き方のコピペに注意する:公式マニュアルで対応状況を確認し、非推奨の書き方を避けます。
- 画面名称は目安として読む:メニュー名やフォルダ名は管理画面の表示に従って進めてください。
警告:動作確認のための一時的なエラー表示やデバッグ出力(変数の中身表示など)は、確認後に必ず削除または無効化してください。放置すると訪問者に内部情報を露出します。
ファイルの権限と保管も合わせて確認します。FTPでアップロードした hello.php や greeting.php は、所有者以外の書き込みを許可しない初期設定のまま運用します。権限を緩めると改変の温床になるため、表示確認のために許可を広げる必要はありません。更新前はPC側の原本を日付付きで残し、失敗時は上書きではなく原本の再アップロードで戻します。PHPバージョンの表示値と公開フォルダ名、SSLの有効状態はメモに残し、次回のDB連携作業やWordPress構築時に見返せるようにします。管理画面の表示が更新された場合はメモも更新し、古い手順書のまま運用しないことが安定動作につながります。
次に読む記事
- PHPとは — 仕組みとHTML・JavaScriptとの違いの復習
- PHPとMySQL接続 — 一覧表示へ拡張する実践手順
- MySQLとは — DB・テーブル・SQLの用語整理
- HTMLの公開方法 — 公開フォルダとFTPの基礎固め
- SSLとは — HTTPS化の考え方と無料SSLの位置づけ
出典・条件
- PHP公式マニュアル(php.net):言語リファレンス、対応バージョン、文字コードとエラー処理の仕様
- MySQL公式ドキュメント:DB拡張時の文字セット(
utf8mb4)と考え方 - 無料プランの内容は料金ページをご覧ください。分からなければ私たちがサポートします。まずは無料プランで実際に触って確かめてみてください。
よくある質問
PHPは自分のPCなしで試せる?
無料サーバーに.phpを置くだけで試せます。環境構築不要で、ブラウザでURLを開いて確認します。テキストエディタでUTF-8保存し、公開フォルダへアップロードするだけです。
真っ白になったら?
PHP文法エラー・文字コード・拡張子の順に確認します。いきなり難しいコードを置かず、hello.phpの最小コードに戻して切り分けるのが近道です。
HTMLと混在できる?
可能です。拡張子を.phpにしてHTMLの中にPHPを埋め込む形が基本です。逆に.htmlのままではPHPは処理されません。
FTPとファイルマネージャーはどちらを使うべき?
1ファイルの確認なら管理画面内のファイルマネージャーが手軽で、複数ファイルや繰り返し更新ならFTPが効率的です。どちらも公開フォルダの位置と文字コード設定の確認が重要です。管理画面の表示に従って進めてください。
PHPのバージョンはどこで確認する?
管理画面のPHP設定表示で確認し、補助的にPHP公式マニュアルの対応バージョン一覧を参照します。FreeHostBoxではPHP 8.3をご用意していますので、ぜひ無料プランでお試しください。
公開前にHTTPSは必要?
フォームを扱うなら必須に近い準備です。FreeHostBoxでは無料SSLをご用意していますので、有効化してhttpsで表示確認してください。ぜひ無料プランでお試しください。詳しい考え方はSSL解説記事で整理しています。
PHPを無料サーバーで動かす
読むだけより1ファイル動かす方が速いです。無料サーバーで表示確認まで進みましょう。