Apacheを使用してUbuntu 14.04サーバーにDrupalをインストールする方法

前書き

Drupalは人気のあるコンテンツ管理システム(CMS)であり、インターネット上で最大のブログやWebサイトを運営しています。 ベースの安定性、プラットフォームの適応性、およびその活発なコミュニティにより、Drupalは10年以上もの間人気のある選択肢であり続けています。

このガイドでは、Ubuntu 14.04サーバーにDrupalをインストールする方法について説明します。 これはDrupalチームが推奨する構成であるため、Apacheを使用してサイトを提供します。

前提条件

このガイドを始める前に、いくつかの基本設定が完了したUbuntu 14.04サーバーが必要です。 Ubuntu 14.04 initial server setup guideに従って、sudo権限が設定されたroot以外のユーザーを取得します。

サーバーでApache、PHP、およびMySQLを構成する必要もあります。 getting LAMP installed on Ubuntu 14.04に関するガイドに従うことで、これを設定する方法を学ぶことができます。

上記の要件を満たしたら、このガイドに進みます。

Drupalファイルを取得してWebディレクトリにインストールする前に、システムを準備する必要があります。 Apache、PHP、およびMySQLはすでにインストールされていますが、インストールのためにいくつかの追加の変更を行い、これらのそれぞれにいくつかの調整を行う必要があります。

Drupal用のMySQLユーザーとデータベースの構成

最初に行うことは、使用するDrupalインストール用にMySQLユーザーとデータベースを構成することです。 セキュリティ上の理由から、専用のユーザーとデータベースを構成することが重要です。

開始するには、MySQLにログインします。

mysql -u root -p

そのソフトウェアのインストール中に設定したMySQLルートユーザーのパスワードの入力を求められます。

認証に成功すると、MySQLプロンプトが表示されます。 最初に、使用するDrupalインストール用のデータベースを作成します。 簡単にするために、データベースをdrupalと呼びます。

CREATE DATABASE drupal;

次に、Drupalソフトウェアがデータベースへの接続に使用できるユーザーを作成する必要があります。 このガイドでは、ユーザーをdrupaluserと呼びます。 下のブロックのパスワードを置き換える強力なパスワードを選択します。

CREATE USER drupaluser@localhost IDENTIFIED BY 'password';

これで、データベースとユーザーが作成されましたが、ユーザーにはまだデータベースに対してアクションを実行する権限がありません。 ユーザーにアクセス許可を付与することでこれを修正できます。 Drupalが正しく機能するには、さまざまな権限が必要です。 以下は、データベースを不必要に公開することなくソフトウェアが機能できるようにする適切な選択です。

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost;

これで、作成したデータベースを管理する権限がユーザーに付与されました。 これらの変更を今すぐ実装するには、特権情報をディスクにフラッシュする必要があります。

FLUSH PRIVILEGES;

これで、インタラクティブなMySQLセッションを終了できます。

exit

bashセッションに戻ります。

PHPモジュールをインストールして構成を調整する

次に、Drupalアプリケーションが必要とするいくつかのPHPモジュールをインストールします。 幸いなことに、これらはUbuntuのデフォルトのリポジトリにあります。

ローカルパッケージキャッシュを更新し、次を入力してインストールします。

sudo apt-get update
sudo apt-get install php5-gd php5-curl libssh2-php

また、PHP構成ファイルにいくつかの小さな調整を加えます。 これらは、Drupal開発者によって推奨されています。 テキストエディターでsudo権限でApache PHP構成ファイルを開きます。

sudo nano /etc/php5/apache2/php.ini

expose_phpディレクティブとallow_url_fopenディレクティブを検索し、両方を「オフ」に設定します。

. . .
expose_php = Off
. . .
allow_url_fopen = Off
. . .

完了したら、ファイルを保存して閉じます。

Apacheで書き換え機能とHtaccessファイルを有効にする

次に、Apacheを見てください。 まず、書き換え機能を有効にします。 これにより、DrupalサイトでURLを人間に優しい文字列に変更できます。

