WordPressなしでWebサイトを作るPart 3

はじめに

前回の記事では、Search Console、sitemap.xml、robots.txtを使って、WordPressなしで作ったWebサイトをGoogle検索に見つけてもらいやすくする方法を説明しました。今回はその続きとして、Webサイトを運営していくと必要になりやすい、データベース、メール、Cronについて説明します。

HTMLとCSSだけの静的なサイトであれば、これらを使わなくても公開できます。しかし、お問い合わせフォーム、ログイン機能、記事管理、通知、自動処理などを作りたい場合は、サーバー側の機能が必要になります。この記事では、Xserverでデータベース、メール、Cronを作る方法と、それぞれが何のために必要なのかを説明します。

データベースとは

データベースは、Webサイトで使う情報を保存しておく場所です。たとえば、記事の内容、ユーザー情報、お問い合わせ内容、ログイン情報、設定情報などを保存できます。

HTMLファイルだけで作るサイトでは、ページの内容はファイルに直接書きます。しかし、PHPなどで動的なサイトを作る場合は、データベースに保存した情報を取り出してページに表示することができます。

データベースでできること

データベースを使うと、Webサイト上の情報を管理しやすくなります。たとえば、管理画面から記事を追加して、その内容をサイトに表示することができます。

お問い合わせフォームを作る場合は、送信された名前、メールアドレス、本文などをデータベースに保存できます。ログイン機能を作る場合は、ユーザー情報を保存し、入力されたメールアドレスやパスワードを確認してログイン処理を行うことができます。

Xserverでデータベースを作る流れ

Xserverでデータベースを使う場合は、サーバーパネルからMySQL設定を開きます。そこで、MySQLデータベースの作成、MySQLユーザーの作成、データベースに対するユーザーのアクセス権設定を行います。

データベース本体を作っただけでは、PHPから接続できる状態にはなりません。データベースに接続するためのMySQLユーザーを作り、そのユーザーを対象のデータベースに追加する必要があります。

MySQLデータベースを追加する

まず、Xserverのサーバーパネルにログインします。サーバーパネルを開いたら、データベースの項目にある「MySQL設定」を開きます。

MySQL設定を開いたら、「MySQL追加」から新しいデータベースを作成します。データベース名には、自分で分かりやすい名前を入力します。文字コードを選べる場合は、基本的にUTF-8を選びます。

確認画面に進み、内容に問題がなければ追加します。これでデータベース本体が作成されます。

MySQLユーザーを追加する

次に、データベースに接続するためのMySQLユーザーを作ります。MySQL設定の中にある「MySQLユーザー追加」を開きます。

MySQLユーザーIDとパスワードを入力して、確認画面に進みます。内容に問題がなければ追加します。このユーザー名とパスワードは、PHPからデータベースに接続するときに使うので、忘れないように控えておきます。

データベースにユーザーを追加する

データベースとMySQLユーザーを作成したら、次にアクセス権を設定します。MySQL設定の「MySQL一覧」などから、作成したデータベースに対して、先ほど作成したMySQLユーザーを追加します。

この設定を行うことで、そのMySQLユーザーが対象のデータベースを操作できるようになります。データベースを作っただけ、またはユーザーを作っただけでは不十分で、この紐付けまで行う必要があります。

PHPから接続するときに使う情報

PHPからMySQLに接続するときは、データベース名、MySQLユーザー名、パスワード、MySQLホスト名を使います。MySQLホスト名は、XserverのMySQL設定画面で確認できます。

これらの情報をPHPの設定ファイルなどに書いて、PDOなどを使って接続します。データベース接続情報は重要な情報なので、外部から直接見える場所に置かないように注意が必要です。

データベースを使うときの注意点

データベースには、サイトの重要な情報を保存することがあります。そのため、データベース名、ユーザー名、パスワードなどは、外部から見える場所に書かないように注意が必要です。

また、ログイン機能やお問い合わせフォームを作る場合は、入力された値をそのままSQLに入れないようにする必要があります。PHPで作る場合は、PDOのプリペアドステートメントを使うことで、SQLインジェクション対策がしやすくなります。

メール機能とは

メール機能は、独自ドメインのメールアドレスを作ったり、Webサイトからメールを送信したりするために使います。たとえば、info@op7dango.com のようなメールアドレスを作ることができます。

個人サイトでも、お問い合わせ用のメールアドレスを独自ドメインで作っておくと、サイトとしての見た目が分かりやすくなります。

メールでできること

メール機能を使うと、お問い合わせフォームから管理者に通知を送ったり、ユーザーに自動返信メールを送ったりできます。会員登録機能を作る場合は、登録確認メールやパスワード再設定メールを送ることもできます。

