UbuntuにLinux、Apache、MySQL、PHP(LAMP)をインストールする方法

0 株式
0
0
0
0

導入

「LAMP」スタックとは、通常サーバー上でPHPで記述された動的なウェブサイトやウェブアプリケーションをホストするために一緒にインストールされるオープンソースソフトウェアのグループです。これは、Apacheウェブサーバーを搭載したLinuxオペレーティングシステムを指します。サイトのデータはMySQLデータベースに保存され、動的なコンテンツはPHPによって処理されます。.

このガイドでは、Ubuntu 22.04サーバーにLAMPスタックをセットアップします。これらの手順はUbuntu 18.04以降で共通です。.

前提条件

このチュートリアルを完了するには、Ubuntu を実行するサーバー、sudo 権限を持つ非 root ユーザー、そして有効なファイアウォールが必要です。設定方法については、こちらのリストからディストリビューションを選択し、初期サーバーインストールガイドに従ってください。.

ステップ1 – Apacheをインストールし、ファイアウォールを更新する

Apacheウェブサーバーは、世界で最も人気のあるウェブサーバーの1つです。充実したドキュメントと活発なユーザーコミュニティを持ち、ウェブの歴史を通じて広く使用されてきたため、ウェブサイトホスティングに最適な選択肢となっています。.

まず、パッケージマネージャーのキャッシュを更新します。このセッションで初めてsudoを使用する場合は、aptでシステムパッケージを管理するための適切な権限があることを確認するために、ユーザーパスワードの入力を求められます。

sudo apt update

次に、次のコマンドを使用して Apache を起動します。

sudo apt install apache2

Apacheのインストールを確認するメッセージが表示されます。Yキーを押してからENTERキーを押してください。.

インストールが完了したら、HTTPトラフィックを許可するようにファイアウォール設定を構成する必要があります。Ubuntuのデフォルトのファイアウォール設定ツールは、Uncomplicated Firewall(UFW)と呼ばれています。UFWには、利用可能な様々なアプリケーションプロファイルが用意されています。利用可能なすべてのUFWアプリケーションプロファイルを一覧表示するには、次のコマンドを実行します。

sudo ufw app list
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

各プロファイルの意味は次のとおりです。

  • Apache: このプロファイルはポート 80 (通常の暗号化されていない Web トラフィック) のみを開きます。.
  • Apache Full: このプロファイルは、ポート 80 (通常の暗号化されていない Web トラフィック) とポート 443 (TLS/SSL 暗号化トラフィック) の両方を開きます。.
  • Apache Secure: このプロファイルはポート 443 (TLS/SSL 暗号化トラフィック) のみを開きます。.

現時点では、これは新しい Apache インストールであり、サーバー上で HTTPS トラフィックを許可するための TLS/SSL 証明書をまだ構成していないため、ポート 80 での接続のみを許可するのが最適です。.

ポート 80 のトラフィックのみを許可するには、Apache プロファイルを使用します。

sudo ufw allow in "Apache"

次の方法で変更を確定します:

sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)

ポート 80 のトラフィックがファイアウォールを通過できるようになりました。.

ウェブブラウザでサーバーのパブリック IP アドレスにアクセスすれば、すべてが計画どおりに進んだかどうかすぐに簡単に確認できます (パブリック IP アドレスの情報がわからない場合は、次の見出しの下の注記を参照してください。以前は、次のようになっていました):

http://your_server_ip

デフォルトのApache Ubuntuウェブページは、情報提供およびテストを目的としています。以下は、Ubuntu 22.04のデフォルトのApacheウェブページの例です。

このページが表示される場合、Web サーバーは適切にインストールされており、ファイアウォール経由でアクセスできます。.

サーバーのパブリックIPアドレスを見つける方法

サーバーのパブリックIPアドレスがわからない場合は、いくつかの方法で確認することができます。通常、これはSSH経由でサーバーに接続する際に使用するアドレスです。.

コマンドラインからこれを行うにはいくつかの方法があります。まず、iproute2ツールを使用して次のように入力し、IPアドレスを取得します。

