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

Ubuntu 16.04にNginx、PHP-FPM、SSLを使用してDrupal8.1をインストールする方法

Drupalは、PHPをベースにした有名なオープンソースのコンテンツ管理システムです。これは無料で利用でき、GNU GeneralPublicLicenseの下でリリースされます。 Drupalは、巨大な国際的なWebサイトから個人のブログ、企業や政府のサイトまで、あらゆるサイズのWebサイトに使用できます。 drupalのコア部分は「DrupalCore」と呼ばれ、基本的なコンテンツ管理システム、ユーザー管理、メニュー管理、レイアウトのカスタマイズ、およびシステム管理が含まれています。 Drupal Coreはプラグインによって拡張できますが、これまで、drupalコミュニティにはDrupal用に31.000を超えるモジュールが提供されてきました。

このチュートリアルでは、NginxウェブサーバーとしてDrupal 8.1.10をインストールし、データベースサーバーとしてMariaDB 10をインストールし、PHPリクエストを処理するためにPHP-FPM(PHP 7.0)をインストールします。 DrupalWebサイトを保護するためにSSL証明書をインストールする方法も示します。

前提条件
  • Ubuntu16.04-64ビットバージョン。
  • root権限。

ステップ1-Ubuntuシステムを更新します

sshを使用してubuntuサーバーにログインし、rootユーザーになって、ubuntuリポジトリを更新します。

sudo su
sudo apt-get update

ステップ2-NginxとPHP-FPMをインストールします

Nginxまたは「engine-x」は、メモリ/RAMの使用量が少ない高性能に重点を置いた高速HTTPサーバーです。 Nginxは、HTTP、HTTPS、POP3、およびIMAPプロトコルのリバースプロキシとしても使用できます。このチュートリアルでは、SSL対応のHTTPサーバーとしてNginxを使用します。

次のaptコマンドを使用してsudo/rootユーザーとしてNginxをインストールします。

sudo apt-get install nginx -y

次に、drupalコアに必要なphp-gd拡張子を付けてphp7.0-fpmをインストールします。

sudo apt-get install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-xml -y

次のステップでは、Nginxを構成します。

ステップ3-NginxとPHP-FPMを構成する

このステップでは、php-fpmを使用してPHPページのHTTPリクエストを処理するようにNginxを構成します。 php-fpmディレクトリ「/etc/php/7.0/fpm」に移動し、「php.ini」ファイルを編集します。

cd /etc/php/7.0/fpm/
vim php.ini

オンライン761 、cgi.fix_pathinfo行のコメントを解除し、値を「 0」に変更します "。

cgi.fix_pathinfo=0

ファイルを保存してエディタを終了します。

次に、デフォルトのNginx仮想ホスト構成を変更します。 「デフォルト」ファイルを編集して、php-fpmディレクティブを有効にします。

cd /etc/nginx/sites-available/
vim default

コメント解除行51-58 nginxでphp-fpmを使用するには。

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

ファイルを保存して終了します。

次に、コマンド「 nginx -t 」を使用して、Nginx構成をテストします。 "それが有効であることを確認するには:

nginx -t

エラーがない場合は、nginxとphp-fpmサービスを再起動します。

systemctl restart nginx
systemctl restart php7.0-fpm

次に、ウェブディレクトリ「/ var / www / html」に新しいphp情報ファイルを作成して、php-fpmがnginxで正しく機能していることをテストします。

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