また、サイト運営用の連絡先として、独自ドメインのメールアドレスを使うこともできます。

Xserverでメールアドレスを作る流れ

Xserverで独自ドメインのメールアドレスを作る場合は、サーバーパネルから「メールアカウント設定」を開きます。対象のドメインを選び、メールアカウントを追加します。

たとえば、ドメインが op7dango.com の場合、info@op7dango.com や contact@op7dango.com のようなメールアドレスを作成できます。サイト用の連絡先として使うなら、info、contact、support などの名前が分かりやすいです。

メールアカウントを追加する

まず、Xserverのサーバーパネルにログインします。サーバーパネルを開いたら、メールの項目にある「メールアカウント設定」を開きます。

次に、メールアドレスを作りたいドメインを選びます。ドメインを選んだら、「メールアカウントを追加」から、メールアカウント名、パスワード、容量などを入力します。

たとえば、メールアカウント名に info と入力し、ドメインが op7dango.com であれば、info@op7dango.com というメールアドレスになります。入力内容に問題がなければ追加します。

作成したメールを使う方法

作成したメールアドレスは、XserverのWEBメールから使うことができます。ブラウザ上でメールの送受信ができるので、最初はWEBメールで確認するのが分かりやすいです。

普段使っているメールソフトで送受信したい場合は、メールソフトにメールアドレス、パスワード、受信サーバー、送信サーバーなどを設定します。Xserverのマニュアルには、メールソフトごとの設定方法も用意されています。

フォームからメールを送る場合

お問い合わせフォームを作る場合、送信された内容をメールで受け取りたいことがあります。PHPでは、メール送信処理を使って管理者宛てに通知メールを送ることができます。

ただし、メール送信は迷惑メール判定や送信元の設定にも関係します。送信元メールアドレス、返信先メールアドレス、本文の内容などを適切に設定しないと、メールが届かなかったり、迷惑メールに入ったりすることがあります。

Cronとは

Cronは、決まった時間に自動で処理を実行するための仕組みです。Webサイトは、通常はユーザーがページを開いたタイミングで処理が動きます。

しかし、Cronを使うと、ユーザーがページを開いていなくても、サーバー側で自動処理を実行できます。

Cronでできること

Cronを使うと、毎日決まった時間に処理を実行したり、数分ごとに処理を確認したりできます。たとえば、期限切れデータの削除、通知メールの送信、バックアップ処理、サイトマップの自動生成、外部データの取得などに使えます。

XserverでCronを設定する流れ

XserverでCronを使う場合は、サーバーパネルからCron設定を開きます。Cron設定では、実行するコマンドと、実行する日時や間隔を設定します。

たとえば、PHPファイルを定期実行したい場合は、PHPを実行するコマンドと、実行したいPHPファイルのパスを指定します。これにより、ブラウザでページを開かなくても、指定した時間にPHP処理を実行できます。

Cronに実行コマンドを設定する

Cron設定では、実行したいPHPファイルをコマンドとして指定します。たとえば、PHPコマンドの後ろに、実行したいPHPファイルのフルパスを書く形になります。

例として、/usr/bin/php8.3 /home/サーバーID/ドメイン名/public_html/cron/.php のような形です。実際のサーバーIDやドメイン名は、自分のXserver環境に合わせて変更します。

ファイルの場所を間違えるとCronは実行できないため、パスは特に注意が必要です。PHPファイル内で別ファイルを読み込む場合も、相対パスではなく __DIR__ などを使って、Cronから実行しても正しく読み込めるようにしておくと安全です。

Cronの実行タイミングを設定する

Cronでは、分、時、日、月、曜日を指定して、いつ処理を実行するかを決めます。たとえば、毎日1回、毎時1回、5分ごとなどの設定ができます。

通知処理のように頻繁に確認したい処理は数分ごと、バックアップや整理処理のように頻繁でなくてよい処理は1日1回など、処理内容に合わせて実行間隔を決めます。

Cronを設定したら確認する

Cronは画面に結果が表示される処理ではないため、設定しただけでは成功しているか分かりにくいです。そのため、データベースに実行日時を書き込むなど、動作確認できる作りにしておくと分かりやすいです。

まとめ

WordPressなしでWebサイトを作る場合でも、Xserverにはデータベース、メール、Cronなど、サイト運営に必要な機能が用意されています。データベースは、記事、ユーザー情報、お問い合わせ内容などを保存するために使います。

メールは、お問い合わせ通知、自動返信、会員登録確認などに使えます。Cronは、決まった時間に自動で処理を実行するために使います。

これらを使えるようになると、ただページを表示するだけではなく、管理画面、ログイン機能、通知機能、自動処理などを持ったWebサイトを作れるようになります。

次の記事では、Webサイトで最低限必要なページを紹介します。