ip addr show ens3 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

2行または3行のアドレスが返されます。すべて有効なアドレスですが、お使いのコンピュータではそのうちの1行しか使用できない可能性がありますので、それぞれ試してみてください。.

別の方法としては、curlツールを使用して外部のサーバーに接続し、サーバーがどのように認識されているかを伝える方法があります。これは、特定のサーバーにIPアドレスを問い合わせることで行われます。

curl http://icanhazip.com

どちらの方法を選択する場合でも、Web ブラウザに IP アドレスを入力して、サーバーが実行中であることを確認します。.

ステップ2 – MySQLをインストールする

ウェブサーバーの準備ができたら、サイトのデータを保存・管理するためにデータベースシステムをインストールする必要があります。MySQLは、PHP環境でよく使われる人気のデータベース管理システムです。.

このソフトウェアを入手してインストールするには、再度 apt を使用します。

sudo apt install mysql-server

プロンプトが表示されたら、Yと入力してインストールを確認し、 入力 確認する。.

インストールが完了したら、MySQLにプリインストールされているセキュリティスクリプトを実行することをお勧めします。このスクリプトは、安全でないデフォルト設定の一部を削除し、データベースシステムへのアクセスをロックダウンします。.

次のコマンドを実行して対話型スクリプトを開始します。

sudo mysql_secure_installation

この質問は、あなたが パスワード検証プラグイン 設定します。.

アクティブ化せずに続行するには、Y またはその他の回答を入力します。.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:

「はい」と答えると、パスワードの検証レベルを選択するよう求められます。最も強力なレベルの2を入力すると、数字、大文字、小文字、特殊文字を含まないパスワードを設定しようとするとエラーが発生することに注意してください。

There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

VALIDATE PASSWORD PLUGIN の設定の有無に関わらず、次にサーバーは MySQL ルートユーザーのパスワードの選択と確認を求めます。これはシステムルートユーザーと混同しないでください。データベースルートユーザーは、データベースシステムに対する完全な権限を持つ管理ユーザーです。MySQL ルートユーザーのデフォルトの認証方法ではパスワードは使用されませんが、パスワードが設定されている場合でも、追加のセキュリティ対策としてここで強力なパスワードを定義する必要があります。.

パスワード認証が有効になっている場合、入力したルートパスワードの強度が表示され、サーバーからそのパスワードで続行するかどうかの確認を求められます。現在のパスワードで問題ない場合は、プロンプトで「Y」(はい)と入力してください。

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

残りの質問については、各プロンプトでYを押し、Enterを押してください。これにより、一部の匿名ユーザーとテストデータベースが削除され、リモートルートログインが無効になり、新しいルールが読み込まれ、MySQLが変更をすぐに反映するようになります。.

完了したら、次のように入力して MySQL コンソールにログインできるかどうかをテストします。

sudo mysql

このコマンドは、管理データベースユーザーであるrootとしてMySQLサーバーに接続します。これは、このコマンド実行時にsudoによって推測されます。以下は出力例です。

Output
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.28-0ubuntu4 (Ubuntu)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

MySQL コンソールを終了するには、次のように入力します。

exit

なお、mysql_secure_installation スクリプトの実行時にパスワードを定義した場合でも、root ユーザーとして接続するためにパスワードを入力する必要はありません。これは、管理 MySQL ユーザーのデフォルトの認証方法が、パスワードではなく unix_socket であるためです。これはセキュリティ上の懸念事項のように思われるかもしれませんが、MySQL root ユーザーとしてログインできるのは、コンソールから、または同じ権限で実行されているプログラムを通じて接続する sudo 権限を持つシステム ユーザーのみとなるため、データベース サーバーのセキュリティが強化されます。 。実際には、これは管理データベース root ユーザーを使用して PHP アプリケーションから接続できないことを意味します。MySQL root アカウントにパスワードを設定することは、デフォルトの認証方法が unix_socket からパスワードに変更された場合の安全策として機能します。.

セキュリティを強化するために、特にサーバー上で複数のデータベースをホストする予定の場合は、各データベースに対して権限を制限した専用のユーザー アカウントを設定することをお勧めします。.

