Fedora 27: CMSのDrupalをインストールする

コンテンツマネージメントシステムのDrupalをインストールする手順を記載します。

1 Drupalをインストールする

  • この記事ではhttpsの為にデフォルトのSSL/TLS証明書を使っています。別にSSL/TLS証明書を用意している場合はそちらをお使いください。
  • httpではなくhttpを使用する場合は、firewall-cmdのserviceをhttpsからhttpに変更してください。
  • MYSQL_PASSWDはMySQLで使うrootユーザのパスワードで、DRUPAL_PASSWDはMySQLで使うdrupal7ユーザのパスワードです。
#!/bin/sh

set -e

[ -z "${DRUPAL_PASSWD}" ] && \
  DRUPAL_PASSWD=drupal_passwd

drupal_install_mysql()
{
  sudo dnf install -y mariadb-server php-mysqlnd
  sudo systemctl enable mariadb
  sudo systemctl start mariadb

  cat<<EOF | sudo mysql -u root
create database drupal7 character set utf8 collate utf8_general_ci;
grant all privileges on drupal7.* to drupal7@localhost
   identified by '${DRUPAL_PASSWD}';
exit
EOF
}

drupal_install_drupal()
{
  sudo dnf install -y drupal7

  sudo cp /etc/drupal7/default/default.settings.php \
       /etc/drupal7/default/settings.php
  echo "require_once('dbconfig.php');" | \
    sudo tee -a /etc/drupal7/default/settings.php

  cat <<EOF | sudo tee /etc/drupal7/default/dbconfig.php
<?php
\$dbs['mysql'] = array(
                      'driver' => 'mysql',
                      'database' => 'drupal7',
                      'username' => 'drupal7',
                      'password' => '${DRUPAL_PASSWD}',
                      'host' => 'localhost',
                      'port' => '',
                      'prefix' => ''
);
\$databases['default']['default'] = \$dbs['mysql'];
?>
EOF
}

drupal_install_apache()
{
  sudo dnf install -y mod_ssl

  sudo sed -e 's/Require local/Require all granted/g' \
       -i /etc/httpd/conf.d/drupal7.conf

  sudo firewall-cmd --add-service=https --permanent
  sudo firewall-cmd --reload
  sudo systemctl enable httpd
  sudo systemctl restart httpd
}

drupal_main()
{
  drupal_install_mysql
  drupal_install_drupal
  drupal_install_apache
}

drupal_main

2 Drupalへアクセスする

以下のURLにアクセスしてDrupalをセットアップします。ブラウザでこのページの証明書を許可してください。

https://<server>/drupal7/install.php

0001_DrupalInstall.png

セットアップ後は以下のURLにアクセスします。

https://<server>/drupal7/

0002_Drupal.png