Drupal を Ubuntu で動かす方法

今まで Fedora で問題なく動いていた Drupal を、Ubuntu に移し変えることになった。/var/www/html をコピー(tar.gz にまとめる)して同じように移行先の /var/www/html に展開、データベースも phpMyAdmin からエクスポート、移行先の MySQL にインポート、そして apache2.conf を私の環境に修正してトップページは表示できた。 ここまではよかった。しかし、 管理者でログインしようとすると 404 Page Not Found となってしまう。既存のコンテンツも同様に Not Found のエラーとなる。 いろいろ調べた結果、Ubuntu では mod_rewrite モジュールがデフォルトで on になっていないことがわかった。よってこのモジュールがオンになっていないとクリーン URL が有効にならないからエラーとなるのだ。 ここで頼りになったのがやはり drupal.org だった。https://drupal.org/node/134439 にその設定方法が書いてあったのでここに紹介する。 その前に、Ubuntu で既存の Drupal サイトを移行して動かす場合のチェック項目をまとめておく。
  • Apache は動いているか?https://localhost/ または https://yourdomain.com/ としてトップページは表示されるか?
  • Apache で PHP は動いているか?
  • MySQL は動いているか?
  • settings.php は移行先の環境に合うように修正したか?($base_url など)
  • /var/www/html などのディレクトリの関係、シンボリックリンクは合っているか?
  • /etc/apache2/sites-available/default は修正したか?(このファイルが実質 httpd.conf となる
  • mod_rewrite モジュールは有効になっているか?
  • 上の一連の設定ファイルを変更したら、Apache を再起動させたか?
設定手順は以下のとおり。
  1. ルートになる。
  2. a2enmod rewrite (こうするとモジュールが追加できるらしい。もしこのコマンドがない場合は、apt-get install apache2.2-common でインストール)
  3. vi /etc/apache2/sites-available/default として default ファイルを修正する。 先頭から13行目あたりにある、 AllowOverride None を、AllowOverride All に修正する。
  4. /etc/init.d/apache2 restart
ちなみに、最初に apt-get install debian-helper-scripts としておくと、/etc/init.d/apache2 restart のところは service apache2 restart とできるのでちょっと便利(Fedora ではデフォルトで使える技)。
トラックバック URL: https://perltips.twinkle.cc/trackback/267