MySQLサーバーのインストールとセキュリティ保護が完了しました。次に、LAMPスタックの最後のコンポーネントであるPHPをインストールします。.

ステップ3 – PHPをインストールする

コンテンツ配信用のApacheと、データの保存と管理用のMySQLをインストールしました。PHPは、エンドユーザーに動的なコンテンツを表示するためのコードを処理する部分です。phpパッケージに加えて、PHPがMySQLベースのデータベースと通信できるようにするPHPモジュールであるphp-mysqlが必要です。また、ApacheがPHPファイルを処理できるようにするには、libapache2-mod-phpも必要です。コアPHPパッケージは依存関係として自動的にインストールされます。.

これらのパッケージをインストールするには、次のコマンドを実行します。

sudo apt install php libapache2-mod-php php-mysql

インストールが完了したら、次のコマンドを実行して PHP のバージョンを確認します。

php -v
Output
PHP 8.1.2 (cli) (built: Mar 4 2022 18:13:46) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
Apacheディレクトリを変更する(オプション)

場合によっては、ディレクトリをリクエストした際にApacheがファイルを提供する方法を変更したいことがあります。現在、ユーザーがサーバーにディレクトリをリクエストすると、Apacheはまずindex.htmlというファイルを探します。WebサーバーにPHPファイルを他のファイルよりも優先させるように指示し、Apacheが最初にindex.phpファイルを探すようにします。これを行わないと、アプリケーションのドキュメントルートに配置されたindex.htmlファイルが常にindex.phpファイルよりも優先されてしまいます。.

この変更を行うには、任意のテキストエディタでdir.conf設定ファイルを開きます。ここではnanoを使用します。

sudo nano /etc/apache2/mods-enabled/dir.conf

次のようになります:

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

次のように、PHP インデックス ファイル (上記で指定) を DirectoryIndex 指定の後の最初の位置に移動します。

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

完了したら、Ctrl+X キーを押してファイルを保存して閉じます。保存を確認するには「Y」と入力し、Enter キーを押してファイルの保存場所を確定します。.

その後、変更を有効にするためにApacheウェブサーバーを再起動します。次のコマンドで再起動できます。

sudo systemctl restart apache2

systemctl を使用して apache2 サービスのステータスを確認することもできます。

sudo systemctl status apache2
Sample Output
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Thu 2021-07-15 09:22:59 UTC; 1h 3min ago
Main PID: 3719 (apache2)
Tasks: 55 (limit: 2361)
CGroup: /system.slice/apache2.service
├─3719 /usr/sbin/apache2 -k start
├─3721 /usr/sbin/apache2 -k start
└─3722 /usr/sbin/apache2 -k start
Jul 15 09:22:59 ubuntu1804 systemd[1]: Starting The Apache HTTP Server...
Jul 15 09:22:59 ubuntu1804 apachectl[3694]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' di
Jul 15 09:22:59 ubuntu1804 systemd[1]: Started The Apache HTTP Server.

この状況から抜け出すには、 質問 プレス 。.

PHP拡張機能をインストールする(オプション)

PHPの機能を拡張するには、いくつかの追加モジュールをインストールできます。PHPモジュールとライブラリで利用可能なオプションを確認するには、aptの検索結果をless(他のコマンドの出力をスクロールできるページャー)に入力してください。

apt search php- | less

矢印キーを使用して上下に移動し、Q ボタンを押して終了します。.

結果にはインストール可能なすべてのオプションコンポーネントが表示されます。それぞれの簡単な説明も表示されます。

bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64
Tracks usage of TCP/IP and builds html files with graphs
bluefish/bionic 2.2.10-1 amd64
advanced Gtk+ text editor for web and software development
cacti/bionic 1.1.38+ds1-1 all
web interface for graphing of monitoring systems
ganglia-webfrontend/bionic 3.6.1-3 all
cluster monitoring toolkit - web front-end
golang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all
PHP-like Compression and Archive Extensions in Go
haserl/bionic 0.9.35-2 amd64
CGI scripting program for embedded environments
kdevelop-php-docs/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php
kdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php-l10n
…