実際のApachemod_rewriteモジュールは、デフォルトですでにインストールされています。 ただし、有効化されていません。 次のように入力して、スイッチを切り替えてそのモジュールを有効にできます。

sudo a2enmod rewrite

これにより、次にApacheを再起動したときにモジュールが有効になります。 Apacheを再起動する前に、.htaccessファイルを使用できるように仮想ホスト構成を調整する必要があります。 このファイルには実際の書き換えルールが含まれ、デフォルトでDrupalインストールに含まれます。

ここでデフォルトの仮想ホストファイルを開きます。

sudo nano /etc/apache2/sites-enabled/000-default.conf

「VirtualHost」ブロック内に、Webルートを指すディレクトリブロックを追加します。 このブロック内で、AllowOverrideディレクティブを「All」に設定します。 ドメイン名を指すようにServerNameディレクティブを追加し、有効な電子メールアドレスを反映するようにServerAdminディレクティブを変更することもできます。


    . . .
    ServerName  example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    
        AllowOverride All
    
    . . .

完了したら、ファイルを保存して閉じます。

次に、Webサーバーを再起動して、ApacheとPHPの変更を実装するだけです。

sudo service apache2 restart

Drupalファイルをインストールする

これでシステムの準備ができたので、DrupalをWebルートにインストールできます。

実際には、最初にファイルをホームディレクトリに解凍し、適切な場所にコピーします。 そうすることで、何か問題が発生した場合や、後でファイルが誤って削除された場合に備えて、元のファイルにすぐにアクセスできます。

Drupal download pageに移動し、「推奨リリース」セクションで最新バージョンをチェックアウトします。 関心のあるバージョンのtar.gzリンクを右クリックし、「リンクアドレスのコピー」またはブラウザが提供する同様のオプションを選択します。

サーバーに戻り、ホームディレクトリに移動し、wgetを使用して、コピーしたリンクを使用してプロジェクトファイルをダウンロードします。

cd ~
wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz

リンクには、おそらく最後に異なるバージョン番号が付けられます。 ファイルがダウンロードされたら、次を入力してアプリケーションディレクトリを抽出します。

tar xzvf drupal*

次に、新しく抽出したディレクトリ構造に移動し、rsyncユーティリティを使用して、すべてのファイルをサーバーのWebルートディレクトリに安全にコピーします。 このコマンドでドットを使用して、現在のディレクトリを指定しています。 これは、必要ないくつかの隠しファイルをコピーするために必要です。

cd drupal*
sudo rsync -avz . /var/www/html

これで、参照する必要がある場合に備えて、ホームフォルダー内のディレクトリにファイルの元のバージョンがあります。 Webルートディレクトリに移動して、インストールをカスタマイズします。

cd /var/www/html

セキュリティとインストールのしやすさのためにDrupalファイルを調整する

Webベースのインストールスクリプトでは、プロセスを正しく完了するために、Drupalディレクトリにいくつかの変更を加える必要があります。 これを事前に邪魔にならないようにして、Webブラウザとコマンドラインを切り替える必要がないようにします。

まず、サブツリーsites/defaultの下にfilesという新しいディレクトリを作成する必要があります。

mkdir /var/www/html/sites/default/files

次に、デフォルト設定ファイルを、Drupalがアクティブな構成に使用するファイル名にコピーする必要があります。

cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php

このアクティブな設定ファイルには、インストール手順中に一時的に追加の権限が必要です。 当面は、グループオーナーに書き込み権限を付与する必要があります(グループオーナーを一時的にWebユーザーに割り当てます)。 インストールが成功した後、これを削除します。

chmod 664 /var/www/html/sites/default/settings.php

次に、ファイルのグループ所有権をWebユーザー(Ubuntuではwww-data)に付与する必要があります。 Drupalインストール全体にこれらの所有権プロパティを付与します。

