1. まとめトップ

Ubuntu LinuxでDrupalインストール

Drupalは、サイトビルダーのための高機能無料CMSであり、世界的に評価の高い高機能CMSです。drushの使用により、Drupal構築がコマンドひとつで完了。本まとめでは、ポピュラーで情報源の多い、Ubuntu LAMP環境におけるDrupal構築、インストール設定手順手順を紹介します。

更新日: 2015年11月15日

periclesさん

  • このまとめをはてなブックマークに追加
0 お気に入り 24240 view
お気に入り追加

Drupalは一般に、最も優れたWeb 2.0フレームワークの一つであると考えられている。

目次

■Ubuntu Linux サーバセットアップ
■LAMPインストール
■Drupalインストール

Ubuntu Linux サーバ セットアップ

■ユーザ作成
# useradd -d /home/pericles -s /bin/bash -m pericles
# passwd pericles
# usermod -a -G sudo pericles

・ログアウトし、一般ユーザでログイン。
Linux環境や、cygwinでsshクライアントを使用する場合、
$ ssh pericles@host.domain.com

■ssh設定
・ssh未インストールでローカルログインの場合、クライアント接続用にsshサーバインストール
$ sudo apt-get install ssh

・セキュリティの観点から、sshでのrootログイン不許可に設定
PermitRootLoginの行をコメントアウトします。
$ sudo sed -i.`date '+%Y%m%d%H%M'` -e "s/^PermitRootLogin yes/#PermitRootLogin yes/" /etc/ssh/sshd_config
バックアップしたファイル名を確認し、
$ ls -l /etc/ssh/sshd_config.*
その差分を確認。
$ diff /etc/ssh/sshd_config.201403071932 /etc/ssh/sshd_config
27c27
< PermitRootLogin yes
---
> #PermitRootLogin yes
さらに、ポート変更、パスワード認証不可にすると、より安全です。

・ssh接続確認
$ ssh localhost

■sshパスワードなし認証接続設定
@client
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t dsa
$ scp ~/.ssh/id_dsa.pub pericles@server:~/

@server
$ mkdir ~/.ssh
$ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
$ rm ~/id_dsa.pub
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

・ssh鍵なし認証で、毎回 passphrase 入力を求められる場合。
$ ssh-add
下記エラーが出る場合、
Could not open a connection to your authentication agent
$ eval `ssh-agent`
$ ssh-add /home/pericles/.ssh/id_dsa

■パッケージの更新とリブート
$ sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove && sudo reboot now

LAMPインストール

必要ソフトウェア(Apache、MySQL、PHP、Perl等)をまとめてインストール
以下のコマンド一つでLAMP構築完了です。
$ sudo apt-get install lamp-server^

■LAMPインストール
$ sudo apt-get install lamp-server^

その際、MySQL root パスワードを設定します。あとで変更したい場合は、以下のコマンドで。
$ mysqladmin -u root -p'oldpassword' password newpassword

■Apache(Webサーバ)動作確認例
自ホストにアクセスして確認し、「It works!」が表示されればOK。
http://host.domain.com/

■DrupalでClean URLsを使用するためのApache設定
・mod_rewrite有効化
 - モジュール確認
$ apachectl -M

 - モジュール有効化
$ sudo a2enmod rewrite
a2enmodが使えない他の環境の場合、設定ファイルを編集して以下を追加する必要があります。
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

・設定ファイル編集
 - バックアップ
$ sudo cp /etc/apache2/apache2.conf{,.org}

 - 編集