各モジュールの機能について詳しく知りたい場合は、インターネットで検索してみてください。また、次のコマンドを入力して、パッケージの詳細な説明もご覧ください。

apt show package_name

出力は多岐にわたりますが、モジュールの機能についてさらに詳しく説明する「説明」というフィールドがあります。.

たとえば、php-cli モジュールの機能を確認するには、次のように入力します。

apt show php-cli

その他の豊富な情報とともに、次のような情報が見つかります。

Output
…
Description: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on Ubuntu's default
PHP version (currently 7.2).
…

調査後にパッケージをインストールすることに決めた場合は、他のソフトウェアと同様に、apt install コマンドを使用してインストールできます。.

php-cli が必要だと判断した場合は、次のように入力します。

sudo apt install php-cli

複数のモジュールをインストールする場合は、次のように、各モジュールをスペースで区切ってリストし、その後に apt install コマンドを実行します。

sudo apt install package1 package2 ...

この時点で、LAMPスタックのインストールと設定は完了です。他の作業を行う前に、サーバー設定の詳細を保存できるようにApache仮想ホストを設定することをお勧めします。.

この時点で、LAMP スタックは完全に動作しますが、PHP スクリプトを使用してセットアップをテストする前に、Web サイトのファイルとフォルダーを保持するための適切な Apache 仮想ホストをセットアップすることをお勧めします。.

ステップ4 – ウェブサイトの仮想ホストを作成する

Apacheウェブサーバーを使用する場合、仮想ホスト(Nginxのサーバーブロックに類似)を作成して設定の詳細をカプセル化し、単一のサーバーで複数のドメインをホストできます。このガイドでは、your_domainというドメインを設定しますが、これはご自身のドメイン名に置き換えてください。.

Ubuntu上のApacheは、デフォルトでバーチャルホストが有効になっており、/var/www/htmlディレクトリからドキュメントを提供するように設定されています。これは単一のサイトであれば問題なく動作しますが、複数のサイトをホストしている場合は煩雑になる可能性があります。/var/www/htmlを変更する代わりに、your_domainサイトの/var/wwwにディレクトリ構造を作成し、クライアントから要求されない限り、/var/www/htmlをデフォルトのディレクトリとして提供します。その他のサイトに一致

次のように your_domain のディレクトリを作成します。

sudo mkdir /var/www/your_domain

次に、システム上の現在のユーザーを参照する環境変数 $USER を使用してディレクトリの所有権を割り当てます。

sudo chown -R $USER:$USER /var/www/your_domain

次に、お好みのコマンドラインエディタを使って、Apache sites-available ディレクトリ内の新しい設定ファイルを開きます。ここではnanoを使用します。

sudo nano /etc/apache2/sites-available/your_domain.conf

これにより、新しい空のファイルが作成されます。ドメイン名を使用して、以下の基本的な設定を追加してください。

<VirtualHost *:80>
ServerName your_domain
ServerAlias www.your_domain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

完了したら、ファイルを保存して閉じます。nanoを使用している場合は、Ctrl+X、Y、Enterの順に押します。.

