GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu 18.04 LTSにApache、MySQL、PHP(LAMP)スタックをインストールします

ランプ スタックは、動的なWebサイトやWebベースのアプリケーションを実行および展開するために使用できる人気のあるオープンソースのWeb開発プラットフォームです。通常、LAMPスタックは、Apache Webサーバー、MariaDB / MySQLデータベース、PHP / Python/Perlプログラミング言語で構成されます。 LAMPはLの頭字語です。 inux、 M ariaDB / M YSQL、 P HP / P ython / P えーと。このチュートリアルでは、Ubuntu 18.04 LTSサーバーにApache、MySQL、PHP(LAMPスタック)をインストールする方法について説明します。

Ubuntu 18.04 LTSにApache、MySQL、PHP(LAMP)スタックをインストールする

このチュートリアルでは、次のUbuntuテストボックスを使用します。

  • オペレーティングシステム :Ubuntu18.04.1LTSサーバーエディション
  • IPアドレス :192.168.225.22 / 24

1。 ApacheWebサーバーをインストールします

まず、コマンドを使用してUbuntuサーバーを更新します:

$ sudo apt update
$ sudo apt upgrade

次に、ApacheWebサーバーをインストールします。

$ sudo apt install apache2

Apache Webサーバーが実行されているかどうかを確認します:

$ sudo systemctl status apache2

サンプル出力は次のようになります:

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: en
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago
 Main PID: 2025 (apache2)
    Tasks: 55 (limit: 2320)
   CGroup: /system.slice/apache2.service
           ├─2025 /usr/sbin/apache2 -k start
           ├─2027 /usr/sbin/apache2 -k start
           └─2028 /usr/sbin/apache2 -k start

Feb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliably
Feb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.

おめでとう! Apacheサービスが稼働しています!!

1.1ApacheWebサーバーを許可するようにファイアウォールを調整します

デフォルトでは、Ubuntu 18.04 LTSでUFWファイアウォールを有効にしている場合、リモートシステムからapacheWebブラウザーにアクセスすることはできません。以下の手順に従って、httpポートとhttpsポートを許可する必要があります。

まず、コマンドを使用して、Ubuntuシステムで使用可能なアプリケーションプロファイルを一覧表示します。

$ sudo ufw app list

サンプル出力:

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

ご覧のとおり、ApacheおよびOpenSSHアプリケーションにはUFWプロファイルがインストールされています。 「ufwappinfo "Profile Name" 」を使用して、各プロファイルとそれに含まれるルールに関する情報を一覧表示できます。 コマンド。

「ApacheFull」を調べてみましょう プロフィール。これを行うには、次を実行します:

$ sudo ufw app info "Apache Full"

サンプル出力:

Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
80,443/tcp

ご覧のとおり、「Apache Full」プロファイルには、ポートへのトラフィックを有効にするためのルールが含まれています 80 および443

次に、次のコマンドを実行して、このプロファイルの着信HTTPおよびHTTPSトラフィックを許可します。

$ sudo ufw allow in "Apache Full"
Rules updated
Rules updated (v6)

httpsトラフィックを許可せず、http(80)トラフィックのみを許可する場合は、次のコマンドを実行します。

$ sudo ufw app info "Apache"
1.2ApacheWebサーバーのテスト

次に、Webブラウザーを開き、 http:// localhost /に移動してApacheテストページにアクセスします。 またはhttp:// IP-Address /

Apacheテストページ

上記のような画面が表示された場合は、問題ありません。 Apacheサーバーが機能しています!

2。 MySQLをインストールする

MySQLをUbuntuにインストールするには、次のコマンドを実行します:

$ sudo apt install mysql-server

コマンドを使用してMySQLサービスが実行されているかどうかを確認します:

$ sudo systemctl status mysql

出力例:

● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enab
Active: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s ago
Main PID: 3423 (mysqld)
Tasks: 27 (limit: 2320)
CGroup: /system.slice/mysql.service
└─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Feb 05 11:07:49 ubuntuserver systemd[1]: Starting MySQL Community Server...
Feb 05 11:07:50 ubuntuserver systemd[1]: Started MySQL Community Server.

