序章

LinuxのLAMPスタックに似たFAMPスタックは、FreeBSDサーバーが動的なWebサイトやWebアプリをホストできるようにするために通常一緒にインストールされるオープンソースソフトウェアのグループです。 FAMPは、 F reeBSD(オペレーティングシステム)、 A pache(Webサーバー)、 M ySQL(データベースサーバー)、およびの頭字語です。 P HP(動的なPHPコンテンツを処理するため)。

このガイドでは、FAMPスタックをFreeBSD12.0クラウドサーバーにインストールします。 pkg、FreeBSDパッケージマネージャー。

Note: As of July 1, 2022, DigitalOcean no longer supports the creation of new FreeBSD Droplets through the Control Panel or API. However, you can still spin up FreeBSD Droplets using a custom image. Learn how to import a custom image to DigitalOcean by following our product documentation.

前提条件

このガイドを開始する前に、次のものが必要です。

  • A FreeBSD 12.0 server
  • 構成を変更するためのroot権限を持つ(またはsudoを使用して許可された)ユーザーへのアクセス。
  • 新しいFreeBSD12.0サーバーの推奨手順でこのチュートリアルを使用して構成されたファイアウォール。 必ずポートを開いてください 80443 セットアップの一部として。
  • CLI(コマンドラインインターフェイス)に精通していることをお勧めします。 FreeBSDのviエディタは、vimとほぼ同じ構文を持っています。

ステップ1—Apacheをインストールする

Apache Webサーバーは現在、世界で最も人気のあるWebサーバーであり、Webサイトをホストするのに最適です。

FreeBSDのパッケージマネージャーを使用してApacheをインストールできます。 pkg. パッケージマネージャーを使用すると、FreeBSDが管理するリポジトリからほとんどのソフトウェアを簡単にインストールできます。 pkgの使用方法について詳しくはこちらをご覧ください。

Apache 2.4を使用してインストールするには pkg、次のコマンドを使用します。

  1. sudo pkg install apache24

入る y 確認プロンプトで、Apacheとその依存関係をインストールします。

Apacheをサービスとして有効にするには、次を追加します apache24_enable="YES"/etc/rc.conf ファイル。 を使用します sysrc まさにそれを行うコマンド:

  1. sudo sysrc apache24_enable="YES"

次に、Apacheを起動します。

  1. sudo service apache24 start

Apacheが起動したことを確認するには、次のコマンドを実行できます。

  1. sudo service apache24 status

その結果、次のようなものが表示されます。

Output
apache24 is running as pid 20815.

WebブラウザでサーバーのパブリックIPアドレスにアクセスすると、すぐにスポットチェックを実行して、すべてが計画どおりに行われたことを確認できます。 この情報をまだ持っていない場合は、次の見出しの下にあるメモを参照して、パブリックIPアドレスを確認してください。

http://your_server_IP_address/

テスト目的でそこにあるデフォルトのFreeBSDApacheWebページが表示されます。 It Works!が表示されます。これは、Webサーバーが正しくインストールされていることを示しています。

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

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

One way to look up the IP address is to use the ifconfig サーバー自体のコマンド。 The ifconfig コマンドは、ネットワークインターフェイスに関する情報を出力します。 サーバーのパブリックIPアドレスのみに出力を絞り込むには、次のコマンドを使用します(強調表示されている部分はネットワークインターフェイスの名前であり、異なる場合があることに注意してください)。

  1. ifconfig vtnet0 | grep "inet " | awk '{ print $2; exit }'

あなたも使うことができます curl icanhazip などの外部の関係者に連絡して、サーバーがどのように認識されているかを知らせます。 これは、特定のサーバーにIPアドレスを尋ねることによって行われます。

  1. curl http://icanhazip.com

パブリックIPアドレスを取得したので、WebブラウザのアドレスバーでパブリックIPアドレスを使用して、Webサーバーにアクセスできます。

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

