PHPを使えば、企業サイト、店舗サイト、サービスサイト、ブログ、お問い合わせフォーム付きのサイトなど、さまざまなホームページを作成できます。
PHPは、サーバー側で動作するプログラミング言語です。
HTMLやCSSだけで作るホームページは、基本的にあらかじめ用意された内容を表示する「静的サイト」になります。
一方で、PHPを使うと、入力内容に応じて表示を変えたり、データベースから情報を取得したり、フォームの内容をメールで送信したりできます。
たとえば、次のような機能はPHPで実装できます。
- ヘッダーやフッターの共通化
- お問い合わせフォーム
- お知らせ一覧
- ブログ記事の表示
- 管理画面
- 会員ログイン
- 予約フォーム
- データベースとの連携
- WordPressテーマのカスタマイズ
PHPはWordPressにも使われている言語なので、ホームページ制作やWeb制作の現場では今でもよく利用されています。
特に、静的なHTMLサイトを少し便利にしたい場合や、WordPressをカスタマイズしたい場合に役立つ知識です。
PHPでホームページを作成する仕組み
PHPでホームページを作成する場合、ブラウザに直接PHPコードが表示されるわけではありません。
PHPはサーバー上で処理され、その結果としてHTMLがブラウザに送られます。
つまり、ユーザーが見ている画面はHTMLですが、そのHTMLを作るためにPHPが裏側で動いているという仕組みです。
HTMLだけのホームページとの違い
HTMLだけで作るページは、基本的にファイルに書いた内容がそのまま表示されます。
<h1>会社概要</h1>
<p>私たちはWebサイト制作を行っています。</p>
一方、PHPを使うと、変数や条件分岐を使って表示内容を変えられます。
<?php
$page_title = '会社概要';
?>
<h1><?php echo $page_title; ?></h1>
<p>私たちはWebサイト制作を行っています。</p>
この例では、$page_title という変数に入れた内容を、ページ上に表示しています。
PHPはHTMLの中に書ける
PHPは、HTMLファイルの中に部分的に書くことができます。
PHPを使うファイルは、基本的に拡張子を .php にします。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPのサンプルページ</title>
</head>
<body>
<h1>PHPで作成したホームページです</h1>
<p>現在の年は <?php echo date('Y'); ?> 年です。</p>
</body>
</html>
このように、HTMLの一部にPHPを埋め込むことで、動的な情報を表示できます。
PHPでホームページを作成するメリット
PHPを使うと、HTML/CSSだけでは管理しにくい部分を効率化できます。
特に、複数ページのホームページを作る場合には大きなメリットがあります。
共通パーツを管理しやすい
PHPを使う大きなメリットは、ヘッダーやフッターなどの共通パーツを別ファイルに分けられることです。
通常、HTMLだけで10ページのサイトを作ると、すべてのページに同じヘッダーやフッターを書く必要があります。
その場合、メニューを1か所変更するだけでも、10ページ分を修正しなければなりません。
PHPなら、ヘッダーを header.php、フッターを footer.php のように分けて読み込めます。
<?php include 'includes/header.php'; ?>
<main>
<h1>トップページ</h1>
<p>ここにメインコンテンツが入ります。</p>
</main>
<?php include 'includes/footer.php'; ?>
このようにすれば、ヘッダーの内容を変更したいときは header.php だけを修正すれば済みます。
お問い合わせフォームを作れる
PHPを使えば、お問い合わせフォームを作成できます。
ユーザーが入力した名前、メールアドレス、問い合わせ内容を受け取り、管理者へメール送信する処理ができます。
企業サイトや店舗サイトでは、お問い合わせフォームは重要な機能です。
ただし、フォーム処理にはセキュリティ対策が必要です。
入力内容のチェック、CSRF対策、スパム対策、メールヘッダーインジェクション対策などを行わないと、不正送信や迷惑メールの原因になる可能性があります。
データベースと連携できる
PHPは、MySQLやMariaDBなどのデータベースと連携できます。
データベースを使えば、お知らせ、ブログ記事、商品情報、会員情報などを管理できます。
たとえば、管理画面からお知らせを登録し、トップページに新着順で表示するような仕組みも作れます。
HTMLだけのサイトでは、毎回ファイルを直接編集しなければなりません。
しかし、PHPとデータベースを組み合わせることで、管理しやすいサイトを作れます。
WordPress制作に役立つ
WordPressはPHPで作られています。
そのため、PHPを理解していると、WordPressテーマの編集やオリジナルテーマ制作に役立ちます。
WordPressでは、次のようなPHPコードを使います。
<?php get_header(); ?>
<main>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<div><?php the_content(); ?></div>
<?php endwhile; ?>
<?php endif; ?>
</main>
<?php get_footer(); ?>
このようなテンプレートタグやループ処理を理解するには、PHPの基礎知識が必要です。
PHPでホームページを作成するデメリット
PHPは便利な一方で、注意すべき点もあります。
特にセキュリティやサーバー環境については、HTMLサイトよりも慎重に扱う必要があります。
セキュリティ対策が必要になる
PHPでは、フォーム送信、ログイン、データベース登録など、ユーザーの入力を扱うことがあります。
そのため、セキュリティ対策をしないまま公開すると危険です。
特に注意したいのは、以下のようなリスクです。
| リスク | 内容 | 主な対策 |
|---|---|---|
| XSS | 悪意あるスクリプトをページに埋め込まれる | 出力時にエスケープする |
| SQLインジェクション | 不正なSQLを実行される | プリペアドステートメントを使う |
| CSRF | 外部サイトから不正な送信をされる | CSRFトークンを使う |
| メールヘッダーインジェクション | フォームから不正なメール送信をされる | メールアドレスを検証する |
| ファイルアップロード攻撃 | 危険なファイルをアップロードされる | 拡張子や保存場所を制限する |
PHPは自由度が高い分、正しい書き方を覚えることが大切です。
ローカル環境やサーバーが必要になる
PHPはブラウザだけでは動きません。
PHPを実行できるサーバー環境が必要です。
学習や開発では、以下のような環境を使うことが多いです。
| 環境 | 特徴 |
|---|---|
| XAMPP | Windowsでも使いやすいローカル開発環境 |
| MAMP | Macでよく使われるローカル開発環境 |
| Docker | 実務向けの開発環境を作りやすい |
| Local | WordPress開発に便利 |
| レンタルサーバー | 本番公開に使う環境 |
簡単な確認であれば、PHPのビルトインサーバーを使うこともできます。
php -S localhost:8000
ただし、これは開発用です。本番公開では、レンタルサーバーやApache、NginxなどのWebサーバーを使うのが一般的です。
HTML/CSSだけより学習範囲が広い
PHPでホームページを作成する場合、HTML/CSSだけでなく、サーバーやデータベース、セキュリティの知識も必要になります。
特に、以下の内容は少しずつ学んでおくとよいでしょう。
- PHPの基本文法
- フォーム処理
- セッション
- データベース接続
- メール送信
- セキュリティ対策
- ファイル構成
- サーバーへのアップロード
- WordPressのテンプレート構造
最初からすべてを覚える必要はありません。
まずは、HTMLサイトをPHP化して、共通パーツを管理するところから始めると理解しやすいです。
PHPで作成できるホームページの種類
PHPは、シンプルな会社サイトから本格的なWebシステムまで、幅広く使えます。
ただし、サイトの目的によって適した作り方は変わります。
会社サイトや店舗サイト
会社概要、サービス紹介、アクセス、お問い合わせなどを掲載する一般的なホームページは、PHPで作成しやすいサイトです。
特に、以下のようなサイトに向いています。
- 企業サイト
- 店舗サイト
- 士業サイト
- 美容室・サロンサイト
- クリニックサイト
- 採用サイト
- サービス紹介サイト
更新頻度が低いサイトであれば、HTML/CSSにPHPの共通パーツ化を加えるだけでも十分です。
ランディングページ
ランディングページもPHPで作成できます。
LPでは、ヘッダーやフッターの共通化よりも、お問い合わせフォームや資料請求フォームの実装でPHPを使うケースが多いです。
広告運用を行うLPでは、送信完了ページでコンバージョンタグを発火させることも重要です。
PHPでフォーム処理を行い、送信後に thanks.php へリダイレクトさせれば、完了ページで計測しやすくなります。
お知らせ機能付きサイト
PHPとデータベースを組み合わせると、お知らせ機能を作れます。
たとえば、以下のような情報を管理できます。
- 新着情報
- キャンペーン情報
- 営業日のお知らせ
- メディア掲載情報
- イベント情報
最初はデータベースを使わず、PHPの配列でお知らせ一覧を作る方法もあります。
<?php
$news = [
[
'date' => '2026-05-01',
'title' => 'サイトを公開しました'
],
[
'date' => '2026-04-15',
'title' => 'サービスページを更新しました'
],
];
?>
<ul>
<?php foreach ($news as $item): ?>
<li>
<time><?php echo htmlspecialchars($item['date'], ENT_QUOTES, 'UTF-8'); ?></time>
<span><?php echo htmlspecialchars($item['title'], ENT_QUOTES, 'UTF-8'); ?></span>
</li>
<?php endforeach; ?>
</ul>
このような配列表示に慣れてから、MySQLと連携する形に進むと学びやすいです。
ブログやメディアサイト
PHPを使えば、ブログやメディアサイトも作れます。
ただし、記事投稿、カテゴリ管理、タグ管理、画像管理、検索機能、管理画面などをすべて自作するのは大変です。
そのため、ブログやメディアサイトを作る場合は、WordPressを使う方が現実的なケースも多いです。
PHPを学ぶことで、WordPressのテーマ編集やカスタマイズがしやすくなります。
会員制サイトや予約システム
ログイン機能や予約機能を備えたサイトも、PHPで作成できます。
ただし、会員情報や予約データを扱う場合は、通常のホームページよりも難易度が高くなります。
ログイン認証、パスワード管理、権限管理、データベース設計、セキュリティ対策などが必要です。
このような機能を本格的に作る場合は、PHPをそのまま書くよりも、Laravelなどのフレームワークを使うことも検討するとよいでしょう。
PHPでホームページを作成する基本手順
PHPでホームページを作るときは、最初から複雑なシステムを作ろうとせず、HTML/CSSで作ったサイトを少しずつPHP化するのがおすすめです。
HTML/CSSでページを作る
まずは、通常のHTML/CSSでページを作成します。
トップページ、会社概要、サービス紹介、お問い合わせページなど、必要なページを静的なHTMLとして作ります。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>サンプルサイト</title>
<link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
<header>
<h1>サンプルサイト</h1>
</header>
<main>
<h2>サービス紹介</h2>
<p>Webサイト制作を行っています。</p>
</main>
<footer>
<small>© Sample Site</small>
</footer>
</body>
</html>
最初にHTML/CSSで見た目を整えてからPHP化すると、作業の流れが分かりやすくなります。
拡張子を .php に変更する
PHPを使うページは、拡張子を .php にします。
index.html
ではなく、
index.php
にします。
.php ファイルの中にも、通常のHTMLはそのまま書けます。
PHPを使いたい部分だけ、<?php ?> で囲んで記述します。
<p>現在の年は <?php echo date('Y'); ?> 年です。</p>
headerとfooterを共通化する
複数ページで同じヘッダーやフッターを使う場合は、PHPで共通パーツ化します。
ファイル構成は、たとえば次のようにします。
site/
├── index.php
├── about.php
├── service.php
├── contact.php
├── thanks.php
├── assets/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── main.js
│ └── images/
└── includes/
├── header.php
├── footer.php
└── nav.php
header.php には、HTMLの上部やナビゲーションを書きます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title><?php echo htmlspecialchars($page_title, ENT_QUOTES, 'UTF-8'); ?></title>
<link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
<header>
<h1>サンプルサイト</h1>
<nav>
<ul>
<li><a href="index.php">ホーム</a></li>
<li><a href="about.php">会社概要</a></li>
<li><a href="service.php">サービス</a></li>
<li><a href="contact.php">お問い合わせ</a></li>
</ul>
</nav>
</header>
footer.php には、フッター部分を書きます。
<footer>
<small>© <?php echo date('Y'); ?> Sample Site</small>
</footer>
</body>
</html>
各ページでは、次のように読み込みます。
<?php
$page_title = 'トップページ | サンプルサイト';
include 'includes/header.php';
?>
<main>
<h1>トップページ</h1>
<p>ようこそ、サンプルサイトへ。</p>
</main>
<?php include 'includes/footer.php'; ?>
この方法なら、ページごとにタイトルを変えながら、共通のヘッダーやフッターを使えます。
ページごとにtitleやdescriptionを設定する
ホームページ制作では、SEOを考えてページごとに title や description を設定することが大切です。
PHPでは、各ページの冒頭に変数を用意しておくと管理しやすくなります。
<?php
$page_title = 'サービス紹介 | サンプル株式会社';
$page_description = 'サンプル株式会社のWeb制作、SEO対策、広告運用サービスをご紹介します。';
include 'includes/header.php';
?>
header.php 側では、次のように出力します。
<title><?php echo htmlspecialchars($page_title, ENT_QUOTES, 'UTF-8'); ?></title>
<meta name="description" content="<?php echo htmlspecialchars($page_description, ENT_QUOTES, 'UTF-8'); ?>">
これにより、ページごとに適切なSEO設定を行いやすくなります。
PHPでお問い合わせフォームを作る流れ
PHPでホームページを作成する際に、よく実装されるのがお問い合わせフォームです。
お問い合わせフォームは、ただ入力内容を送信できればよいわけではありません。
入力チェック、エラー表示、確認画面、完了画面、セキュリティ対策、スパム対策なども重要です。
お問い合わせフォームの基本構成
お問い合わせフォームは、一般的に次のような流れで作ります。
入力画面
↓
確認画面
↓
送信処理
↓
完了画面
シンプルにする場合は、入力画面から直接送信処理へ進み、完了画面に移動する形でも作れます。
ただし、実務では確認画面を用意することも多いです。
確認画面があると、ユーザーが入力内容を見直せるため、入力ミスを減らせます。
入力フォームを作る
まずは、HTMLで入力フォームを作ります。
<form action="send.php" method="post">
<label>
お名前
<input type="text" name="name">
</label>
<label>
メールアドレス
<input type="email" name="email">
</label>
<label>
お問い合わせ内容
<textarea name="message"></textarea>
</label>
<button type="submit">送信する</button>
</form>
このフォームでは、送信ボタンを押すと send.php にデータが送られます。
送信処理を作る
PHPでは、フォームから送信された値を $_POST で受け取れます。
<?php
$name = $_POST['name'] ?? '';
$email = $_POST['email'] ?? '';
$message = $_POST['message'] ?? '';
if ($name === '' || $email === '' || $message === '') {
echo '未入力の項目があります。';
exit;
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo 'メールアドレスが正しくありません。';
exit;
}
echo '送信処理を行います。';
これは学習用の簡易例です。
実際のサイトで使う場合は、CSRF対策、スパム対策、メール送信設定、エラーハンドリングなどを追加する必要があります。
メール送信ではFromの扱いに注意する
お問い合わせフォームでメールを送信する場合、ユーザーが入力したメールアドレスをそのまま From に使うのは避けた方が安全です。
実務では、From には自社ドメインのメールアドレスを設定し、ユーザーのメールアドレスは Reply-To に入れる形がよく使われます。
$from = 'info@example.com';
$replyTo = $email;
ただし、$email は必ずメールアドレスとして正しいか検証し、改行コードなどの不正な文字が含まれていないか確認する必要があります。
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if (!$email) {
exit('メールアドレスが正しくありません。');
}
if (preg_match('/[\r\n]/', $email)) {
exit('不正な入力です。');
}
フォームのメール送信は、初心者がコピーしたコードをそのまま使うと危険な場合があります。
実務では、SMTP送信ライブラリやフォームサービスを使うことも検討するとよいでしょう。
PHPでデータベースと連携する方法
PHPでお知らせ、ブログ、商品情報、会員情報などを扱う場合は、データベースと連携します。
よく使われるのは、MySQLやMariaDBです。
データベースを使う場面
データベースは、頻繁に更新する情報を管理する場合に便利です。
たとえば、以下のような機能で使います。
- お知らせ一覧
- ブログ記事
- 商品一覧
- 実績一覧
- 会員情報
- 予約情報
- お問い合わせ履歴
- 管理画面
HTMLだけのサイトでは、情報を追加するたびにファイルを直接編集しなければなりません。
データベースを使えば、管理画面から情報を登録し、ページ上に自動で表示できます。
PDOでデータベースに接続する
PHPでMySQLに接続する場合は、PDOを使う方法が一般的です。
<?php
$dsn = 'mysql:host=localhost;dbname=sample_db;charset=utf8mb4';
$user = 'db_user';
$password = 'db_password';
try {
$pdo = new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch (PDOException $e) {
echo 'データベース接続エラー';
exit;
}
charset=utf8mb4 を指定しておくと、日本語や絵文字などにも対応しやすくなります。
SQLではプリペアドステートメントを使う
ユーザーの入力値をSQLに使う場合は、文字列を直接連結してはいけません。
SQLインジェクション対策として、プリペアドステートメントを使います。
悪い例は次のような書き方です。
$sql = "SELECT * FROM users WHERE email = '$email'";
このように入力値をそのままSQLに埋め込むと、不正なSQLを実行されるリスクがあります。
安全な書き方は次の通りです。
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');
$stmt->bindValue(':email', $email, PDO::PARAM_STR);
$stmt->execute();
$user = $stmt->fetch();
データベースを使う場合は、PDOとプリペアドステートメントをセットで覚えておくとよいでしょう。
PHPでホームページを作るときのセキュリティ対策
PHPでホームページを作成する場合、セキュリティ対策は非常に重要です。
特に、フォーム、ログイン、データベース、ファイルアップロードを扱う場合は注意が必要です。
出力時にエスケープする
ユーザーが入力した内容やデータベースに保存された内容を画面に表示するときは、htmlspecialchars() を使ってエスケープします。
echo htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
たとえば、次のように使います。
<p><?php echo htmlspecialchars($message, ENT_QUOTES, 'UTF-8'); ?></p>
これにより、HTMLとして解釈される文字を安全な形に変換できます。
ただし、htmlspecialchars() は万能ではありません。
HTML本文やHTML属性値では基本的な対策になりますが、JavaScript、CSS、URLなどに値を出力する場合は、それぞれの文脈に応じた処理が必要です。
JavaScriptに値を渡す場合は、json_encode() を使う方法があります。
<script>
const name = <?php echo json_encode($name, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); ?>;
</script>
CSRF対策を行う
フォームを作る場合は、CSRF対策も重要です。
CSRFとは、ユーザーが意図しないリクエストを外部サイトから送信される攻撃です。
対策として、フォームにトークンを埋め込み、送信時に一致するか確認します。
フォーム側では、セッションにトークンを保存します。
<?php
session_start();
if (empty($_SESSION['csrf_token'])) {
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
?>
<form action="send.php" method="post">
<input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES, 'UTF-8'); ?>">
<input type="text" name="name">
<input type="email" name="email">
<textarea name="message"></textarea>
<button type="submit">送信する</button>
</form>
送信処理側では、トークンを確認します。
<?php
session_start();
$token = $_POST['csrf_token'] ?? '';
if (!hash_equals($_SESSION['csrf_token'] ?? '', $token)) {
exit('不正なリクエストです。');
}
このような対策を行うことで、不正なフォーム送信を防ぎやすくなります。
パスワードはハッシュ化する
会員ログインや管理画面を作る場合、パスワードをそのまま保存してはいけません。
PHPでは、password_hash() を使ってパスワードをハッシュ化します。
$hash = password_hash($password, PASSWORD_DEFAULT);
ログイン時には、password_verify() で確認します。
if (password_verify($password, $hash)) {
echo 'ログイン成功';
}
パスワードを平文で保存すると、万が一データベースが流出したときに大きな被害につながります。
ログイン機能を作る場合は、必ずハッシュ化を行いましょう。
本番環境ではエラーを表示しない
開発中はエラー表示が便利ですが、本番環境でエラーを表示すると、ファイルパスや内部情報が漏れる可能性があります。
本番環境では、エラーを画面に出さず、ログに記録する設定が基本です。
ini_set('display_errors', 0);
ini_set('log_errors', 1);
開発環境と本番環境で設定を分けることも重要です。
PHPでホームページを作るときのファイル構成
PHPサイトでは、ファイル構成を分かりやすく整理しておくことが大切です。
初心者向けのファイル構成
最初は、あまり複雑にしすぎない方がよいです。
site/
├── index.php
├── about.php
├── service.php
├── contact.php
├── thanks.php
├── assets/
│ ├── css/
│ ├── js/
│ └── images/
└── includes/
├── header.php
├── footer.php
└── nav.php
この構成なら、ページ、画像、CSS、JavaScript、共通パーツを整理しやすくなります。
実務向けのファイル構成
少し実務寄りにするなら、公開するファイルと内部処理用のファイルを分ける方法があります。
public/
├── index.php
├── about.php
├── service.php
├── contact.php
├── thanks.php
├── assets/
│ ├── css/
│ ├── js/
│ └── images/
app/
├── config.php
├── functions.php
├── mail.php
templates/
├── header.php
├── footer.php
└── nav.php
ただし、初心者の段階で最初からこの構成にすると難しく感じる場合があります。
まずはシンプルな構成で作り、慣れてきたら整理していくとよいでしょう。
include と require_once を使い分ける
PHPでファイルを読み込むときは、include や require_once を使います。
ヘッダーやフッターなどのテンプレートを読み込む場合は、include を使うことがあります。
include 'includes/header.php';
設定ファイルや関数ファイルなど、読み込めないと処理を続けられない重要なファイルでは、require_once を使うことが多いです。
require_once __DIR__ . '/includes/functions.php';
__DIR__ は、そのファイルが置かれているディレクトリを表します。
相対パスで迷いやすい場合は、__DIR__ を使うとパスの管理がしやすくなります。
PHPとWordPressの違い
PHPでホームページを自作する方法と、WordPressを使う方法は似ている部分もありますが、目的や管理方法が異なります。
PHP自作サイトの特徴
PHPで自作する場合は、必要な機能を自由に作れます。
たとえば、シンプルな会社サイトであれば、HTML/CSSにPHPの共通パーツ化を加えるだけで効率的に制作できます。
ただし、お知らせ投稿、ブログ、管理画面、ログイン機能などを自作する場合は、作業量が増えます。
セキュリティ対策も自分で行う必要があります。
WordPressサイトの特徴
WordPressは、記事投稿、固定ページ、カテゴリ、メディア管理、管理画面などが最初から用意されています。
そのため、以下のようなサイトに向いています。
- ブログ
- メディアサイト
- お知らせを頻繁に更新する企業サイト
- 実績やコラムを管理したいサイト
- 非エンジニアが更新するサイト
一方で、WordPress独自のテンプレート階層や関数、プラグイン管理、セキュリティ更新などを理解する必要があります。
目的に応じて使い分ける
PHP自作とWordPressは、どちらが常に優れているというものではありません。
目的に応じて使い分けることが大切です。
| 目的 | 向いている方法 |
|---|---|
| 更新頻度が低い会社サイト | HTML/CSS+PHP |
| お知らせやブログを管理したいサイト | WordPress |
| メディア運用をしたいサイト | WordPress |
| 独自の予約システムを作りたい | PHP+Laravelなど |
| 会員制サービスを作りたい | PHP+Laravelなど |
| LPを作りたい | HTML/CSS+PHP |
企業サイトやブログではWordPress、独自機能が多いWebサービスではLaravelなど、目的に合わせて選ぶとよいでしょう。
PHPでホームページを作るときのSEO対策
PHPで作ったホームページでも、SEOの基本はHTMLサイトと同じです。
重要なのは、検索エンジンとユーザーに分かりやすいページ構成にすることです。
titleタグをページごとに設定する
title タグは、検索結果やブラウザのタブに表示される重要な要素です。
PHPでは、ページごとに変数を設定しておくと管理しやすくなります。
<?php
$page_title = 'SEO対策サービス | サンプル株式会社';
?>
<title><?php echo htmlspecialchars($page_title, ENT_QUOTES, 'UTF-8'); ?></title>
ページごとに適切なキーワードを含め、内容に合ったタイトルを設定しましょう。
meta descriptionを設定する
meta description は、検索結果の説明文として表示されることがあります。
<?php
$page_description = 'SEO対策サービスの内容、料金、実績をご紹介します。';
?>
<meta name="description" content="<?php echo htmlspecialchars($page_description, ENT_QUOTES, 'UTF-8'); ?>">
ページごとの内容に合った説明文を設定することで、検索結果でクリックされやすくなります。
canonicalを設定する
重複URLが発生する可能性がある場合は、canonicalを設定します。
<link rel="canonical" href="https://example.com/service/">
PHPファイルで作成していても、URLリライトを使えば /service/ のようなURLで表示できます。
重要なのは、検索エンジンに正規URLを明確に伝えることです。
OGPを設定する
SNSでシェアされたときの表示を整えるために、OGPも設定しておくとよいです。
<meta property="og:title" content="サービス紹介 | サンプル株式会社">
<meta property="og:description" content="Web制作、SEO対策、広告運用サービスをご紹介します。">
<meta property="og:image" content="https://example.com/assets/images/ogp.jpg">
<meta property="og:url" content="https://example.com/service/">
<meta property="og:type" content="website">
PHPでページごとにタイトルや説明文を変数化しておけば、OGPも管理しやすくなります。
コンバージョン計測を設計する
Webマーケティング目的のホームページでは、お問い合わせや資料請求などのコンバージョン計測が重要です。
フォーム送信後に thanks.php へ遷移させる構成にすると、完了ページでコンバージョンタグを設置しやすくなります。
contact.php
↓
send.php
↓
thanks.php
広告運用やアクセス解析を行う場合は、フォーム送信完了後の計測まで設計しておきましょう。
PHPでホームページを作成するときの学習順序
PHPを学ぶときは、いきなり複雑なシステムを作ろうとしないことが大切です。
HTML/CSSを先に理解する
PHPはHTMLを出力するための言語として使われることが多いため、まずはHTML/CSSの基礎が必要です。
最低限、以下の内容は理解しておきましょう。
- HTMLの基本構造
- 見出しや段落
- 画像やリンク
- フォーム
- CSSでのレイアウト
- レスポンシブデザイン
HTML/CSSが分かっていると、PHPで何を出力しているのか理解しやすくなります。
PHPの基本文法を学ぶ
次に、PHPの基本文法を学びます。
ホームページ制作で最初に覚えたいのは、以下です。
| 項目 | 内容 |
|---|---|
| 変数 | 値を入れて使い回す |
| 配列 | 複数の値をまとめて管理する |
| 条件分岐 | 条件によって表示を変える |
| 繰り返し | 一覧を表示する |
| 関数 | よく使う処理をまとめる |
| include | 共通パーツを読み込む |
| POST | フォーム送信を受け取る |
たとえば、配列と foreach を使うと、サービス一覧のような表示を作れます。
<?php
$services = [
[
'title' => 'Webサイト制作',
'text' => '成果につながるWebサイトを制作します。'
],
[
'title' => 'SEO対策',
'text' => '検索流入を増やすための内部対策を行います。'
],
[
'title' => '広告運用',
'text' => 'リスティング広告やSNS広告を運用します。'
],
];
?>
<ul>
<?php foreach ($services as $service): ?>
<li>
<h2><?php echo htmlspecialchars($service['title'], ENT_QUOTES, 'UTF-8'); ?></h2>
<p><?php echo htmlspecialchars($service['text'], ENT_QUOTES, 'UTF-8'); ?></p>
</li>
<?php endforeach; ?>
</ul>
このような書き方を覚えると、カード型レイアウトや記事一覧の作成にも応用できます。
フォーム処理を学ぶ
PHPの基礎に慣れたら、お問い合わせフォームを作ってみましょう。
フォーム処理では、以下の内容を学べます。
$_POSTの使い方- 入力チェック
- エラー表示
- メールアドレスの検証
- CSRF対策
- 完了ページへのリダイレクト
- メール送信
フォームはホームページ制作でよく使う機能なので、早い段階で学んでおくと実務に役立ちます。
データベース連携を学ぶ
フォーム処理の次は、MySQLなどのデータベース連携を学ぶとよいでしょう。
データベースを使うと、以下のような機能を作れるようになります。
- お知らせ管理
- ブログ記事管理
- 実績管理
- 会員情報管理
- 予約データ管理
ただし、データベースを扱うとセキュリティの重要性も高くなります。
PDO、プリペアドステートメント、入力チェック、出力エスケープは必ず覚えておきましょう。
目的に応じてWordPressやLaravelを学ぶ
PHPの基礎を学んだ後は、目的に応じて進む方向を決めるとよいです。
企業サイトやメディアサイトを作りたい場合は、WordPressテーマ制作が実務に直結します。
一方で、会員機能、予約システム、業務システム、独自アプリケーションを作りたい場合は、LaravelなどのPHPフレームワークを学ぶとよいでしょう。
PHPでホームページを作るときの注意点
PHPサイトを作るときは、制作後の運用や保守も考えておく必要があります。
古いPHPバージョンを使わない
PHPにはバージョンごとにサポート期限があります。
サポートが終了した古いPHPを使い続けると、セキュリティ面でリスクが高くなります。
新しくホームページを作る場合は、レンタルサーバーで利用できるPHPバージョンを確認し、できるだけ新しいサポート中のバージョンを選びましょう。
既存サイトを運用している場合も、PHPのバージョンアップによって古いコードが動かなくなる場合があります。
そのため、テスト環境で確認してから本番環境に反映することが大切です。
本番サーバーで直接編集しない
本番サーバー上のファイルを直接編集すると、ミスをした瞬間にサイトが崩れたり、エラーが表示されたりする可能性があります。
基本的には、次の流れで作業するのが安全です。
ローカル環境で編集
↓
動作確認
↓
バックアップ
↓
本番環境へ反映
可能であれば、Gitなどのバージョン管理も使うと安心です。
フォームのスパム対策を行う
お問い合わせフォームは、スパム送信の対象になりやすい部分です。
対策として、以下のような方法があります。
- 入力チェックを行う
- CSRFトークンを使う
- reCAPTCHAを導入する
- 短時間の連続送信を制限する
- 海外スパムが多い場合は条件を追加する
- 確認画面を設ける
- フォームサービスを活用する
特に公開後にスパムが増えることは珍しくありません。
フォームを作る場合は、最初から対策を考えておきましょう。
画像やCSSのパスに注意する
PHPで共通パーツ化すると、画像やCSSのパスでつまずくことがあります。
たとえば、階層が違うページから同じ header.php を読み込むと、CSSや画像の相対パスが合わなくなる場合があります。
このような場合は、サイトのルートを基準にしたパスを使うと管理しやすくなります。
<link rel="stylesheet" href="/assets/css/style.css">
ただし、サブディレクトリで運用する場合は、パスの設計に注意が必要です。
PHPで最初に作るなら5ページ構成のサイトがおすすめ
PHP初心者がホームページ制作を学ぶなら、まずは5ページ程度の小規模サイトを作るのがおすすめです。
おすすめのページ構成
最初の練習サイトは、次のような構成が分かりやすいです。
トップページ
会社概要
サービス紹介
実績紹介
お問い合わせ
この構成なら、実務に近いホームページ制作の流れを学べます。
実装するとよい機能
練習サイトでは、以下の機能を入れてみるとよいでしょう。
- headerとfooterの共通化
- ページごとのtitle設定
- ページごとのdescription設定
- ナビゲーション
- お問い合わせフォーム
- 完了ページ
- OGP設定
- スマホ対応
- お知らせ一覧
- CTAボタン
ここまで作れるようになると、PHPを使ったホームページ制作の基礎はかなり身につきます。
慣れてきたら機能を追加する
基本的なPHPサイトを作れるようになったら、次のような機能にも挑戦できます。
- MySQLを使ったお知らせ管理
- 管理画面
- ログイン機能
- 画像アップロード
- WordPressテーマ化
- URLリライト
- フォームの自動返信メール
- コンバージョン計測
ただし、ログイン機能や画像アップロードはセキュリティの難易度が上がります。
基礎を固めてから取り組むのがおすすめです。
PHPでのホームページ作成に向いている人
PHPは、ホームページ制作をより実務的に学びたい人に向いています。
HTML/CSSからステップアップしたい人
HTML/CSSで静的ページを作れるようになった人にとって、PHPは次のステップとして学びやすい言語です。
ヘッダーやフッターの共通化、フォーム処理、配列による一覧表示など、ホームページ制作に直結する使い方が多いためです。
WordPressをカスタマイズしたい人
WordPressテーマを編集したい人にも、PHPの知識は役立ちます。
WordPressでは、テンプレートファイルの中にPHPコードが多く使われています。
PHPが分かると、テーマの構造や表示の仕組みを理解しやすくなります。
Webマーケティング用のサイトを改善したい人
PHPを理解していると、フォーム改善、完了ページの計測、CTAの出し分け、ページごとのSEO設定など、マーケティング施策にも活かしやすくなります。
たとえば、問い合わせ完了後にサンクスページへ遷移させることで、広告のコンバージョン計測を行いやすくなります。
また、ページごとにタイトルやディスクリプションを変数で管理すれば、SEO改善もしやすくなります。
PHPでのホームページ作成のまとめ
PHPを使えば、HTML/CSSだけでは実現しにくい機能を持つホームページを作成できます。
特に、以下のような用途に向いています。
- ヘッダーやフッターの共通化
- お問い合わせフォームの作成
- お知らせ一覧の表示
- データベースとの連携
- WordPressテーマのカスタマイズ
- 管理画面やログイン機能の実装
初心者がPHPでホームページを作る場合は、いきなり複雑なシステムを作ろうとせず、まずはHTML/CSSで作ったサイトをPHP化するところから始めるのがおすすめです。
基本的な流れは、次の通りです。
HTML/CSSでページを作る
↓
拡張子を .php にする
↓
headerやfooterを共通化する
↓
ページごとにtitleやdescriptionを設定する
↓
お問い合わせフォームを作る
↓
必要に応じてデータベースやWordPressへ進む
PHPは自由度が高く、ホームページ制作やWordPress制作に役立つ言語です。
ただし、フォーム処理やデータベース連携を行う場合は、セキュリティ対策を必ず意識する必要があります。
まずは小規模な会社サイトを作り、共通パーツ化やフォーム処理を学ぶところから始めると、PHPでのホームページ作成を実践的に理解しやすくなります。
以上、PHPでのホームページ作成についてでした。
最後までお読みいただき、ありがとうございました。