Mysqlが実行されています!

2.1データベース管理ユーザー(root)パスワードの設定

デフォルトでは、MySQL root ユーザーパスワードが空白です。次のスクリプトを実行して、MySQLサーバーを保護する必要があります。

$ sudo mysql_secure_installation

VALIDATEPASSWORDプラグインを設定するかどうかを尋ねられます か否か。このプラグインを使用すると、ユーザーはデータベース資格情報の強力なパスワードを構成できます。有効にすると、パスワードの強度が自動的にチェックされ、ユーザーは十分に安全なパスワードのみを設定するように強制されます。 このプラグインを無効のままにしておくのが安全です 。ただし、データベースの資格情報には強力で一意のパスワードを使用する必要があります。このプラグインを有効にしたくない場合は、任意のキーを押してパスワード検証の部分をスキップし、残りの手順を続行してください。

答えがはいの場合 、パスワード検証のレベルを選択するように求められます。

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

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 y

利用可能なパスワード検証はです 、 および強い 。適切な番号(低の場合は0、中の場合は1、強力なパスワードの場合は2)を入力し、Enterキーを押します。

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:

次に、MySQLrootユーザーのパスワードを入力します。前の手順で選択したパスワードポリシーに応じて、mysqlrootユーザーのパスワードを使用する必要があることに注意してください。プラグインを有効にしなかった場合は、任意の強力で一意のパスワードを使用してください。

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

パスワードを2回入力すると、パスワードの強度が表示されます(この場合は 50 )。問題がない場合は、Yキーを押して、指定されたパスワードで続行します。パスワードの長さに満足できない場合は、他のキーを押して強力なパスワードを設定してください。現在のパスワードで大丈夫なので、 yを選択しました 。

残りの質問については、 yと入力するだけです。 Enterキーを押します。これにより、匿名ユーザーが削除され、rootユーザーのリモートログインが禁止され、テストデータベースが削除されます。

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

それでおしまい。 MySQLrootユーザーのパスワードが設定されました。

2.2MySQLルートユーザーの認証方法を変更する

デフォルトでは、MySQLrootユーザーはauth_socketを使用して認証するように設定されています MySQL5.7以降のバージョンのUbuntuのプラグイン。セキュリティは強化されますが、phpMyAdminなどの外部プログラムを使用してデータベースサーバーにアクセスすると、事態が複雑になります。この問題を修正するには、認証方法を auth_socketから変更する必要があります mysql_native_passwordへ 。これを行うには、次のコマンドを使用してMySQLプロンプトにログインします。

$ sudo mysql

mysqlプロンプトで次のコマンドを実行して、すべてのmysqlユーザーアカウントの現在の認証方法を見つけます。

SELECT user,authentication_string,plugin,host FROM mysql.user;

出力例:

+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *F126737722832701DD3979741508F05FA71E5BA0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

ご覧のとおり、mysqlrootユーザーはauth_socket 認証用のプラグイン。

この認証をmysql_native_passwordに変更するには メソッド、mysqlプロンプトで次のコマンドを実行します。 「パスワード」を置き換えることを忘れないでください 強力で一意のパスワードを選択してください。 VALIDATIONプラグインを有効にしている場合は、現在のポリシー要件に基づいた強力なパスワードを使用していることを確認してください。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

コマンドを使用して変更を更新します:

FLUSH PRIVILEGES;

ここで、認証方法が変更されているかどうか、またはコマンドを使用していないかどうかをもう一度確認します。

SELECT user,authentication_string,plugin,host FROM mysql.user;

サンプル出力:

良い!これで、myqlrootユーザーはパスワードを使用して認証してmysqlシェルにアクセスできます。

mysqlプロンプトを終了します:

exit

3。 PHPをインストールする

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

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

PHPをインストールした後、 info.phpを作成します Apacheルートドキュメントフォルダ内のファイル。通常、apacheルートドキュメントフォルダは / var / www / html /になります または/var / www / ほとんどのDebianベースのLinuxディストリビューションで。 Ubuntu 18.04 LTSでは、 / var / www / html /

