アンドロイド

DrupalをUbuntu 18.04にインストールする方法

How to Install and Configure Nextcloud with Apache on Ubuntu 18.04 LTS

How to Install and Configure Nextcloud with Apache on Ubuntu 18.04 LTS

目次:

Anonim

Drupalは、世界で最も人気のあるオープンソースCMSプラットフォームの1つです。 PHPで書かれており、小規模な個人ブログから大規模な企業、政治、政府のサイトに至るまで、さまざまなタイプのWebサイトを構築するために使用できます。

このチュートリアルでは、Ubuntu 18.04マシンにDrupal 8.6をインストールする方法を示します。 Drupalをインストールする方法は複数あります。 このチュートリアルでは、Drupalプロジェクト用のDrupalプロジェクト用のコンポーザーテンプレートを使用してDrupal 8.6をインストールするために必要な手順を説明します。

NginxをWebサーバーとして使用し、最新のPHP 7.2とMySQL / MariaDBをデータベースサーバーとして使用します。

前提条件

このチュートリアルを続行する前に、次の前提条件を満たしていることを確認してください。

  • パブリックサーバーIPを指すドメイン名があります。 example.com を使用し example.com 。次の手順に従ってNginxをインストールします。ドメインのSSL証明書をインストールします。 以下の手順に従って、無料のLet's Encrypt SSL証明書をインストールできます。

あなたが始める前に

パッケージインデックスとシステムパッケージを最新バージョンに更新します。

sudo apt update && sudo apt upgrade

1. MySQLデータベースを作成する

sudo apt install mysql-server MySQLの新規インストールの場合、 mysql_secure_installation コマンドを実行して、MySQLサーバーのセキュリティを改善することをお勧めします。

次に、MySQLシェルにログインして、新しいデータベースとユーザーアカウントを作成し、ユーザーに適切な権限を付与する必要があります。

MySQLシェルにログインするには、次のコマンドを入力し、プロンプトが表示されたらパスワードを入力します。

mysql -u root -p

drupal という名前のデータベースを作成するには、 drupaluser という名前のユーザーを作成し、必要な権限をユーザーに付与するには、次のコマンドを実行します。

CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'change-with-strong-password';

2. PHPをインストールする

Ubuntu 18.04のデフォルトのPHPバージョンであるPHP 7.2は、Drupal 8.6で完全にサポートおよび推奨されています。 NginxをWebサーバーとして使用するため、PHP-FPMもインストールします。

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

sudo apt install php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

PHP-FPMサービスは、インストールプロセスの完了後に自動的に開始されます。サービスステータスを出力することで確認できます。

systemctl status php7.2-fpm

出力は、fpmサービスがアクティブで実行中であることを示す必要があります。

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-05-19 19:54:13 UTC; 9h ago Docs: man:php-fpm7.2(8) Main PID: 17781 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 507) CGroup: /system.slice/php7.2-fpm.service ├─17781 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─17796 php-fpm: pool www └─17797 php-fpm: pool www

3. Composerをインストールする

ComposerはPHPの依存関係マネージャーであり、これを使用してDrupalテンプレートをダウンロードし、必要なすべてのDrupalコンポーネントをインストールします。

composerをグローバルにインストールするには、curlを使用してComposerインストーラーをダウンロードし、ファイルを /usr/local/bin ディレクトリーに移動します。

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

composerのバージョンを印刷して、インストールを確認します。

composer --version

出力は次のようになります。

Composer version 1.6.5 2018-05-04 11:44:59

4. Drupalをインストールする

composerがインストールされたので、次に進み、 /var/www/my_drupal ディレクトリー内のcomposerテンプレートを使用して新しいDrupalプロジェクトを作成できます。

sudo composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction

上記のコマンドは、テンプレートをダウンロードし、必要なすべてのphpパッケージを取得し、インストールするプロジェクトを準備するためにいくつかのスクリプトを実行します。 このプロセスには数分かかる場合があり、成功すると、出力の終わりは次のようになります。

Create a sites/default/settings.php file with chmod 0666 Create a sites/default/files directory with chmod 0777

次のステップは、Drushを使用してDrupalをインストールすることです。 以下のコマンドでは、ステップ1で作成したMySQLデータベースとユーザー情報を渡します。

cd /var/www/my_drupal sudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal

インストーラーから次のメッセージが表示されます。続行するにはEnterキーを押してください。

You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no):

インストールが完了すると、スクリプトは管理ユーザー名とパスワードを出力します。 出力は次のようになります。

Starting Drupal installation. This takes a while. Consider using the --notify global option. Installation complete. User name: admin User password: XRkC9Q5WN9

