FreeBSD 12.0にApache、MySQL、およびPHP(FAMP)スタックをインストールする方法

著者はhttps://www.brightfunds.org/funds/foss-nonprofits [無料およびオープンソース基金]を選択して、https://do.co/w4do-cta [Donationsのために書く]の一部として寄付を受け取りましたプログラム。

前書き

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

このガイドでは、FreeBSDパッケージマネージャーである `+ pkg +`を使用して、FreeBSD 12.0クラウドサーバーにFAMPスタックをインストールします。

前提条件

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

  • FreeBSD 12.0 Droplet

  • 構成を変更するために、root権限を持つ(またはsudoを使用して許可される)ユーザーへのアクセス。

  • https://www.digitalocean.com/community/tutorials/recommended-steps-for-new-freebsd-12-0-servers [新しいFreeBSD 12.0サーバーの推奨手順]でこのチュートリアルを使用して設定されたファイアウォール。 設定の一部としてポート `+ 80 `と ` 443 +`を開いていることを確認してください。

  • CLI(コマンドラインインターフェイス)に精通していることをお勧めします。 FreeBSDのviエディターには、ほぼ同一のhttps://www.digitalocean.com/community/tutorials/installing-and-using-the-vim-text-editor-on-a-cloud-server#modal-editing[syntax as vim]があります。 。

ステップ1-Apacheのインストール

現在、Apache Webサーバーは世界で最も人気のあるWebサーバーであり、Webサイトのホスティングに最適な選択肢となっています。

FreeBSDのパッケージマネージャー、 `+ pkg `を使用してApacheをインストールできます。 パッケージマネージャーを使用すると、FreeBSDで管理されているリポジトリからほとんどのソフトウェアを簡単にインストールできます。 https://www.digitalocean.com/community/tutorials/how-to-manage-packages-on-freebsd-10-1-with-pkgの詳細についてはこちらをご覧ください[ここで ` pkg +`を使用する方法]。

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

sudo pkg install apache

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

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

sudo sysrc apache_enable="YES"

Apacheを起動します。

sudo service apache start

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

sudo service apache status

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

Outputapache is running as pid .

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

http:///

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

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

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

DigitalOceanを使用している場合、コントロールパネルでサーバーのIPアドレスを確認できます。 次のコマンドを使用して、サーバー自体からDigitalOceanメタデータサービスを使用することもできます: + curl -w" \ n "http:// 169.254.169.254 / metadata / v1 / interfaces / public / 0 / ipv4 / address +

IPアドレスを検索するより一般的な方法は、サーバー自体で `+ ifconfig `コマンドを使用することです。 ` ifconfig +`コマンドは、ネットワークインターフェースに関する情報を出力します。 出力をサーバーのパブリックIPアドレスのみに絞り込むには、次のコマンドを使用します(強調表示されている部分はネットワークインターフェイスの名前であり、異なる場合があります)。

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

また、「+ curl +」を使用して、https://major.io/icanhazip-com-faq/ [icanhazip]などの外部のパーティーに連絡し、サーバーがどのように見えるかを伝えることもできます。 これは、特定のサーバーにあなたのIPアドレスを尋ねることによって行われます:

curl http://icanhazip.com

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

ステップ2-MySQLのインストール

Webサーバーを起動して実行したら、リレーショナルデータベース管理システムであるMySQLをインストールします。 MySQLサーバーは、サーバーが情報を保存できるデータベースを整理し、アクセスを提供します。

繰り返しますが、 `+ pkg +`を使用してソフトウェアを取得およびインストールできます。

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

sudo pkg install mysql-server

確認プロンプトで「+ y +」と入力して、MySQLサーバーおよびクライアントパッケージをインストールします。

MySQLサーバーをサービスとして有効にするには、 `+ mysql_enable =" YES "`を ` / etc / rc.conf `ファイルに追加します。 それを行うために、 ` sysrc +`コマンドを使用できます。

sudo sysrc mysql_enable="YES"

次のコマンドでMySQLサーバーを起動します。

sudo service mysql-server start

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

sudo service mysql-server status

次のような内容が表示されます。

Outputmysql is running as pid .

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

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:

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

New password:

Re-enter new 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 +`キーを押して、推奨される安全な値を受け入れてください。 これにより、一部のサンプルユーザーとデータベースが削除され、リモートルートログインが無効になり、これらの新しいルールが読み込まれるため、MySQLは加えた変更をすぐに尊重します。

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

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

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

もう一度 + pkg +`システムを活用してコンポーネントをインストールできます。 また、 `+ mod_php、` + php-mysql`、および `+ php-mysql`パッケージも含めます。

`+ pkg +`でPHPをインストールするには、次のコマンドを実行します:

sudo pkg install php php-mysqli mod_php

確認プロンプトで「+ y 」と入力します。 これにより、 ` php`、` + mod_php`、および `+ php-mysqli`パッケージがインストールされます。

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

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

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

rehash

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

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

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

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

pkg search php

結果は、ほとんどがインストール可能なPHPモジュールになります。

Outputphp73-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

...

各モジュールの機能に関する詳細情報を取得するには、インターネットを検索するか、次のように入力してパッケージの長い説明を見ることができます。

pkg search -f

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

たとえば、 `++`パッケージの機能を調べるには、次のように入力します。

pkg search -f

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

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

調査した後、パッケージをインストールすることに決めた場合は、 `+ pkg install +`コマンドを使用してインストールできます。

たとえば、「++」が必要なものであると判断した場合、次のように入力できます。

sudo pkg install

一度に複数のモジュールをインストールしたい場合は、次のように、 `+ pkg install +`コマンドの後にスペースで区切って各モジュールをリストすることでそれを行うことができます。

sudo pkg install

ステップ4-PHPモジュールを使用するためのApacheの構成

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

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構成が良好な状態であることを確認します。

sudo apachectl configtest

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

OutputPerforming sanity check on apache24 configuration:
Syntax OK

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

sudo apachectl restart

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

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

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

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

デフォルトでは、「+ Document Root」は「+ / usr / local / www / apache24 / data」に設定されます。 次のように入力して、その場所の下に `+ info.php`ファイルを作成できます。

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

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

/usr/local/www/apache24/data/info.php

<?php phpinfo(); ?>

保存して終了。

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

http:///info.php

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

image:https://assets.digitalocean.com/articles/FAMP12/FAMP.png [FreeBSD info.php]

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

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

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

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

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

結論

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