Drupalの管理画面でThe requested URL /admin/content was not found on this server.

The requested URL /admin/content was not found on this server.
URLの書き換えを行った時など、上記エラーが発生する場合があるが
これはクリーンURLが有効になっていないため発生している可能性が高いです。
httpd.conf内の AllowOveride Noneの部分を AllowOveride All に全て変更します。
続いてDrupalのインストールをディレクトリの .htaccess の中の

#RewriteBase /

のコメントを外す
/の部分はインストールディレクトリの関係で変わってくるので、適切に設定してください

その後、Apacheのリブートを行って
管理画面>環境設定>クリーンURLでテストを行って

  • クリーン URL のテストに成功しました。
  • 設定オプションが保存されました。

と表示されたら、「クリーンURLを有効にする」にチェックを入れて、設定を保存を押下すれば、クリーンURLの設定は完了です。

Drupalで新規テーマを適用した場合に真っ白な時の対応(drush)

drupalのテーマをダウンロードして有効にすると

画面にエラーがたくさん表示されたり、真っ白になったりすることがあると思います。

このような場合drushまで設定してあれば、drushからテーマを変更することが出来ます。

drush pm-listでインストールされているモジュールやテーマを確認して

$drush pm-list

Package 名前 タイプ 状態 バージョン

Core Bartik (bartik) Theme Enabled 7.19
Core Garland (garland) Theme Disabled 7.19
Core Seven (seven) Theme Enabled 7.19
Core Stark (stark) Theme Disabled 7.19
Other Tb Rave (tb_rave) Theme Enabled 7.x-1.0-beta1

$drush pm-enable bartik
$drush vset theme_default bartic
$drush vset admin_theme bartic
$drush cc

とするとまた画面上部にツールバーが表示されると思います。

画面が崩れている場合等は、再度ツールバーからテーマを選択して有効にしなおしてください。

Drupalのマルチサイト設定

/var/www/drupalに既に一つ目のdrupalがインストールされている状態

mkdir /var/www/drupal/sites/abc.com
chmod 555 /var/www/drupal/sites/abc.com
cp /var/www/drupal/sites/default/defalt.settings.php /var/www/drupal/sites/abc.com/settings.php
chmod 777 /var/www/drupal/sites/abc.com/settings.php
mkdir /var/www/drupal2
ln -s /var/www/drupal /var/www/drupal2


/var/www/erupal2をabc.comのドキュメントルートにするため
conf.d/abc.com.conf等で

<VirtualHost *:80>
    DocumentRoot /var/www/drupal2
    ServerName abc.com
    <Directory "/var/www/drupal2" >
        Options FollowSymLinks ExecCGI
        AllowOverride all
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

などとする

Drupal テーマでの画像の扱い

Drupalのテーマを自作したときに画像フォルダ等の扱いがよくわからなかった。
サブディレクトリにインストールしていたため、力技でドキュメントルートに作成していたimagesフォルダを参照していたが
ディレクトリ変更をしたときに等、うまく参照できなくなるため、正しいっぽいやり方に変更することとしました。

<img src="images/btn_home.gif" alt="ホーム" />
↓
<img src="<?php echo $base_path . $directory ?>/images/btn_home.gif" alt="ホーム" />

$base_path と $directory でパスを指定することにより、テーマディレクトリを参照することが出来ます。

/テーマディレクトリ
 テーマ.info
 template.php
 templates/
css/
js/
images/

このような構成になっていると思うので画像の他にjsやcssでも利用できると思います。

Drupalの管理コマンド drushのインストール

drushはコマンドラインからDrupalの管理を行う事が出来ます。ダッシュボードからアップデートしたり、FTPすることなくコンソールからコマンドを叩くだけです。

実際にWordPressやDrupalをインストールしたり、モジュールのアップデートするときって、結局sshで入ってwgetして解凍してとかやることも多いのですが、Drupalの場合drushってのがあるよと先日Drupal Users Japan Group(仮)のmeetupで教えてもらいましたので、早速使ってみました。

インストールはpearコマンドで一発です。(Debianはapt-getでもいけるらしいです)