最後に、Webサーバーがサイトのファイルとディレクトリに完全にアクセスできるように、正しいアクセス許可を設定する必要があります。 NginxとPHPは両方とも www-data ユーザーおよび www-data グループとして実行されているため、次のコマンドを発行する必要があります。

sudo chown -R www-data: /var/www/my_drupal

5. Nginxを構成する

このチュートリアルの前提条件を確認していない場合は、すでにSSL証明書付きのNginxがシステムにインストールされているはずです。

新しいDrupalプロジェクトの新しいサーバーブロックを作成するには、公式のNginxサイトのNginxレシピを使用します。

テキストエディターを開き、次のファイルを作成します。

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

# Redirect HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; root /var/www/my_drupal/web; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ \..*/.*\.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Block access to scripts in site files directory location ~ ^/sites/+/files/.*\.php$ { deny all; } # 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 /index.php?$query_string; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } # Don't allow direct access to PHP files in the vendor directory. location ~ /vendor/.*\.php$ { deny all; return 404; } location ~ '\.php$|^/update.php' /.*)$; include fastcgi_params; # Block httpoxy attacks. See https://httpoxy.org/. fastcgi_param HTTP_PROXY ""; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param QUERY_STRING $query_string; fastcgi_intercept_errors on; fastcgi_pass unix:/run/php/php7.2-fpm.sock; # Fighting with Styles? This little gem is amazing. # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6 location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7 try_files $uri @rewrite; } # Handle private files through Drupal. Private file's path can come # with a language prefix. location ~ ^(/+)?/system/files/ { # For Drupal >= 7 try_files $uri /index.php?$query_string; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { try_files $uri @rewrite; expires max; log_not_found off; } } example.comをDrupalドメインに置き換え、SSL証明書ファイルへの正しいパスを設定することを忘れないでください。 すべてのHTTP要求はHTTPSにリダイレクトされます。 この構成で使用されるスニペットは、このガイドで作成されます。

sites-enabled ディレクトリへのシンボリックリンクを作成して、サーバーブロックを有効にします。

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Nginxサービスを再起動する前に、構文エラーがないことを確認するテストを行います。

sudo nginx -t

エラーがない場合、出力は次のようになります。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

最後に、次のように入力してNginxサービスを再起動します。

sudo systemctl restart nginx

6.インストールのテスト

ブラウザを開いてドメインを入力し、インストールが成功すると仮定すると、次のような画面が表示されます。

管理者としてログインし、新しいDrupalインストールのカスタマイズを開始できます。

7. Drupalモジュールとテーマをインストールする

Drupalプロジェクトがインストールされたので、いくつかのモジュールとテーマをインストールする必要があります。 Drupalのモジュールとテーマはカスタムコンポーザーリポジトリでホストされ、drupal-projectはデフォルトで設定します。

モジュールまたはテーマをインストールするには、プロジェクトディレクトリに移動して composer require drupal/module_or_theme_name と入力 composer require drupal/module_or_theme_name です。 たとえば、Pathautoモジュールをインストールする場合は、次のコマンドを実行する必要があります。

cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto sudo -u www-data を追加することにより、ユーザー www-data としてコマンドを実行し www-data

Using version ^1.3 for drupal/pathauto./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 3 installs, 0 updates, 0 removals - Installing drupal/token (1.5.0): Downloading (100%) - Installing drupal/ctools (3.2.0): Downloading (100%) - Installing drupal/pathauto (1.3.0): Downloading (100%) Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested. Writing lock file Generating autoload files > DrupalProject\composer\ScriptHandler::createRequiredFiles

上記の出力からわかるように、composerはすべてのパッケージの依存関係もインストールします。

8. Drupalコアを更新する

アップグレードする前に、ファイルとデータベースのバックアップを取ることをお勧めします。 バックアップと移行モジュールを使用するか、データベースとファイルを手動でバックアップできます。

インストールファイルをバックアップするには、次のrsyncコマンドを使用できます。もちろん、インストールディレクトリへの正しいパスを使用する必要があります。

sudo rsync -a /var/www/my_drupal/ /var/www/my_drupal_$(date +%F)

データベースをバックアップするには、標準の mysqldump コマンドを使用できます。

mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql

または drush sql-dump

cd /var/www/my_drupal vendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql

バックアップを作成したので、次のコマンドを実行して、すべてのDrupalコアファイルを継続して更新できます。

sudo -u www-data composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

結論

おめでとうございます。コンポーザーを使用してDrupal 8を正常にインストールし、モジュールとテーマのインストール方法を学習しました。 これで、サイトのカスタマイズを開始できます。 Drupal 8ユーザーガイドは、Drupalインストールを管理する方法の詳細を知るための出発点として適しています。 GithubのDrupal Composerテンプレートプロジェクトもご覧ください。

ubuntu drupal mysql mariadb cms nginx composer