$ sudo vi /etc/apache2/sites-available/default
または
$ sudo vi /etc/apache2/apache2.conf
/AllowOverride - キーワード検索して移動、以下のように編集(None -> All)
<Directory /var/www/>
AllowOverride All
</Directory>

 - Apache再起動(http://httpd.apache.org/docs/2.0/stopping.html
$ sudo service apache2 restart
* Restarting web server apache2

 - 有効化確認
$ sudo apachectl -M | grep rewrite

■MySQL Bind Addressの確認
紐付けされているIPアドレスを確認します。
$ cat /etc/hosts
127.0.0.1 localhost
::1 ip6-localhost ip6-loopback
$ grep bind-address /etc/mysql/my.cnf
bind-address = 127.0.0.1

■PHP設定(php5 用の GD モジュール)
$ sudo apt-get install php5-gd

・APC(Alternative PHP Cache)
$ sudo apt-get install php-apc
$ sudo /etc/init.d/apache2 restart

・PHP動作確認例
$ sudo vi /var/www/testing.php
or
$ sudo vi /var/www/html/testing.php
<?php phpinfo(); ?>
以下URLにアクセスして確認。
http://host.domain.com/testing.php
問題なければ、環境変数などPHPの状態に関する多くの情報が表形式で出力されます。確認したら、削除しておきましょう。
$ sudo rm /var/www/testing.php

Drupalインストール

コマンドラインツール drush を使用してインストールします。

作成サイト: db_d7dev、mysqlデータベースrootパスワード: KKGVVgwGfXm7 の場合。

■Drupal コマンドラインツール drush インストール、確認
$ sudo apt-get install drush php5-json
$ drush status

■Apache設定ファイルの確認
$ sudo vi /etc/apache2/apache2.conf
<Directory /var/www/>
AllowOverride All
</Directory>
AccessFileName .htaccess
変更した場合は、apache再起動。
$ sudo service apache2 restart

■Drupal ダウンロード
$ cd /var/www
or
$ cd /var/www/html
$ sudo drush dl drupal --drupal-project-rename=d7dev

■インストールスクリプト実行(データベースも作成されます)
・実行
$ cd d7dev
$ sudo drush si standard --db-url=mysql://dp_db_admin:dp_db_password@localhost/db_d7dev --db-su=root --db-su-pw=KKGVVgwGfXm7 --site-name="drupal7 dev site"

・実行結果
パスワードが表示されない場合、ユーザ名とパスワードはadmin/adminです。
Starting Drupal installation. This takes a few seconds ... [ok]
Installation complete. User name: admin User password: QFoNdKKSLG [ok]

・ファイル権限設定を忘れずに。
$ sudo chmod a+w sites/default/files

■確認
・動作確認例
http://host.domain.com/d7dev
ユーザ名: admin、パスワード: 上記パスワード、ここではQFoNdKKSLG

・ログ確認
$ drush watchdog-show --count=100
admin/reports

・Clean URLs有効化(「?q=」を無くす)
admin/config/search/clean-urls
「Enable clean URLs」にチェック


以上で、Drupal 構築完了です。

その他

■Drush を使用しない場合のDrupalインストールは、以下のとおり。
・Drupal ダウンロード
$ cd /var/www
$ sudo wget http://ftp.drupal.org/files/projects/drupal-7.26.zip
$ sudo unzip drupal-7.26.zip
($ sudo unzip !$:t)
$ sudo mv /var/www/drupal-7.26 /var/www/d7dev
($ sudo mv /var/www/!$:r /var/www/d7dev)

・設定ファイル準備と権限設定
$ cd /var/www/d7dev
$ sudo cp sites/default/default.settings.php sites/default/settings.php
$ sudo mkdir sites/default/files
$ sudo chmod a+w sites/default sites/default/settings.php sites/default/files

・データベース作成
$ mysql -u root -p
mysql> create database db_d7dev;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON db_d7dev.*
-> TO 'sd_db_admin'@'localhost' IDENTIFIED BY 'dp_db_password';
(FLUSH PRIVILEGESは不要)
mysql> show databases;
mysql> exit;

・インストールスクリプトは、Webで実行。
http://host.domain.com/d7dev
$ sudo chmod a-w sites/default sites/default/settings.php

■Drupal one-time login link.
$ drush uli

■Drupalパスワードリセット
$ drush upwd --password="givememypasswordback" admin

drushを使わずにパスワードをリセットするには、mysqlデータベースに格納されているパスワードを変更する必要があります。
・ハッシュを生成
$ cd /var/www/d7dev
$ ./scripts/password-hash.sh newpassword
password: newpassword hash: $S$DZK4D8tsAi2P67HAKn7n9vlEYPUJkB5is0VYGIgomI0NrVlMXval

・MySQLにログインし、
$ mysql -u root -p

・先ほど確認したハッシュでパスワードを更新
mysql> UPDATE db_d7dev.users SET pass ='$S$DUt/Y5DU9JAzXujLGmSIRj8qg5r3BCCjAyPL7.KxRLPLQdtVVi16' WHERE uid = 1;

■MySQL DBパスワード変更は以下で。
$mysql -u root -h host.domain.com -p
mysq> UPDATE mysql.user SET Password=PASSWORD('new-password-here') WHERE User='user-name-here' AND Host='host-name-here';
$ sudo vi sites/default/settings.php
$db_url = 'mysql://username:password@localhost/databasename';

■Apache再起動で、以下のようなエラーが出る場合、
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.xxx.xxx. Set the 'ServerName' directive globally to suppress this message
$ sudo vi /etc/apache2/apache2.conf
ServerName host.domain.com
$ sudo service apache2 restart

■キャッシュ設定
admin/config/development/performance
It is recommended that block and page caching be enabled.

■Java7最新バージョンデフォルト設定でVNCコンソール起動されない事象@さくらのVPS
Javaコントロール・パネルのセキュリティタブにて、Javaのセキュリティレベルを「中」に下げ、例外設定を登録

■アップロードサイズ上限変更
$ sudo vim /etc/php5/apache2/php.ini
upload_max_filesize = 10M
post_max_size = 10M
$ sudo service apache2 restart

■drush エラーメッセージ
・The following restricted PHP modes have non-empty values:
設定ファイル確認
$ drush st | grep php.ini
編集
$ vi /path/to/php.ini
disable_functions=
->
;disable_functions=

■オープンポート確認
決して他のサーバに実施してはいけません。
$ sudo apt-get install nmap
$ sudo nmap -sT -O localhost

■git接続メモ
・鍵を作成
$ ssh-keygen
$ chmod 600 ~/.ssh/id_rsa.pub

・ssh接続時に秘密鍵を使うための設定
$ cat > ~/.ssh/config
以下をペースト
Host github.com
Hostname github.com
Identityfile ~/.ssh/id_rsa
CTRL-Dで入力終了。

・鍵を登録
$ cat ~/.ssh/id_rsa.pub
内容をコピー。
GitHub Webページの「User settings」「SSH Key」「Add SSH key」へペースト。

・接続確認
$ ssh -l git github.com

・bash設定ファイルをクローン
$ git clone git@github.com:foresthermit/dotfiles.git
$ mv ~/.bashrc ~/.bashrc.org
$ ln -s ~/dotfiles/.bashrc ~/.bashrc

・sshフリーズからの復旧
~.Enter

関連リンク

1 2





節約家。農業、料理、語学、IT、筋トレなど、生きることに密着したテーマが中心。情報の整理に主眼を置いた定番まとめを作成。