Webサーバーが稼働しているので、リレーショナルデータベース管理システムであるMySQLをインストールします。 MySQLサーバーは、サーバーが情報を格納できるデータベースを整理してアクセスを提供します。

繰り返しますが、 pkg ソフトウェアを取得してインストールします。

MySQL 8.0を使用してインストールするには pkg、次のコマンドを使用します。

  1. sudo pkg install mysql80-server

入る y 確認プロンプトで、MySQLサーバーとクライアントパッケージをインストールします。

MySQLサーバーをサービスとして有効にするには、次を追加します。 mysql_enable="YES"/etc/rc.conf ファイル。 あなたは私たちができます sysrc まさにそれを行うコマンド:

  1. sudo sysrc mysql_enable="YES"

次に、次のコマンドを使用してMySQLサーバーを起動します。

  1. sudo service mysql-server start

サービスが稼働していることを確認できます。

  1. sudo service mysql-server status

次のようなものを読みます。

Output
mysql is running as pid 21587.

MySQLデータベースが実行されているので、いくつかの危険なデフォルトを削除し、データベースシステムへのアクセスをわずかに制限する簡単なセキュリティスクリプトを実行する必要があります。 次のコマンドを実行して、対話型スクリプトを開始します。

  1. sudo mysql_secure_installation

パスワードを設定するかどうかを尋ねるプロンプトが表示されます。 MySQLをインストールしたばかりなので、MySQLがない可能性が高いので、次のように入力します。 Y 指示に従ってください:

 Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

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: 0
Please set the password for root here.

New password:  password

Re-enter new password:  password

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

残りの質問については、 y 各プロンプトでキーを押して、推奨される安全な値を受け入れます。 これにより、一部のサンプルユーザーとデータベースが削除され、リモートルートログインが無効になり、これらの新しいルールが読み込まれるため、MySQLは行った変更をすぐに尊重します。

この時点で、データベースシステムがセットアップされ、PHPのインストールに進むことができます。

ステップ3—PHPのインストール

PHPは、動的コンテンツを表示するコードを処理するセットアップのコンポーネントです。 スクリプトを実行し、MySQLデータベースに接続して情報を取得し、処理されたコンテンツをWebサーバーに渡して表示することができます。

もう一度活用できます pkg コンポーネントをインストールするシステム。 含めるつもりです mod_php, php-mysql、 と php-mysqli パッケージも。

PHP 7.3をインストールするには pkg、次のコマンドを実行します。

  1. sudo pkg install php73 php73-mysqli mod_php73

入る y 確認プロンプトで。 これにより、 php73, mod_php73、 と php73-mysqli パッケージ。

次に、次のコマンドを使用して、サンプルのPHP構成ファイルを所定の場所にコピーします。

  1. sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

今実行します rehash インストールされた実行可能ファイルに関するシステムのキャッシュ情報を再生成するコマンド:

  1. rehash

PHPを使用する前に、Apacheで動作するようにPHPを構成する必要があります。

PHPモジュールのインストール(オプション)

PHPの機能を強化するために、オプションでいくつかの追加モジュールをインストールできます。

PHP 7.3 モジュールおよびライブラリで使用可能なオプションを確認するには、次のように入力します。

pkg search php73

結果は主に、インストールできるPHP 7.3モジュールになります。

Output
php73-7.3.5 PHP Scripting Language php73-aphpbreakdown-2.2.2 Code-Analyzer for PHP for Compatibility Check-UP php73-aphpunit-1.8 Testing framework for unit tests php73-bcmath-7.3.5 The bcmath shared extension for php php73-brotli-0.6.2 Brotli extension for PHP php73-bsdconv-11.5.0 PHP wrapper for bsdconv php73-bz2-7.3.5 The bz2 shared extension for php php73-calendar-7.3.5 The calendar shared extension for php php73-composer-1.8.4 Dependency Manager for PHP php73-ctype-7.3.5 The ctype shared extension for php php73-curl-7.3.5 The curl shared extension for php php73-dba-7.3.5 The dba shared extension for php php73-deployer-6.4.3 Deployment tool for PHP php73-dom-7.3.5 The dom shared extension for php ...