#pear channel-discover pear.drush.org
#pear install drush/drush

これでdrushのインストールは完了です。

Drupalがインストールされているディレクトリに移動して

$cd /var/www/drupal等/
$drush st

と実行すると

[root@ip-10-156-241-169 content]# drush st
Drupal version : 7.xx
 Site URI : http://default
 Database driver : xxxxx
 Database hostname : dbinstance.xxxxx.amazonaws
 .com
 Database username : xxxxx
 Database name : xxxxx
 Database : Connected
 Drupal bootstrap : Successful
 Drupal user : 匿名ユーザー
 Default theme : xxxxx
 Administration theme : seven
 PHP configuration : /php.ini
 Drush version : 5.7
 Drush configuration :
 Drupal root : /var/www/drupal
 Site path : sites/default
 File directory path : sites/default/files
 temp : /tmp

こんな感じで表示されればdrushはインストールされています。

モジュールやコアのアップデートをする場合は

$drush up

だけです。

drush upを走らせると、

Backups were saved into the directory [ok]

こんな感じでバックアップも取ってくれます。

アップデートの他に インストールやキャッシュのクリア等も行えるのでとても便利です。

またコンソールから実行可能なのでshファイル等で複数サイトを管理したりと利用範囲も広いかと思います。

Drupal ブロック内でPHPコードの実行

ブロックにPHPのコードを追加した場合

管理ユーザのメニューよりモジュールを選択してPHP Filterにチェックを入れます。

 

サイト構築>ブロックで新規ブロックの作成等を行うとテキストフォーマットにPHP Codeの選択しが増えます。

 

後は<?php ?>の中にPHPコードを書けばブロック内でPHPが実行されます。

Drupalインストールディレクトリの変更

Drupalをテスト的にインストールした場合等

新しいディレクトリに配置する方法

ドキュメントルート/drupal/にインストールした場合

/drupal/配下に.htaccessが存在する

このなかにRewriteBaseを指定している箇所がある、恐らく設定を変更していなければコメントのままである

# Modify the RewriteBase if you are using Drup

 

al in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
#
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
# RewriteBase /
RewriteBase /site/

英語で説明してある通りだが最後のコメントの部分が該当箇所

/var/www/documentroot/drupalから

/var/www/documentroot/siteに移動する場合

変更する場合.htaccessを変更の上
mv drupal site
とすることで新しいディレクトリでアクセスすることができる

Drupalのモジュールのインストール

管理画面からモジュールを選択すると

URLを入力する画面か、ローカルのファイルをアップロードする画面となる。

 

 

 

 

 

 

 

FTPが開いてるサーバも少ないと思うので、手動でのアップロードを行う。

該当のモジュールはhttp://drupal.org/download

 

より探す。

指定のモジュールが見つかったら

 

希望するバージョンの圧縮ファイルのリンクをコピーする。

Drupalをインストールしているサーバにログインし

$cd ~

 

 

 

$wget コピーしたURL

としモジュールファイルをコピーする

zipをコピーした場合は

$unzip ダウンロードしたモジュール.zip

とし解凍して作成されたディレクトリを

$mv 解凍してできたディレクトリ /Drupalディレクトリ/module/

としてモジュールディレクトリに移動させる。

移動が完了すると、管理画面のモジュールの画面には

 

のように表示されるのでチェックボックスを入れて更新を行うと、モジュールが有効になる。

モジュールには依存関係があるので、右側の欄を参照に追加をしてください。

Drupalの再インストール

Drupalのインストールウィザード中に落ちてしまったり。設定をやり直したい場合の手順

1.drupalをインストールしたデータベースの全テーブルを削除し再度データベース作成

ex.

mysql>drop database sample_database_name;

mysql>create database sample_database_name;

mysql>grant create,select,delete on sample_database_name.* TO admin_user_name@localhost;

2.drupalディレクトリ/sites/default/配下のsettings.phpを削除

$rm drupal/sites/default/settings.php

$cd drupal/sites/default/

$cp default.settings.php settings.php

$chmod 666 settings.php

3.ブラウザよりインストールディレクトリにアクセスすると再度インストールが開始される