info.phpを作成しましょう apacheルートフォルダ内のファイル:

$ sudo vi /var/www/html/info.php

次の行を追加します:

<?php
phpinfo();
?>

Escキーを押して、:wqと入力します ファイルを保存して終了します。変更を有効にするには、apacheサービスを再起動します。

$ sudo systemctl restart apache2
3.1PHPのテスト

Webブラウザーを開き、 http://IP-address/info.phpに移動します。 URL。

これでphpテストページが表示されます。

phpテストページ

通常、ユーザーがWebサーバーからディレクトリを要求すると、Apacheは最初に index.htmlという名前のファイルを探します。 。他ではなくphpファイルを提供するようにApacheを変更する場合は、 index.phpを移動します。 dir.confの最初の位置に 以下に示すようなファイル

$ sudo vi /etc/apache2/mods-enabled/dir.conf

上記のファイルの内容は次のとおりです。

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

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

「index.php」ファイルを最初に移動します。変更を加えたら、 dir.conf ファイルは次のようになります。

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

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

ESCを押します キーとタイプ:wq ファイルを保存して閉じます。 Apacheサービスを再起動して、変更を有効にします。

$ sudo systemctl restart apache2
3.2PHPモジュールのインストール

PHPの機能を向上させるために、いくつかの追加のPHPモジュールをインストールできます。

使用可能なPHPモジュールを一覧表示するには、次のコマンドを実行します。

$ sudo apt-cache search php- | less

出力例:

矢印キーを使用して結果を確認します。終了するには、 qと入力します ENTERキーを押します。

php-gd など、特定のphpモジュールの詳細を検索するには 、実行:

$ sudo apt-cache show php-gd

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

$ sudo apt install php-gd

すべてのモジュールをインストールするには(ただし、必須ではありません)、次のコマンドを実行します:

$ sudo apt-get install php*

phpモジュールをインストールした後、Apacheサービスを再起動することを忘れないでください。モジュールがロードされているかどうかを確認するには、ブラウザでinfo.phpファイルを開き、存在するかどうかを確認します。

次に、Webブラウザを介してデータベースを簡単に管理するためのデータベース管理ツールをインストールすることをお勧めします。その場合は、次のリンクの説明に従ってphpMyAdminをインストールしてください。

  • Ubuntu18.04LTSにLAMPスタックを使用してphpMyAdminをインストールする

おめでとう! Ubuntu18.04LTSサーバーでLAMPスタックを正常にセットアップしました。

また読む:

  • Ubuntu 18.04 LTSにNginx、MariaDB、PHP(LEMP)スタックをインストールします
  • Arch LinuxにApache、MariaDB、PHP(LAMP)スタックをインストールします
  • Arch LinuxにNginx、MariaDB、PHP(LEMP)スタックをインストールします

そして、今のところこれですべてです。ご覧のとおり、UbuntuでのLAMPスタックの設定は非常に簡単で簡単です。

参照:

  • デジタルオーシャン

Ubuntu
  1. Linux、Apache、MySQL、PHP(LAMP)スタックをUbuntu16.04にインストールする方法

  2. Ubuntu22.04LTSにLAMPスタックをインストールする方法

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

  1. Apache 2、PHP 5、MySQLを使用したUbuntu 14.10 LAMPサーバーチュートリアル(MariaDB)

  2. (MySQLの代わりに)Apache 2、PHP 5、MariaDBを使用したUbuntu15.04LAMPサーバーチュートリアル

  3. (MySQLの代わりに)Apache 2.4、PHP 5、MariaDBを使用したUbuntu15.10LAMPサーバーチュートリアル

  1. Ubuntu 16.04(LTS)Apache、PHP 7、およびMySQLを使用したLAMPサーバーのチュートリアル

  2. Ubuntu 22.04にLAMPスタック(Apache、MariaDB、PHP)をインストールします

  3. Linux、Apache、MySQL、PHP(LAMP)スタックをUbuntu 16.04 /Ubuntu14.04にインストールする方法