LAMPスタックは、動的なWebサイトやWebベースのアプリケーションを実行および展開するために使用できる人気のあるオープンソースのWeb開発プラットフォームです。通常、LAMPスタックは、Apache Webサーバー、MariaDB / MySQLデータベース、PHP / Python/Perlプログラミング言語で構成されます。 LAMPは、Linux、Apache、MariaDB / MYSQL、PHP / Python/Perlの頭字語です。このステップバイステップのチュートリアルでは、Ubuntu 20.04 LTSサーバーエディションにApache、MySQL、PHP(LAMPスタック)をインストールする方法について説明します。
Ubuntu 20.04 LTSにApache、MySQL、PHP(LAMPスタック)をインストールする
このチュートリアルでは、次のUbuntuシステムを使用します。
- オペレーティングシステム :Ubuntu20.04LTSサーバーエディション
- IPアドレス :192.168.225.52 / 24
まず、Apacheサーバーをインストールしましょう。
1。 UbuntuにApacheWebサーバーをインストールする
まず、コマンドを使用してUbuntuサーバーを更新します:
$ sudo apt update
$ sudo apt upgrade
次に、ApacheWebサーバーをインストールします。
$ sudo apt install apache2
次のコマンドを使用して、ApacheWebサーバーが実行されているかどうかを確認します。
$ sudo systemctl status apache2
サンプル出力は次のようになります:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabl> Active: active (running) since Fri 2020-05-29 07:02:26 UTC; 25s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 23996 (apache2) Tasks: 55 (limit: 2283) Memory: 5.1M CGroup: /system.slice/apache2.service ├─23996 /usr/sbin/apache2 -k start ├─23998 /usr/sbin/apache2 -k start └─23999 /usr/sbin/apache2 -k start May 29 07:02:26 ubuntuserver systemd[1]: Starting The Apache HTTP Server... May 29 07:02:26 ubuntuserver apachectl[23981]: AH00558: apache2: Could not reliably det> May 29 07:02:26 ubuntuserver systemd[1]: Started The Apache HTTP Server.
おめでとう! Apacheサービスが稼働しています!!
1.1。 UFWファイアウォール経由でApacheWebサーバーを許可する
UFW 、 Uの略です 複雑なF ire w allは、使いやすいように設計されたnetfilterファイアウォールを管理するためのプログラムです。 UFWは、すべてのUbuntuバージョンでデフォルトで使用できます。
デフォルトでは、Ubuntu 20.04 LTSでUFWファイアウォールを有効にしている場合、リモートシステムからApacheWebブラウザーにアクセスすることはできません。 http
を許可する必要があります およびhttps
以下の手順に従ってポートを作成します。
まず、コマンドを使用して、Ubuntuシステムで使用可能なアプリケーションプロファイルを一覧表示します。
$ sudo ufw app list
サンプル出力:
Available applications: Apache Apache Full Apache Secure OpenSSH
ご覧のとおり、ApacheおよびOpenSSHアプリケーションにはUFWプロファイルがインストールされています。 ufw app info "Profile Name"
を使用して、各プロファイルとそれに含まれるルールに関する情報を一覧表示できます。 コマンド。
“Apache Full”
を調べてみましょう コマンドを使用したプロファイル:
$ 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.2。 ApacheWebサーバーをテストする
次に、Webブラウザーを開き、 http://localhost/
に移動してApacheテストページにアクセスします。 またはhttp://IP-Address/
。
以下に示すような「Apache2Ubuntuのデフォルトページ」が表示されたら、準備は完了です。 Apacheサーバーが機能しています!
2。 Ubuntuに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: enabled) Active: active (running) since Fri 2020-05-29 07:15:22 UTC; 2min 8s ago Main PID: 25242 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 2283) Memory: 323.7M CGroup: /system.slice/mysql.service └─25242 /usr/sbin/mysqld May 29 07:15:16 ubuntuserver systemd[1]: Starting MySQL Community Server... May 29 07:15:22 ubuntuserver systemd[1]: Started MySQL Community Server.
上記の出力でわかるように、MySQLは実行されています!
2.1。 Mysqlのデータベース管理ユーザー(root)パスワードを設定する
デフォルトでは、MySQL root
ユーザーパスワードが空白です。データベース管理者アカウントに空のパスワードを使用することはお勧めしません。次のスクリプトを実行して、MySQLサーバーを保護する必要があります。
$ sudo mysql_secure_installation
"VALIDATE PASSWORD"
を設定するかどうかを尋ねられます コンポーネントかどうか。このコンポーネントを使用すると、ユーザーはデータベース資格情報の強力なパスワードを構成できます。有効にすると、パスワードの強度が自動的にチェックされ、ユーザーは十分に安全なパスワードのみを設定するように強制されます。 無効のままにしておくのが安全です 。ただし、データベースの資格情報には強力で一意のパスワードを使用する必要があります。このコンポーネントを有効にしたくない場合は、任意のキーを押してパスワード検証の部分をスキップし、残りの手順を続行してください。
y
と入力します VALIDATE PASSWORD
を設定する場合 コンポーネント:
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT 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 component? 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: 0
次に、MySQL root
のパスワードを入力します ユーザー。 MySQL root
のパスワードを使用する必要があることに注意してください 前の手順で選択したパスワードポリシーに応じてユーザー。プラグインを有効にしなかった場合は、任意の強力で一意のパスワードを使用してください。
Please set the password for root here. New password: Re-enter new password: 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
パスワードを2回入力すると、パスワードの強度が表示されます(この場合は 100 )。問題がない場合は、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!
終わり! MySQLのroot
を設定しました ユーザーのパスワード。
2.2。 MySQLrootユーザーの認証方法を変更する
デフォルトでは、MySQLrootユーザーはauth_socket
を使用して認証するように設定されています MySQL5.7以降のUbuntuのプラグイン。セキュリティは強化されますが、phpMyAdminなどの外部プログラムを使用してデータベースサーバーにアクセスすると、事態が複雑になります。この問題を修正するには、認証方法をauth_socketから caching_sha2_password
に変更する必要があります。 またはmysql_native_password
。
MySQL 8.0バージョンの時点で、推奨されるデフォルトの認証プラグインは caching_sha2_password
です。 。 caching_sha2_password
認証プラグインは、mysql_native_password
よりも安全なパスワード暗号化を提供します プラグイン。
認証プラグインを変更するには、次のコマンドを使用してMySQLプロンプトにログインします。
$ sudo mysql
または、
$ mysql -u root -p
MySQLのroot
を入力します 前の手順で設定したパスワード。
mysqlプロンプトで次のコマンドを実行して、すべてのMySQLユーザーアカウントの現在の認証方法を見つけます。
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
出力例:
+------------------+------------------------------------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | debian-sys-maint | $A$005$=s%UO"�[email protected]>[email protected] | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | | auth_socket | localhost | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)
ご覧のとおり、mysqlrootユーザーはauth_socket
を使用します 認証用のプラグイン。
auth_socket
を変更するには caching_sha2_password
へのプラグイン 、MySQLプロンプトで次のコマンドを実行します。 VALIDATE PASSWORD
を有効にしている場合 プラグイン、現在のポリシー要件に基づいて強力なパスワードを使用していることを確認してください。ストロングは、大文字、小文字、数字、特殊文字を含む8文字以上で構成する必要があります。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';
Password123#@!
を置き換えます 上記のコマンドで選択した強力で一意のパスワードを使用します。
コマンドを使用して変更を更新します:
mysql> FLUSH PRIVILEGES;
次に、コマンドを使用して、現在の認証プラグインが変更されているかどうかを確認します。
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
出力例:
良い!これで、MySQLのroot
ユーザーはパスワードを使用して認証し、MySQLシェルにアクセスできます。
MySQLプロンプトを終了します:
mysql> exit
注:
caching_sha2_password
にもかかわらず プラグインは強化された安全な暗号化を提供し、既存のMySQLインストールとの互換性の問題がいくつかあります。詳細については、このリンクを参照してください。 。互換性の問題が発生した場合は、 mysql_native_password
を設定する必要があります デフォルトの認証プラグインとしてのプラグイン。
mysql_native_password
に変更するには プラグインの場合、MySQLプロンプトで次のコマンドを実行します。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
コマンドを使用して変更を更新します:
mysql> FLUSH PRIVILEGES;
ここで、認証方法が変更されているかどうか、またはコマンドを使用していないかどうかをもう一度確認します。
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
出力例:
mysqlプロンプトを終了します:
mysql> exit
3。 UbuntuにPHPをインストールする
PHPをインストールするには、次のコマンドを実行します:
$ sudo apt install php libapache2-mod-php php-mysql
PHPをインストールした後、 info.php
を作成します Apacheルートドキュメントフォルダ内のファイル。通常、Apacheルートドキュメントフォルダは /var/www/html/
になります または/var/www/
ほとんどのDebianベースのLinuxディストリビューションで。 Ubuntu 20.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.1。 PHPをテストする
Webブラウザーを開き、 http://IP-address/info.php
に移動します。 URL。
バージョン、サーバーAPI、有効なすべての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.2。 PHPモジュールをインストールする
PHPの機能を向上させるために、いくつかの追加のPHPモジュールをインストールできます。
使用可能なPHPモジュールを一覧表示するには、次のコマンドを実行します。
$ sudo apt-cache search php- | less
出力例:
矢印キーを使用して結果を確認します。終了するには、 q
と入力します 。
php-gd など、特定のphpモジュールの詳細を検索するには 、実行:
$ sudo apt-cache show php-gd
PHPモジュールをインストールするには、次のコマンドを実行します。
$ sudo apt install php-gd
phpモジュールをインストールした後、Apacheサービスを再起動することを忘れないでください。モジュールがロードされているかどうかを確認するには、ブラウザでinfo.phpファイルを開き、存在するかどうかを確認します。
おめでとう!ご覧のとおり、Ubuntu 20.04 LTSにapache、mysql、php(LAMPスタック)をインストールするのは非常に簡単です。これで、LAMPスタックを使用してウェブサイトのホスティングを開始できます。
次を読む:
- Ubuntu20.04LTSにLAMPスタックを使用してphpMyAdminをインストールする
関連記事:
- Ubuntu 20.04 LTSにNginx、MySQL、PHP(LEMPスタック)をインストールします
- CentOS 8にApache、MariaDB、PHP(LAMPスタック)をインストールする