このVirtualHost設定では、Apacheに/var/www/your_domainをWebルートディレクトリとしてyour_domainにサービスを提供するように指示します。ドメイン名なしでApacheをテストしたい場合は、ServerNameおよびServerAliasオプションの先頭にシャープ記号(#)を追加して、これらのオプションを削除するかコメントアウトしてください。.

次に、a2ensite を使用して新しい仮想ホストをアクティブ化します。

sudo a2ensite your_domain

Apache がインストールするデフォルトのウェブサイトを無効にしたい場合があります。カスタムドメイン名を使用していない場合、Apache がデフォルトのバーチャルホスト設定を上書きするため、これは必須です。Apache のデフォルトのウェブサイトを無効にするには、次のように入力します。

sudo a2dissite 000-default

構成ファイルに構文エラーが含まれていないことを確認するには、次のコマンドを実行します。

sudo apache2ctl configtest

最後に、これらの変更を有効にするために Apache をリロードします。

sudo systemctl reload apache2

新しいウェブサイトは公開されましたが、ウェブルート(/var/www/your_domain)はまだ空です。その場所にindex.htmlファイルを作成し、仮想ホストが期待どおりに動作しているかどうかをテストしてください。

nano /var/www/your_domain/index.html

このファイルに次のコンテンツを配置します。

<html>
<head>
<title>your_domain website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is the landing page of <strong>your_domain</strong>.</p>
</body>
</html>

ファイルを保存して閉じ、ブラウザでサーバーのドメイン名または IP アドレスにアクセスします。

http://server_domain_or_IP

Web ページには、編集したファイルの内容が反映されるはずです。

このファイルは、アプリケーションの一時的なランディングページとして、index.php ファイルで置き換えるまでそのまま残しておくことができます。index.php ファイルを作成したら、ドキュメントルートから index.html ファイルを削除するか、名前を変更してください。デフォルトでは index.php ファイルよりも優先されます。.

ApacheのDirectoryIndexに関する注意

ApacheのデフォルトのDirectoryIndex設定では、index.htmlというファイルが常にindex.phpファイルよりも優先されます。これは、PHPアプリケーションのメンテナンスページを設定する際に便利です。訪問者への情報メッセージを含む一時的なindex.htmlファイルを作成すれば、このページがindex.phpページよりも優先されるため、アプリケーションのランディングページになります。メンテナンスが完了すると、index.htmlは名前が変更されるか、ドキュメントルートから削除され、通常のアプリケーションページに戻ります。.

この動作を変更する場合は、/etc/apache2/mods-enabled/dir.conf ファイルを編集し、DirectoryIndex ディレクティブの index.php ファイルのインデックス順序を変更する必要があります。

sudo nano /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

ファイルを保存して閉じた後、変更を有効にするには Apache をリロードする必要があります。

sudo systemctl reload apache2

次に、PHP がサーバーに適切にインストールされ、設定されていることをテストするための PHP スクリプトを作成します。.

ステップ5 – ウェブサーバー上でPHP処理をテストする

ウェブサイトのファイルとフォルダをホストするカスタムの場所ができたので、PHP テスト スクリプトを作成して、Apache が PHP ファイルの要求を処理できることを確認します。.

カスタム Web ルート フォルダーに info.php という名前の新しいファイルを作成します。

nano /var/www/your_domain/info.php

空のファイルが開きます。以下のテキスト(有効なPHPコード)をファイルに追加してください。

<?php
phpinfo();

完了したら、ファイルを保存して閉じます。.

このスクリプトをテストするには、Web ブラウザーにアクセスし、サーバーのドメイン名または IP アドレスにアクセスし、その後にスクリプト名 (この場合は info.php) を入力します。

http://server_domain_or_IP/info.php

デフォルトの PHP Web ページの例を次に示します。

このページでは、PHPの観点からサーバーに関する情報を提供します。デバッグや設定が正しく適用されているかの確認に役立ちます。.

ブラウザにこのページが表示された場合、PHP のインストールは期待どおりに動作しています。.

そのページでPHPサーバーに関する情報を確認した後、作成したファイルを削除することをお勧めします。このファイルにはPHP環境とUbuntuサーバーに関する機密情報が含まれているためです。削除するには、rmコマンドを使用します。

sudo rm /var/www/your_domain/info.php

情報に再度アクセスする必要がある場合は、いつでもこのページを再作成できます。.

ステップ6 – PHPからのデータベース接続のテスト(オプション)

PHPがMySQLに接続してデータベースクエリを実行できるかどうかをテストしたい場合は、テストデータを含むテストテーブルを作成し、PHPスクリプトからその内容に対してクエリを実行できます。ただし、これを行う前に、テストデータベースと、そのデータベースにアクセスできるように適切に設定された新しいMySQLユーザーを作成する必要があります。.

example_database という名前のデータベースと example_user という名前のユーザーを作成します。これらの名前は別の値に置き換えることができます。.

まず、root アカウントを使用して MySQL コンソールに接続します。

sudo mysql

新しいデータベースを作成するには、MySQL コンソールから次のコマンドを実行します。

CREATE DATABASE example_database;

次に、新しいユーザーを作成し、作成したカスタム データベースに対する完全な権限を付与します。.

次のコマンドは、caching_sha2_password方式で認証されるexample_userという名前の新しいユーザーを作成します。このユーザーのパスワードはpasswordとして定義されていますが、この値は任意の安全なパスワードに置き換えてください。.

CREATE USER 'example_user'@'%' IDENTIFIED BY 'password';

次に、このユーザーに example_database データベースに対する権限を付与します。

GRANT ALL ON example_database.* TO 'example_user'@'%';

これにより、ユーザー example_user にデータベース example_database への完全な権限が付与されますが、ユーザーがサーバー上で他のデータベースを作成したり変更したりすることはできなくなります。.

MySQL シェルを終了します。

exit

今回はカスタム ユーザー資格情報を使用して MySQL コンソールに再度ログインし、新しいユーザーに適切な権限があるかどうかをテストします。

mysql -u example_user -p

このコマンドの -p フラグに注意してください。これは、example_user ユーザーの作成時に使用したパスワードを選択するように要求します。MySQL コンソールにログインしたら、example_database データベースにアクセスできることを確認してください。

SHOW DATABASES;

次のような出力が得られます。

Output
+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)