各モジュールの機能の詳細については、インターネットを検索するか、次のように入力してパッケージの詳細な説明を確認してください。

  1. pkg search -f package_name

モジュールが提供する機能の説明があるコメントと呼ばれる1つのフィールドで、多くの出力があります。

たとえば、何を見つけるために php73-calendar パッケージはそうです、あなたはこれをタイプすることができます:

  1. pkg search -f php73-calendar

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

Output
php73-calendar-7.3.5 Name : php73-calendar Version : 7.3.5 ... Comment : The calendar shared extension for php ...

調査の結果、パッケージをインストールすることにした場合は、 pkg install 指図。

たとえば、あなたがそれを決定した場合 php73-calendar 必要なものです。次のように入力できます。

  1. sudo pkg install php73-calendar

一度に複数のモジュールをインストールする場合は、次のようにスペースで区切って各モジュールをリストすることでインストールできます。 pkg install 次のようなコマンド:

  1. sudo pkg install package1 package2 ...

ステップ4—PHPモジュールを使用するようにApacheを構成する

Apache HTTPには、特定のモジュールの構成ファイルを書き込むための専用ディレクトリがあります。 PHPを「話す」ために、ApacheHTTP用のこれらの構成ファイルの1つを作成します。

  1. sudo vi /usr/local/etc/apache24/modules.d/001_mod-php.conf

そのファイルに次の行を追加します。

/usr/local/etc/apache24/modules.d/001_mod-php.conf
<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

ここで、ApacheのHTTP構成が良好な状態にあることを確認します。

  1. sudo apachectl configtest

次の出力が表示されます。

Output
Performing sanity check on apache24 configuration: Syntax OK

Apacheで構成を変更したため、それらを適用するにはサービスを再起動する必要があります。 それ以外の場合、Apacheは以前の構成で引き続き機能します。

  1. sudo apachectl restart

これで、システムでのPHPのテストに進むことができます。

ステップ5—PHP処理のテスト

システムがPHP用に適切に構成されていることをテストするために、非常に基本的なPHPスクリプトを作成できます。

このスクリプトを呼び出します info.php. Apacheがファイルを見つけて正しく提供するには、特定のディレクトリに保存する必要があります。DocumentRoot—ユーザーがWebサーバーにアクセスしたときにApacheがファイルを探す場所です。 の場所 DocumentRoot 以前に変更したApache構成ファイルで指定されています(/usr/local/etc/apache24/httpd.conf).

デフォルトでは、 DocumentRoot に設定されています /usr/local/www/apache24/data. あなたは作成することができます info.php 次のように入力して、その場所にあるファイルを作成します。

  1. sudo vi /usr/local/www/apache24/data/info.php

これにより、空のファイルが開きます。 このPHPコードをファイルに挿入します。

/usr/local/www/apache24/data/info.php
<?php phpinfo(); ?>

保存して終了。

これで、WebサーバーがPHPスクリプトによって生成されたコンテンツを正しく表示できるかどうかをテストできます。 これを試すには、Webブラウザで次のページにアクセスしてください。

http://your_server_IP_address/info.php

PHPFreeBSDテストページが表示されます。

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

これが成功した場合、PHPは期待どおりに機能しています。

このファイルは、許可されていないユーザーにサーバーに関する情報を実際に提供する可能性があるため、このテストの後に削除する必要があります。 これを行うには、次のように入力します。

  1. sudo rm /usr/local/www/apache24/data/info.php

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

結論

FAMPスタックがインストールされたので、次に何をするかについて多くの選択肢があります。 サーバーにほとんどの種類のWebサイトとWebソフトウェアをインストールできるプラットフォームをインストールしました。