このチュートリアルでは、Ubuntu 18.04にNginx、MariaDB、PHP7.2(LEMP)をインストールする方法を紹介します。ソフトウェアスタックは、一緒にバンドルされたソフトウェアツールのセットです。 LEMPは、Linux、Nginx(Engine-X)、MariaDB / MySQL、およびPHPの略で、これらはすべてオープンソースであり、無料で使用できます。これは、動的なWebサイトおよびWebアプリケーションを強化する最も一般的なソフトウェアスタックです。 Linuxはオペレーティングシステムです。 NginxはWebサーバーです。 MariaDB / MySQLはデータベースサーバーであり、PHPは動的Webページの生成を担当するサーバー側のスクリプト言語です。
前提条件
このチュートリアルに従うには、Ubuntu18.04OSをローカルコンピューターまたはリモートサーバーで実行する必要があります。 VPS(仮想プライベートサーバー)をお探しの場合は、この特別なリンクをクリックして、DigitalOceanで50ドルの無料クレジットを取得できます。 (新規ユーザーのみ)。すでにDigitalOceanユーザーである場合は、この特別なリンクをクリックして、Vultrで$ 50の無料クレジットを取得できます(新規ユーザーのみ)。面倒なことはせずに、始めましょう。
ステップ1:ソフトウェアパッケージを更新する
LEMPスタックをインストールする前に、Ubuntu 18.04 OSで次のコマンドを実行して、リポジトリとソフトウェアパッケージを更新することをお勧めします。
sudo apt update sudo apt upgrade
ステップ2:NginxWebサーバーをインストールする
Nginxは高性能のWebサーバーであり、最近非常に人気があります。また、リバースプロキシおよびキャッシングサーバーとしても使用できます。このコマンドを入力して、NginxWebサーバーをインストールします。
sudo apt install nginx
インストール後、次のコマンドを実行することで、Ubuntuの起動時にNginxが自動起動できるようにすることができます。
sudo systemctl enable nginx
次に、次のコマンドでNginxを起動します:
sudo systemctl start nginx
次に、そのステータスを確認します。
systemctl status nginx
出力:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-05-17 02:20:05 UTC; 2min 56s ago
Docs: man:nginx(8)
Main PID: 19851 (nginx)
Tasks: 2 (limit: 2059)
CGroup: /system.slice/nginx.service
├─19851 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─19853 nginx: worker process
「有効 」は、起動時の自動起動が有効になっていて、Nginxが実行されていることを示しています。上記のコマンドは、実行後すぐには終了しないことに注意してください。 「q」を押す必要があります 」を終了します。
Nginxのバージョンを確認してください。
nginx -v
出力:
nginx version: nginx/1.14.0 (Ubuntu)
次に、ブラウザのアドレスバーにUbuntu18.04サーバーのパブリックIPアドレスを入力します。 「WelcometoNginx」Webページが表示されます。これは、NginxWebサーバーが正しく実行されていることを意味します。ローカルホストのUbuntu18.04コンピューターにLEMPをインストールする場合は、「127.0.0.1」と入力します。 またはlocalhost ブラウザのアドレスバーに表示されます。
一部のクラウドサーバープロバイダーはデフォルトですべての着信トラフィックをブロックする可能性があるため、ブラウザがNginxウェブサーバーに接続できない場合は、コントロールパネルでファイアウォールルールを設定する必要がある場合があります。
最後に、www-dataを作成する必要があります (Nginxユーザー)Webディレクトリの所有者として。デフォルトでは、rootユーザーが所有しています。
sudo chown www-data:www-data /usr/share/nginx/html -R
ステップ3:MariaDBデータベースサーバーをインストールする
MariaDBは、MySQLのドロップイン代替品です。これは、OracleがMySQLをクローズドソース製品に変える可能性があることを懸念しているMySQLチームの元メンバーによって開発されました。次のコマンドを入力して、Ubuntu18.04にMariaDBをインストールします。
sudo apt install mariadb-server mariadb-client
インストール後、MariaDBサーバーは自動的に開始されます。 systemctlを使用します ステータスを確認します。
systemctl status mariadb
出力:
● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-05-17 02:39:57 UTC; 49s ago
Main PID: 21595 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 2059)
CGroup: /system.slice/mariadb.service
└─21595 /usr/sbin/mysqld
実行されていない場合は、次のコマンドで開始します:
sudo systemctl start mariadb
起動時にMariaDBを自動的に起動できるようにするには、
を実行します。sudo systemctl enable mariadb
次に、インストール後のセキュリティスクリプトを実行します。
sudo mysql_secure_installation
MariaDBのrootパスワードの入力を求められたら、rootパスワードがまだ設定されていないため、Enterキーを押します。次に、 yと入力します MariaDBサーバーのルートパスワードを設定します。
次に、Enterキーを押して残りのすべての質問に答えることができます。これにより、匿名ユーザーが削除され、リモートrootログインが無効になり、テストデータベースが削除されます。このステップは、MariaDBデータベースセキュリティの基本的な要件です。 (Yが大文字になっていることに注意してください。これは、デフォルトの回答であることを意味します。)
デフォルトでは、UbuntuのMaraiDBパッケージはunix_socketを使用します ユーザーログインを認証します。これは基本的に、OSのユーザー名とパスワードを使用してMariaDBコンソールにログインできることを意味します。したがって、次のコマンドを実行して、MariaDBのrootパスワードを指定せずにログインできます。
sudo mariadb -u root
終了するには、
を実行しますexit;
MariaDBサーバーのバージョン情報を確認してください。
mariadb --version
ご覧のとおり、MariaDB10.1.29をインストールしました。
mariadb Ver 15.1 Distrib 10.1.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
ステップ4:PHP7.2をインストールする
PHP7.2はUbuntu18.04リポジトリに含まれており、PHP7.1よりもパフォーマンスがわずかに向上しています。次のコマンドを入力して、php7.2といくつかの一般的な拡張機能をインストールします。
sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl
PHP拡張機能は、WordPressのようなコンテンツ管理システム(CMS)に一般的に必要です。たとえば、インストールにphp7.2-xmlがない場合 、その後、WordPressサイトページの一部が空白になる可能性があり、Nginxエラーログで次のようなエラーを見つけることができます:
PHP message: PHP Fatal error: Uncaught Error: Call to undefined function xml_parser_create()
これらのPHP拡張機能をインストールすると、CMSがスムーズに実行されます。次に、php7.2-fpmを起動します。
sudo systemctl start php7.2-fpm
起動時に自動起動を有効にします。
sudo systemctl enable php7.2-fpm
ステータスの確認:
systemctl status php7.2-fpm
サンプル出力:
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor prese
Active: active (running) since Thu 2018-05-17 03:04:46 UTC; 2min 43s ago
Docs: man:php-fpm7.2(8)
Main PID: 31922 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
Tasks: 3 (limit: 2059)
CGroup: /system.slice/php7.2-fpm.service
├─31922 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
├─31939 php-fpm: pool www
└─31940 php-fpm: pool www
ステップ5:Nginxサーバーブロックを作成する
Nginxサーバーブロックは、Apacheの仮想ホストのようなものです。 PHPコードを実行するには不十分であり、変更すると混乱するため、デフォルトのサーバーブロックは使用しません。したがって、defaultを削除します sites-enabledのシンボリックリンク 次のコマンドを実行してディレクトリを作成します。 (/etc/nginx/sites-available/defaultとして引き続き利用できます 。)
sudo rm /etc/nginx/sites-enabled/default
次に、 /etc/nginx/conf.d/の下に新しいサーバーブロックファイルを作成します ディレクトリ。
sudo nano /etc/nginx/conf.d/default.conf
次のテキストをファイルに貼り付けます。次のスニペットは、NginxがIPv4ポート80とIPv6ポート80でキャッチオールサーバー名でリッスンするようにします。
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html/;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
# A long browser cache lifetime can speed up repeat visits to your page
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
# disable access to hidden files
location ~ /\.ht {
access_log off;
log_not_found off;
deny all;
}
} ファイルを保存して閉じます。次に、Nginx構成をテストします。
sudo nginx -t
テストが成功した場合は、Nginxをリロードします。
sudo systemctl reload nginx
ステップ6:PHPをテストする
Nginx WebサーバーでPHP-FPMをテストするには、info.phpを作成する必要があります。 ドキュメントのルートディレクトリにあるファイル。
sudo nano /usr/share/nginx/html/info.php
次のPHPコードをファイルに貼り付けます。
<?php phpinfo(); ?>
ファイルを保存して閉じます。ブラウザのアドレスバーに、server-ip-address/info.phpと入力します。 。 sever-ip-addressを置き換えます 実際のIPで。ローカルコンピューターでこのチュートリアルに従う場合は、「127.0.0.1/info.php」と入力します。 またはlocalhost/info.php 。
サーバーのPHP情報が表示されます。これは、PHPスクリプトがNginxWebサーバーで正しく実行できることを意味します。
おめでとうございます!これで、Ubuntu 18.04にNginx、MariaDB、PHP7.2が正常にインストールされました。サーバーのセキュリティのために、info.phpを削除する必要があります ハッカーに見られないように、今すぐファイルしてください。
sudo rm /usr/share/nginx/html/info.php
次のステップ
MySQL/MariaDBデータベースサーバー用のWebベースの管理パネルであるphpMyAdminをインストールすることをお勧めします。
- Ubuntu 18.04 LTSにNginx(LEMP)を使用してphpMyAdminをインストールする方法
LEMPスタックの上にWordPressをインストールして、独自のWebサイトやブログを作成することもできます。
- Nginx、MariaDB、PHP7.2(LEMP)を使用してUbuntu18.04にWordPressをインストールする
それでおしまい!このチュートリアルがUbuntu18.04LTSにLEMPスタックをインストールするお役に立てば幸いです。 。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、その他のヒントやコツを入手してください。気をつけて。