サーバーIP(私の場合はhttp:// 192.168.1.4 / info.php)でinfo.phpファイルにアクセスします。 Webブラウザで。結果は以下のスクリーンショットのようになります。

ステップ4-MariaDBをインストールして構成する

MariaDBは、MYSQLリレーショナルデータベース管理システムのデータベースサーバーフォークであり、MySQLのドロップイン置換機能を提供します。

apt-getコマンドを使用してMariaDBの最新バージョンをインストールします:

sudo apt-get install mariadb-client mariadb-server -y

インストールが完了したら、MariaDBを起動します:

systemctl start mysql

MariaDBサービス名は「mysql」であるため、systemctlコマンドはここでmysqlという単語を使用します。

次に、以下のコマンドを使用してMariaDBのユーザー名とパスワードを構成します。

mysql_secure_installation
mysql_secure_installation

Set root password? [Y/n] Y
New password:
Re-enter new password:

Remove anonymous users? [Y/n] Y
 ... Success!

Disallow root login remotely? [Y/n] Y
 ... Success!

Remove test database and access to it? [Y/n] Y
 ... Success!

Reload privilege tables now? [Y/n] Y
 ... Success!

パスワードを使用してMariaDBシェルにログインし、「 drupaldb」という名前のdrupal用の新しいデータベースを作成します。 "そして新しいMariaDB/MySQLユーザーを作成します"drupaluser "パスワード付き"[メール保護] "そして最後に、データベースへのユーザー権限を付与します。インストールには、「[メールで保護]」ではなく、安全なパスワードを選択してください。

mysql -u root -p


create database drupaldb;
create user [email protected] identified by '[email protected]';
grant all privileges on drupaldb.* to [email protected] identified by '[email protected]';
flush privileges;
\q

データベース"drupaldb "with user" drupaluser "が作成されました。

ステップ5-自己署名SSL証明書を生成する

/ etc / nginxに移動します ディレクトリを作成し、SSL構成ファイル用に「ssl」という名前の新しいディレクトリを作成します。

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl

次に、以下のopensslコマンドを使用して新しい自己署名SSL証明書を生成します。

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/drupal.key -out /etc/nginx/ssl/drupal.crt

要求された情報を入力します。 SSL証明書ファイルが生成されました。秘密鍵ファイル「drupal.key」のアクセス許可を600に変更します。

chmod 600 drupal.key

ステップ6-Drupal用にVirtualHostを構成する

ドメイン名「drupal8.me」でディレクトリ「/var/www/drupal8」にDrupal8をインストールします。インストールのドメイン名を、このdrupalインストールを使用するWebサイトのドメイン名に置き換えてください。それでは、ディレクトリを作成しましょう:

mkdir -p /var/www/drupal8

次に、Nginx仮想ホストディレクトリ「/ etc / nginx / sites-available /」に移動し、vimエディターで新しいファイル「drupal8」を作成します。

cd /etc/nginx/sites-available/
vim drupal8

以下のdrupalのNginx構成をファイルdrupal8に貼り付けます:

server {
    server_name drupal8.me;
    root /var/www/drupal8; ## <-- Your only path reference.

    listen 80;
    listen [::]:80;
    listen 443 default ssl;

    ssl_certificate      /etc/nginx/ssl/drupal.crt;
    ssl_certificate_key  /etc/nginx/ssl/drupal.key;

    # Redirect HTTP to HTTPS
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16;
        deny all;
    }

    location ~ \..*/.*\.php$ {
        return 403;
    }

    location ~ ^/sites/.*/private/ {
        return 403;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/)\. {
        return 403;
    }

    location / {
        # try_files $uri @rewrite; # For Drupal <= 6
        try_files $uri /index.php?$query_string; # For Drupal >= 7
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }

    # In Drupal 8, we must also match new paths where the '.php' appears in the middle,
    # such as update.php/selection. The rule we use is strict, and only allows this pattern
    # with the update.php front controller.  This allows legacy path aliases in the form of
    # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
    # any paths like that, then you might prefer to use a laxer rule, such as:
    #   location ~ \.php(/|$) {
    # The laxer rule will continue to work if Drupal uses this new URL pattern with front
    # controllers other than update.php in a future release.
    location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    # Fighting with Styles? This little gem is amazing.
    # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
    location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7
        try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

ファイルを保存してエディタを終了します。

Drupal仮想ホストファイルが作成されました。次に、「sites-enabled」ディレクトリにファイルへのシンボリックリンクを作成してアクティブ化する必要があります。

ln -s /etc/nginx/sites-available/drupal8 /etc/nginx/sites-enabled/

Nginx構成をテストし、Nginxを再起動します:

nginx -t
systemctl restart nginx

ステップ7-Drupalをインストールして構成する

Drupalのインストールを開始する前に、gitとdrushをインストールする必要があります。 Drushは、Drupal用のコマンドラインシェルおよびUnixスクリプトインターフェイスです。次のコマンドを使用してインストールします。

sudo apt-get install git drush -y

次に、前に作成したdrupal8ディレクトリに入り、wgetまたはdrushを使用してDrupalをダウンロードします。ここではwgetを使用します:

cd /var/www/drupal8
wget https://ftp.drupal.org/files/projects/drupal-8.1.10.tar.gz

drushを使用する場合は、代わりに以下のコマンドを実行してください。

drush dl drupal-8

ダウンロードが完了するまで待ってから、すべてのDrupalファイルをメインディレクトリに移動します。

tar -xzvf drupal-8.1.10.tar.gz
mv drupal-8.1.10/* .
rm -rf drupal-8.1.10

次のステップでは、Drupal設定ファイルを構成します。 Drupalメインディレクトリから「sites/default」ディレクトリに移動し、2つの構成ファイル「 settings.php」をコピーします "と"services.yml ":

cd sites/default
cp default.settings.php settings.php
cp default.services.yml services.yml

次に、「ファイル」という名前の新しいディレクトリを作成する必要があります 「sites/default」ディレクトリ内。「chmod」コマンドにより、構成ファイルと「files」ディレクトリがDrupalインストール用に書き込み可能になります。

mkdir files/
chmod a+w *

次に、Drupalサイト(私の場合は http://drupal8.me)にアクセスします。 Webブラウザーを使用すると、https接続に自動的にリダイレクトされ、Drupalインストーラーページが表示されます。

このガイドは、コマンドのDrupal 8.1.8から8.1.10に更新され、本日リリースされたDrupalの最新のセキュリティパッチが含まれていることに注意してください。インターフェイスが変更されていないため、スクリーンショットには8.1.8のバージョン番号が表示されます。 。インストールには常に最新の安定したDrupalバージョンを使用し、上記のインストールコマンドのバージョン番号を置き換える必要があります。

言語を選択してください。「英語」を使用します ここ。

[保存して続行]をクリックします

次に、インストールタイプを選択します。標準タイプまたは最小タイプを使用できます。 「標準」を使用します "。

これで、データベース構成ページが表示されます。 Drupal用に作成したデータベースのデータベースの詳細を入力します。

インストールが完了するまで待ちます。

次に、サイト名、ユーザー、管理者のパスワード、メールアドレスなどのサイトプロファイル設定を構成する必要があります。 など

これでDrupalがインストールされました。 Drupalのホームページにリダイレクトされます。

drupal構成ファイル「settings.php」および「services.yml」のアクセス許可に関するエラーメッセージが表示される場合があります。次のコマンドを使用して、権限を変更するだけです。

cd sites/default/
chmod 644 settings.php services.yml

これで、Drupal8.1がubuntu16.04にNginxとSSLとともにインストールされました。

結論

Drupalは、PHPに基づく無料のオープンソースコンテンツ管理フレームワークです。個人のブログ、個人のホームページ、企業のWebサイトに使用できます。 DrupalはGNU-GPLライセンスの下で配布されています。 Drupalの主要コンポーネントは「Drupalコア」と呼ばれ、これまでDrupalコミュニティはそれを拡張するために31.000を超えるモジュールを開発しました。現在の安定バージョンは8.1.10です。 Drupalはインストールと構成が簡単で、WebサーバーとしてNginxまたはApacheを使用し、DrupalサーバーでPHPリクエストを処理するためにPHP-FPMを使用できます。


Ubuntu
  1. Ubuntu 20.04にPHPとNginx(LEMP)をインストールしてセットアップする方法

  2. UbuntuVPSにNginxとPHP-FPMを使用してOwnCloud7をインストールします

  3. Ubuntu20.04にNginxを使用してPHP7.4をインストールする方法

  1. Ubuntu18.04または20.04にPHP7.4および8.0をインストールする方法

  2. Nginxを使用してNextcloudをインストールし、Ubuntu20.04LTSでSSLを暗号化する方法

  3. Ubuntu11.10にPHP5とMySQLを使用してNginxをインストールする方法

  1. Ubuntu 15.10にNginx、PHP-FPM、SSLを使用してDrupal8をインストールする方法

  2. Ubuntu 15.10にApache、MySQL、SSLを使用してDrupal8をインストールする方法

  3. Ubuntu15.10にNginxとSSLを使用してOpenCart2をインストールする方法