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

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

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

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

前提条件
  • Ubuntu15.10-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を使用してphp-fpmをインストールします。

apt-get install php5-fpm php5-cli php5-gd php5-mysql -y

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

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

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

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

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

cgi.fix_pathinfo=0

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

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

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

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

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

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

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

nginx -t

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

systemctl restart nginx
systemctl restart php5-fpm

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

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

サーバーIPにアクセスします: 192.168.1.101 / 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

パスワードを使用して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;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/var/run/php5-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ディレクトリに入り、gitまたはdrushコマンドを使用してDrupalをダウンロードします。

cd /var/www/drupal8
git clone --branch 8.0.x http://git.drupal.org/project/drupal.git

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

drush dl drupal-8

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

mv drupal/* /var/www/drupal8/

次のステップでは、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用に作成したデータベースのデータベースの詳細を入力します。

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

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

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

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

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

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

結論

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


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

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

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

  1. Ubuntu16.04にPostgreSQLとNginxを使用してMattermostをインストールする方法

  2. Ubuntu16.04にNginxでMediaWikiをインストールする方法

  3. Ubuntu18.04にNginxとLetsencryptを使用してMagento2をインストールする方法

  1. Ubuntu15.04にPostgreSQLとNginxを使用してGitlabをインストールする方法

  2. Ubuntu15.10にNginxを使用してMagentoをインストールする方法

  3. Ubuntu15.10にNginxでMailpileをインストールする方法