Drupalは、PHPをベースにした有名なオープンソースのコンテンツ管理システムです。これは無料で利用でき、GNU GeneralPublicLicenseの下でリリースされます。 Drupalは、巨大な国際的なWebサイトから個人のブログ、企業や政府のサイトまで、あらゆるサイズのWebサイトに使用できます。
drupalのコア部分は「DrupalCore」と呼ばれ、基本的なコンテンツ管理システム、ユーザー管理、メニュー管理、レイアウトのカスタマイズ、およびシステム管理が含まれています。 Drupal Coreはプラグインによって拡張できますが、これまで、drupalコミュニティにはDrupal用に31.000を超えるモジュールが提供されてきました。
このチュートリアルでは、Debian Buster10にDrupal9をインストールする方法を示します。LEMPスタック(Linux、Nginx、MySQL / MariaDB、およびPHP-FPM)でDrupalを実行し、SSLLetsencryptを使用してインストールを保護します。 。
前提条件
このガイドでは、2GBのRAM、50GBの空きディスク容量、2つのCPUを搭載した最新バージョンのDebianBuster10でDrupalのインストールをテストします。また、新しいパッケージをインストールしたり、システムソフトウェア構成を編集したりするには、rootsudo権限が必要です。
何をしますか?
- NginxWebサーバーをインストールする
- PHP-FPMのインストールと構成
- MariaDBのインストールと構成
- SSLLetsencryptを生成する
- Drupal9用のNginx仮想ホストのセットアップ
- Drupal9ソースコードをダウンロード
- Drupal9のインストール後
まず、DebianサーバーにNginxWebサーバーをインストールします。
システムで利用可能なリポジトリを更新し、以下のaptコマンドを使用してすべてのパッケージを最新バージョンにアップグレードします。
sudo apt update
sudo apt upgrade
次に、次のコマンドを使用してNginxWebサーバーパッケージをインストールします。
sudo apt install nginx -y
すべてのインストールが完了したら、Nginxサービスを開始し、システムブートに追加します。
systemctl start nginx
systemctl enable nginx
Nginxサービスが稼働しています。次のコマンドを使用して、サービスを確認してください。
systemctl status nginx
以下は、得られる結果です。
その結果、NginxサービスはDebianBuster10で稼働しています。
このステップでは、Drupalインストール用にDebian10にPHP-FPM7.3をインストールして構成します。
以下のaptコマンドを使用してPHPおよびPHP-FPMパッケージ7.3をインストールします。
sudo apt install php php-fpm php-gd php-common php-mysql php-apcu php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip -y
すべてのインストールが完了したら、「/ etc / php / 7.3」ディレクトリに移動し、vimエディターを使用して構成「php.ini」を編集します。
cd /etc/php/7.3/fpm/
vim php.ini
コメントを外し、詳細設定を以下のように変更します。
date.timezone = Asia/Singapore
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 600
cgi.fix_pathinfo = 0
保存して閉じます。
次に、PHP-FPMサービスを再起動し、システムブートに追加します。
systemctl restart php7.3-fpm
systemctl enable php7.3-fpm
PHP-FPMサービスは稼働しており、デフォルトでは、sockファイルの下で実行されています
次のコマンドを使用して、PHP-FPMサービスを確認します。
ss -plnt | grep php
systemctl status php7.3-fpm
以下は、得られる結果です。
その結果、DebianBuster10でのDrupal9のPHP-FPMのインストールと構成が完了しました。
PHPおよびPHP-FPMパッケージをインストールした後、MariaDBデータベースをインストールし、Drupal9用の新しいデータベースを作成します。
以下のaptコマンドを使用してMariaDBパッケージをインストールします。
sudo apt install mariadb-server mariadb-client
その後、MariaDBサービスを開始し、システムブートに追加します。
systemctl start mysql
systemctl enable mysql
その結果、MariaDBデータベースがDebianサーバーにインストールされました。
次に、以下のように「mysql_secure_installation」コマンドを使用してデフォルトのMariaDBrootユーザーのパスワードを設定します。
mysql_secure_installation
デフォルトのルートのパスワードを入力し、「 Y」と入力します 'すべてのオプション。
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
そして、MariaDBルートパスワードが構成されました。
次に、MySQLシェルにアクセスし、Drupalインストール用の新しいデータベースとユーザーを作成する必要があります。
以下のように、デフォルトのrootユーザーとパスワードを使用してMySQLシェルにログインします。
mysql -u root -p
以下のMySQLクエリを使用して、「drupaldb」という名前の新しいデータベースと、パスワード「[emailprotected]」を使用したユーザー「drupaluser」を作成します。
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;
' exitと入力します 'または'Ctrl + dを押します 'ボタンをクリックしてMySQLシェルを終了します。
その結果、Drupalインストール用の新しいデータベースとユーザーが作成されました。
このチュートリアルでは、SSLLetsencryptを使用してDrupal9のインストールを保護します。したがって、サーバーのIPアドレスに解決されたドメイン名を使用していることを確認してください。
SSL Letsencryptを使用するには、certbotツールを使用してSSL証明書を生成する必要があります。
以下のaptコマンドを使用してcertbotツールをインストールします。
sudo apt install certbot -y
その後、Nginxサービスを停止し、次のコマンドを使用してDrupalドメイン名のSSLLetsencryptを生成します。
systemctl stop nginx
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d drupal.hakase-labs.io
必ず自分のメールアドレスに変更してください。すべてが完了すると、SSL証明書は「/etc/letsencrypt/live/yourdomain.com」ディレクトリで利用できるようになります。
このステップでは、Drupal用の新しいNginx仮想ホスト構成を作成します。
etc / nginx / sites-availableディレクトリに移動し、vimエディターを使用して新しい仮想ホスト構成「drupal9」を作成します。
cd /etc/nginx/sites-available/
vim drupal9
SSL Letsencrypt証明書のドメイン名とパスを独自のものに変更し、貼り付けます。
server {
server_name drupal.hakase-labs.io;
root /var/www/drupal9; ## <-- Your only path reference.
listen 80;
listen [::]:80;
listen 443 default ssl;
ssl_certificate /etc/letsencrypt/live/drupal.hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/drupal.hakase-labs.io/privkey.pem;
# 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.3-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のNginx仮想ホスト構成をアクティブ化します。
ln -s /etc/nginx/sites-available/drupal9 /etc/nginx/sites-enabled/
次に、Nginx構成をテストし、エラーがないことを確認してから、Nginxサービスを再起動します。
nginx -t
systemctl restart nginx
その結果、Drupal用のNginx仮想ホストの構成が完了しました。
このステップでは、最新のDrupalバージョン9を「/ var/www」ディレクトリにダウンロードしてインストールします。
次に、「/ var / www」ディレクトリに移動し、以下のようにwgetコマンドを使用してDrupalソースコードをダウンロードします。
cd /var/www/
wget -q https://www.drupal.org/download-latest/tar.gz -O drupal-latest.tar.gz
drupalソースコードを抽出し、ディレクトリの名前を「drupal9」に変更します。
tar -xf drupal-latest.tar.gz
mv drupal-9*/ drupal9/
その後、Drupalインストールディレクトリの所有権をユーザー「www-data」に変更します。
chown -R www-data:www-data /var/www/drupal9
その結果、Drupalインストールディレクトリは「/ var / www/drupal9」ディレクトリにあります。
Webブラウザーを開き、アドレスバーにDrupalURLインストールを入力します。
https://drupal.hakase-labs.io/
そして、安全なHTTPS接続にリダイレクトされます。
次に、Drupalインストールのデフォルト言語を選択します。デフォルトの言語は'英語です '。
優先言語として選択し、[保存して続行]をクリックします 'ボタン。
Drupalインストールプロファイルを選択し、[保存して続行]をクリックします '。 Drupalを初めてインストールする場合は、「標準」を選択してください 'インストールプロファイル。
MySQLデータベース構成の場合、上部に作成された詳細データベースを入力し、[保存して続行]をクリックします。 'ボタン。
そして、以下のようにDrupalのインストールプロセスを取得します。
すべてのインストールが完了したら、サイト名、管理者ユーザー、パスワード、電子メールなどを構成します。
[保存して続行]をクリックします 'ボタン。
これで、以下のようにDrupalのデフォルトのインデックスページにリダイレクトされます。
'構成をクリックします メニューをタップすると、Drupal管理者構成ダッシュボードが表示されます。
その結果、DebianBuster10でのLEMPスタックを使用したDrupal9のインストールが正常に完了しました。