次に、todo_listというテストテーブルを作成します。MySQLコンソールから、次のステートメントを実行します。

CREATE TABLE example_database.todo_list (
item_id INT AUTO_INCREMENT,
content VARCHAR(255),
PRIMARY KEY(item_id)
);

テストテーブルに数行のデータを挿入します。以下のコマンドを異なる値で数回繰り返し、テストテーブルにデータを入力します。

INSERT INTO example_database.todo_list (content) VALUES ("My first important item");

データがテーブルに正常に保存されたことを確認するには、次のコマンドを実行します。

SELECT * FROM example_database.todo_list;

出力は次のようになります。

Output
+---------+--------------------------+
| item_id | content |
+---------+--------------------------+
| 1 | My first important item |
| 2 | My second important item |
| 3 | My third important item |
| 4 | and this one more thing |
+---------+--------------------------+
4 rows in set (0.000 sec)

テスト テーブルに有効なデータがあることを確認したら、MySQL コンソールを終了します。

exit

これで、MySQLに接続してコンテンツを検索するPHPスクリプトを作成できます。お好みのエディタを使って、カスタムWebサイトのルートディレクトリに新しいPHPファイルを作成してください。

nano /var/www/your_domain/todo_list.php

以下のPHPスクリプトは、MySQLデータベースに接続し、todo_listテーブルの内容を検索し、結果をリストに表示します。データベース接続に問題がある場合は例外をスローします。.

次のコンテンツを todo_list.php スクリプトに追加します。example_user とパスワードを置き換えることを忘れないでください。

<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";
try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "<h2>TODO</h2><ol>";
foreach($db->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}

編集が完了したら、ファイルを保存して閉じます。.

これで、Web サイトに設定されているドメイン名またはパブリック IP アドレスに続けて /todo_list.php にアクセスすると、Web ブラウザーでこのページにアクセスできるようになります。

http://your_domain_or_IP/todo_list.php

この Web ページには、テスト テーブルに含めたコンテンツが訪問者に表示されます。

これは、PHP 環境が MySQL サーバーに接続して対話する準備ができていることを意味します。.

結果

このガイドでは、Apache を Web サーバーとして使用し、MySQL をデータベース システムとして使用して、PHP Web サイトとアプリケーションを訪問者に配信するための柔軟な基盤を作成しました。.

次のステップとして、Webサーバーへの接続をHTTPSで安全に行う必要があります。これを行うには、Ubuntu 22.04 / 20.04 / 18.04でLet's Encryptを使用し、無料のTLS/SSL証明書でサイトを保護できます。.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

あなたも気に入るかもしれない