2017年6月25日日曜日

CentOS6での Drushを使ってのDrupal8のインストールとアップデートdrushのインストール mysql 5.1.73 から mariadb 10.2.6 へ変更

ここでのメモの順番は
CentOS6での
drushのインストール。
Drushを使ってのDrupal7、8のアップデート。
Drushを使ってのDrupal8のインストール。
mysql 5.1.73 から mariadb 10.2.6 へ変更(drushを使ってのdrupal8のインストールがmysql5.1.73ではできなかったため)
Drushをつかってのテーマ、モジュールのダウンロード、有効化。

とりあえず、drupal7のアップデートをしたいので、drushを使えるようにしてみる。
(今まで手動でやっていた。)
drushのインストールは、ダウンロードするだけのようなもの。
それでも少し時間が経つとどこにダウンロードしてどこに配置したかを忘れるので、yumでインストールできればそれに越したことはない。
でも、yumでインストールできるのはCentOS7からみたいだ。

CentOS6では
リポジトリを入れたうえで(導入済みだった)
# yum info drush
# yum info drush  --enablerepo=epel-release
# yum info drush  --enablerepo=epel-testing
上の3つを確認したがパッケージが見つからない。

なので、yumは使わずに普通にインストールする。
drushを適当なディレクトリにダウンロード。
# wget http://files.drush.org/drush.phar

ダウンロードしたファイルの動作確認。
# php drush.phar core-status
 PHP configuration      :  /etc/php.ini
 PHP OS                 :  Linux
 Drush script           :  /tmp/drush.phar
 Drush version          :  8.1.12
 Drush temp directory   :  /tmp
 Drush configuration    :
 Drush alias files      :

実行権限をつける。
# chmod +x drush.phar

drush.pharをdrushに変えて/usr/local/bin/以下へ移動させる。
# mv drush.phar /usr/local/bin/drush

以上でインストール完了。

実際に動くかどうかの確認。
Drupalルートディレクトリに移動して
メインテナンスモードにしてみる。
Drupal 8: drush sset system.maintenance_mode TRUE
Drupal 7: drush vset maintenance_mode 1


Drush8を使ってDrupal7のアップデートをする。


最初にバックアップを取る。

メインテナンスモードにする。
drush vset --exact maintenance_mode 1

drush cache-clear all

アップデートする。
drush pm-update drupal

メインテナンスモードを解除する。
drush vset --exact maintenance_mode 0

drush cache-clear all

Drush8を使ってDrupal8のアップデートをする。


アップデートの有無を確認。
drush ups

メインテナンスモードにする。
drush sset system.maintenance_mode 1

drush cr

drupal8のアップデート
drush up drupal

モジュールのアップデート
drush up module_name

(セキュリティアップデートのあるモジュールだけをアップデートする
drush up --security-only)

次に、データベースとエンティティのアップデート。
drush updb
drush entup

メインテナンスモードを解除する。
drush sset system.maintenance_mode 0
drush cr

drupal8をdrush8でインストールする。

まず、drushを使って、drupalの最新安定板を自分の付けたい名前hegedruでダウンロードする。
cd /var/www/html
drush dl drupal --drupal-project-rename=hogedru
(drush dl drupalでダウンロード時はパージョン付のdrupalファイル名になる。)
(drush dl drupal-8 --select    バージョンを指定して、異なるバージョンから選択。)

hgedruのディレクトリに移動して
cd hogedru

ここからdrupal8のインストール。

drush si --account-name="drupal_usr_name" --account-pass="drupal_usr_password" --account-mail="usr_mail@example.com" --db-url="mysql://root:password@localhost:3306/database_name" --site-mail="hogehoge@example.com" --site-name="Dru8testsite"

で、インストールされる。
最後、ページにアクセスする前に
chown -R apache:apache /var/www/html/hogedru
とするのを忘れないように。

金型を作っておけば手動でのインストールよりはるかに楽。

下の2つの構文も参照
drush site-install standard --account-name='ac_usr_name' --account-pass='pass_word' --account-mail='ac_mail_address' --db-url='mysql://[db_user]:[db_pass]@localhost/[db_name]' --site-mail='site_mail' --site-name='hogedrusite'

drush si standard --db-url=mysql://[db_user]:[db_pass]@[ip-address]/[db_name]

ここから下はエラーが出たところの修正に関して
drush si.......とインストール時の上のコマンドを打った後、
データベースにログインできないというエラーが出た。
これは、mysqlのポート番号をlocalhostの後に入れていなかったのが原因。
--db-url="mysql://root:password@localhost:3306/hogedru"
これで、エラーがなくなりデータベースが作られた。

他のエラー
このmysqlのバージョンは5.1.73。これでは低いから5.5.3以上のバージョンにしろとエラー。
一応自分mysqlバージョンの再確認。
mysql --version
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
ほんとだ。


バージョンを上げるのにmysqlのまま上げるか、mariaDBにするか少し迷う。
mariaDB5.5はmysql5.5をベースに開発されたものだそうで、そこ(ver5.5)ではほぼ互換だが、それ以降、別物になってきているそうだ。
現在の最新版
MySQL 5.7.18(リリース日:2017/04/10)
mariaDB 10.2(CentOS6用)