sudo chown -R :www-data /var/www/html/*

これで、サーバーはWebベースのインストールスクリプトを実行するように適切に構成されました。

Webベースのインストール手順を完了する

インストールの残りはWebブラウザーで行われます。 ブラウザを開き、サーバーのドメイン名またはIPアドレスに移動します。

http://server_domain_or_IP

Drupalのインストール手順の初期ページが表示されます。

Drupal choose profile

理由がない限り、「標準」インストールを選択し、「保存して続行」をクリックします。 データベース構成ページが表示されるまで、次のいくつかの続行ボタンをクリックします。 データベースとユーザーを構成したときに使用した詳細を入力します。

このガイドでは、drupalという名前のデータベース、drupaluserという名前のデータベースユーザー、およびpasswordのパスワードを使用しました。 ユーザー作成段階で別のパスワードを選択しておく必要があります。 データベースの詳細を入力したら、[保存して続行]をクリックします。

Drupal database config

Note:[保存して続行]をクリックすると、同じデータベース構成ページにリダイレクトされる可能性があります。 この場合は、ページを更新するだけです。 データベースが構成され、プロファイルがインストールされます。

ページの上部に、設定ファイルの権限を変更するのが適切であるという情報ボックスが表示されます。 これを一時的に行います。 今のところ、あなたのサイトに関するいくつかの基本的な情報を設定する必要があります。 サイトに適切な値を使用してフィールドに入力します。

Drupal configure site

最後に[保存して続行]ボタンをクリックして、インストールを完了します。 ドメイン名にアクセスしてサイトにアクセスできます:

Drupal completed install

Drupalのインストールが正常に完了しました。

ただし、権限のないユーザーが変更を加えることができないように、設定ファイルのアクセス許可を元に戻す必要があります。 サーバーで、次のように入力して、ファイルへの書き込みアクセスを制限します。

chmod 644 /var/www/html/sites/default/settings.php

これにより、設定ファイルへのさらなる変更がロックダウンされます。

トラブルシューティング

Drupalのインストールの最終段階が完了しない場合、エラーログを確認します。

sudo tail /var/log/apache2/error.log

次のようなエラーが表示された場合:

[Wed Nov 12 13:40:10.566144 2014] [:error] [pid 7178] [client 108.29.37.206:55238] PHP Fatal error:  Call to undefined function field_attach_load() in /var/www/html/includes/entity.inc on line 316, referer: http://12.34.56.78/install.php?profile=standard&locale=en
sh: 1: /usr/sbin/sendmail: not found

これは、インストールが正常に完了しなかったことを示します。 Drupalによって文書化されたこのエラーには、かなりの数の原因と修正があります。

最も可能性の高い修正には、/etc/php5/apache2/php.iniファイルを編集してmax_execution_timeを上げることが含まれます。

sudo nano /etc/php5/apache2/php.ini

ファイル:

max_execution_time = 300

Safariなど、Chrome以外のブラウザーでブラウザーのインストールを試すこともできます。 ブラウザのCookie設定は、インストールに干渉する可能性があります。

いずれにせよ、修正を実装したら、既存のDrupalデータベースと既存の/var/www/html/sites/default/settings.phpファイルを削除し、それらをデフォルトのコピーに置き換えて、インストールを最初からやり直す必要があります。 If you have any data or settings worth preserving, make backups.

これを行うには、MySQLとDROP DATABASE drupal;にログインしてから、前のデータベースセクションを再度実行してデータベースを作成し、データベースに権限を付与します。

cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.phpを再度実行して、設定ファイルを置き換えることもできます。 必ずchmod 664 /var/www/html/sites/default/settings.phpコマンドを実行して、正しい権限を再度設定してください。

次に、おそらく別のブラウザーでIPアドレスに再度アクセスし、最終インストールを再試行します。

結論

これで、Drupalサイトを構築するための強固な基盤ができました。 Drupalは非常に柔軟で、ニーズとユーザーのニーズに基づいてサイトの外観と機能をカスタマイズできます。

ここからどこに行くべきかについてのいくつかのアイデアを得るには、私たちのDrupal tags pageにアクセスしてください。ここでは、途中で役立つチュートリアルを見つけることができます。 また、コミュニティから支援を受けたり、コミュニティに貢献するための質問と回答のエリアもあります。

Related