FreeBSD12.0にApache、MySQL、およびPHP(FAMP)スタックをインストールする方法
序章
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サーバーの推奨手順でこのチュートリアルを使用して構成されたファイアウォール。 必ずポートを開いてください
80
と443
セットアップの一部として。 - CLI(コマンドラインインターフェイス)に精通していることをお勧めします。 FreeBSDのviエディタは、vimとほぼ同じ構文を持っています。
ステップ1—Apacheをインストールする
Apache Webサーバーは現在、世界で最も人気のあるWebサーバーであり、Webサイトをホストするのに最適です。
FreeBSDのパッケージマネージャーを使用してApacheをインストールできます。 pkg
. パッケージマネージャーを使用すると、FreeBSDが管理するリポジトリからほとんどのソフトウェアを簡単にインストールできます。 pkgの使用方法について詳しくはこちらをご覧ください。
Apache 2.4を使用してインストールするには pkg
、次のコマンドを使用します。
- sudo pkg install apache24
入る y
確認プロンプトで、Apacheとその依存関係をインストールします。
Apacheをサービスとして有効にするには、次を追加します apache24_enable="YES"
に /etc/rc.conf
ファイル。 を使用します sysrc
まさにそれを行うコマンド:
- sudo sysrc apache24_enable="YES"
次に、Apacheを起動します。
- sudo service apache24 start
Apacheが起動したことを確認するには、次のコマンドを実行できます。
- sudo service apache24 status
その結果、次のようなものが表示されます。
Outputapache24 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アドレスのみに出力を絞り込むには、次のコマンドを使用します(強調表示されている部分はネットワークインターフェイスの名前であり、異なる場合があることに注意してください)。
- ifconfig vtnet0 | grep "inet " | awk '{ print $2; exit }'
あなたも使うことができます curl
icanhazip などの外部の関係者に連絡して、サーバーがどのように認識されているかを知らせます。 これは、特定のサーバーにIPアドレスを尋ねることによって行われます。
- curl http://icanhazip.com
パブリックIPアドレスを取得したので、WebブラウザのアドレスバーでパブリックIPアドレスを使用して、Webサーバーにアクセスできます。
ステップ2—MySQLをインストールする
Webサーバーが稼働しているので、リレーショナルデータベース管理システムであるMySQLをインストールします。 MySQLサーバーは、サーバーが情報を格納できるデータベースを整理してアクセスを提供します。
繰り返しますが、 pkg
ソフトウェアを取得してインストールします。
MySQL 8.0を使用してインストールするには pkg
、次のコマンドを使用します。
- sudo pkg install mysql80-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 21587.
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: 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
、次のコマンドを実行します。
- sudo pkg install php73 php73-mysqli mod_php73
入る y
確認プロンプトで。 これにより、 php73
, mod_php73
、 と php73-mysqli
パッケージ。
次に、次のコマンドを使用して、サンプルのPHP構成ファイルを所定の場所にコピーします。
- sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
今実行します rehash
インストールされた実行可能ファイルに関するシステムのキャッシュ情報を再生成するコマンド:
- rehash
PHPを使用する前に、Apacheで動作するようにPHPを構成する必要があります。
PHPモジュールのインストール(オプション)
PHPの機能を強化するために、オプションでいくつかの追加モジュールをインストールできます。
PHP 7.3 モジュールおよびライブラリで使用可能なオプションを確認するには、次のように入力します。
pkg search php73
結果は主に、インストールできるPHP 7.3モジュールになります。
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 package_name
モジュールが提供する機能の説明があるコメントと呼ばれる1つのフィールドで、多くの出力があります。
たとえば、何を見つけるために php73-calendar
パッケージはそうです、あなたはこれをタイプすることができます:
- pkg search -f php73-calendar
他の大量の情報とともに、次のようなものが見つかります。
Outputphp73-calendar-7.3.5
Name : php73-calendar
Version : 7.3.5
...
Comment : The calendar shared extension for php
...
調査の結果、パッケージをインストールすることにした場合は、 pkg install
指図。
たとえば、あなたがそれを決定した場合 php73-calendar
必要なものです。次のように入力できます。
- sudo pkg install php73-calendar
一度に複数のモジュールをインストールする場合は、次のようにスペースで区切って各モジュールをリストすることでインストールできます。 pkg install
次のようなコマンド:
- sudo pkg install package1 package2 ...
ステップ4—PHPモジュールを使用するようにApacheを構成する
Apache HTTPには、特定のモジュールの構成ファイルを書き込むための専用ディレクトリがあります。 PHPを「話す」ために、ApacheHTTP用のこれらの構成ファイルの1つを作成します。
- sudo vi /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がファイルを見つけて正しく提供するには、特定のディレクトリに保存する必要があります。DocumentRoot
—ユーザーがWebサーバーにアクセスしたときにApacheがファイルを探す場所です。 の場所 DocumentRoot
以前に変更したApache構成ファイルで指定されています(/usr/local/etc/apache24/httpd.conf
).
デフォルトでは、 DocumentRoot
に設定されています /usr/local/www/apache24/data
. あなたは作成することができます info.php
次のように入力して、その場所にあるファイルを作成します。
- sudo vi /usr/local/www/apache24/data/info.php
これにより、空のファイルが開きます。 このPHPコードをファイルに挿入します。
<?php phpinfo(); ?>
保存して終了。
これで、WebサーバーがPHPスクリプトによって生成されたコンテンツを正しく表示できるかどうかをテストできます。 これを試すには、Webブラウザで次のページにアクセスしてください。
http://your_server_IP_address/info.php
PHPFreeBSDテストページが表示されます。
このページでは、PHPの観点からサーバーに関する情報を提供します。 デバッグや、設定が正しく適用されていることを確認するのに役立ちます。
これが成功した場合、PHPは期待どおりに機能しています。
このファイルは、許可されていないユーザーにサーバーに関する情報を実際に提供する可能性があるため、このテストの後に削除する必要があります。 これを行うには、次のように入力します。
- sudo rm /usr/local/www/apache24/data/info.php
後で情報に再度アクセスする必要がある場合は、いつでもこのページを再作成できます。
結論
FAMPスタックがインストールされたので、次に何をするかについて多くの選択肢があります。 サーバーにほとんどの種類のWebサイトとWebソフトウェアをインストールできるプラットフォームをインストールしました。