少し迷ったがmariaDBにしてしまう。
mariaDBにするなら、5.5の方が安全だろうけど、10.2を入れてみる。

一応データベース全体のバックアップをsqlで取っておく。(とらなくても大丈夫。データは残る。でも万が一の時のためにとっておく。)

mysqldump --single-transaction --all-databases --events --default-character-set=binary -u root --password=password | gzip > mysql.whole.sql.gz

それと
/etc/my.cnf
のバックアップもとっておく。

mysqlの削除をしておく。(しなくてもよさげだけど。)
その前に、MriaDBの何のパッケージを入れるのかを知るために、または、インストールに失敗して元に戻すときのために今インストールされているmysqlのパッケージを調べておく。

yum list installed | grep mysql
mysql.x86_64                           5.1.73-8.el6_8               @updates
mysql-devel.x86_64                     5.1.73-8.el6_8               @updates
mysql-libs.x86_64                      5.1.73-8.el6_8               @updates
mysql-server.x86_64                    5.1.73-8.el6_8               @updates
php-mysqlnd.x86_64                     7.1.6-1.el6.remi             @remi-php71

で、サービスをストップさせてmysqlを削除
/etc/init.d/mysqld stop
yum remove mysql
Removing:
 mysql x86_64 5.1.73-8.el6_8 @updates 2.4 M
Removing for dependencies:
 mediatomb x86_64 0.12.1-1.el6 @/mediatomb-0.12.1-1.el6.x86_64 2.5 M
 mysql-devel x86_64 5.1.73-8.el6_8 @updates 388 k
 mysql-server x86_64 5.1.73-8.el6_8 @updates 25 M

mediatombも一緒に削除されるとかで、一瞬迷ったけど、最近は使っていないし必要になればまた入れればいいと思って一緒に消すことにした。

次にMariaDB用リポジトリのファイルを作る。
https://downloads.mariadb.org/mariadb/repositories/
ここで表示されたCentOS6用のリポジトリファイルの内容は以下

# MariaDB 10.2 CentOS repository list - created 2017-06-27 05:31 UTC # http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

これを
/etc/yum.repos.d/mariadb.repo
にコピーする。

MariaDBのインストール。
インストール前に確認しとく
yum info MariaDB-devel MariaDB-client MariaDB-server MariaDB-libs

MariaDB-libsは、今、必要ないみたいだ。
必要ないということは、mysql-libsを削除する必要がある。
そのためにmysql-libsに依存しているpostfixを消せと言われたとかといろいろと厄介なことが少し前まであったようだ。でも今は大丈夫だった。

インストール
yum install MariaDB-devel MariaDB-client MariaDB-server

Installing:
 MariaDB-client x86_64 10.2.6-1.el6 mariadb 48 M
 MariaDB-compat x86_64 10.2.6-1.el6 mariadb 4.0 M
     replacing  mysql-libs.x86_64 5.1.73-8.el6_8
 MariaDB-devel x86_64 10.2.6-1.el6 mariadb 7.1 M
 MariaDB-server x86_64 10.2.6-1.el6 mariadb 109 M
Installing for dependencies:
 MariaDB-common x86_64 10.2.6-1.el6 mariadb 196 k
 galera x86_64 25.3.20-1.rhel6.el6 mariadb 8.8 M


MariaDB起動
/etc/init.d/mysql start

これで、MariaDBは今のところ全部正常に動いている。

drushを使ってモジュール、テーマのダウンロード有効化

Adaptive Themeみたいなモジュール(at_tools)と対になっているテーマは、ダウンロード以外はwebサイトから操作した方がいいと思う。

taxonomy_menuモジュールと adaptivetheme テーマ、それとAdaptive Themeに必要なat_toolsをダウンロード
drush dl taxonomy_menu at_tools adaptivetheme

ダウンロードが終わったら、
chown apache:apache -R ルードディレクトリ
を忘れずに。

テーマ、モジュールを有効にするには

オフラインにするときは(オンラインは mode 0)
Drupal 8:drush sset system.maintenance_mode 1
              drush sset system.maintenance_mode TRUE
Drupal 7: drush vset maintenance_mode 1
Drupal 6: drush vset site_offline 1

まず、drupalのキャッシュをクリア。
drupal 8 : drush cache-rebuild
drupal 7 : drush cc all

drushのキャッシュをクリア。
drush cc drush

その後で、モジュール、テーマの有効化
drush en adaptivetheme(Adaptive Themeの場合はサブテーマを設定するから下(*)のやり方の方がいい。)
drush en pathauto
drush en taxonomy_menu
drush en -y adaptivetheme  ------>機能しない
-y, --yes
(出てくるプロンプトすべてに yes )
-s, --simulate 
(関連するアクションすべてをシミュレートする。システムに実際の変更は加えない)。

(*)Adaptive Themeの場合は、サブテーマをdrushで設定できる。
drush adaptivetheme "テーマ名" テーマディレクトリ名------------>機能しない





0 件のコメント:

コメントを投稿