update-memo.txt 4.8 KB
・以下のファイルは前管理会社にて魔改造されているので、joomla本体アップデート時に元の状態に戻す必要があります。
libraries/src/Document/Renderer/Html/HeadRenderer.php 
components/com_search/controller.php 
components/com_content/views/article/tmpl/default.php
modules/mod_articles_category/mod_articles_category.xml 
modules/mod_articles_category/tmpl/default.php 
modules/mod_breadcrumbs/tmpl/default.php
layouts/joomla/content/blog_style_default_item_title.php 
templates/protostar/index.php
templates/protostar/css/template.css 

・joomlaの管理画面でアップデートをするとコアファイルがapacheユーザーの所有者権限で上書きされるので、
ec2-userでファイル操作したい場合は
chown -hR ec2-user:apache media/
など適宜対応してください。


・joomla3.9.14 へのアップデートで管理画面にプラグインの更新アラートが強制されました。
互換性の問題で更新できない場合でも表示され続けて邪魔なので、とりあえず外してます。
media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js 

・アップデートでajaxがhttpで通信してエラーになる問題の対応で
configuration.php にて
$live_site = 'https://www.nifs-k.ac.jp/';
を指定してます。

・管理画面のパスがずれる(/administrator/が付かない)問題の対応で
baseタグを削除してます。
libraries/src/Document/Renderer/Html/HeadRenderer.php

・以下、joomla本体のアップデート手順
0. 作業前バックアップ(gitでソース/dbはダンプ)する
作業前にチェックツール(https://project.lilli.co.jp/oki/screenshot-crawler)を走らせると確認が楽です。
※チェックツールはローカルマシンで実行するツールです。サーバー上で実行しないよう注意してください。
※本サイトの場合、チェックに24分程掛かります。できれば1時間くらい前に走らせた方が良いです。

1. システム > グローバル設定 > メンテナンスモードを有効にする

2. コンポーネント > Joomlaの更新 > ライブアップデートを実行
※ここでコアファイルがapacheユーザー所有になる

3. 作業対象の所有者をec2-user:apahceへ変更
chown -hR ec2-user:apache libraries/
chown -hR ec2-user:apache components/
chown -hR ec2-user:apache modules/
chown -hR ec2-user:apache layouts/
chown -hR ec2-user:apache templates/
chown -hR ec2-user:apache media/

4. 対象ファイル
libraries/src/Document/Renderer/Html/HeadRenderer.php 
components/com_search/controller.php 
components/com_content/views/article/tmpl/default.php
modules/mod_articles_category/mod_articles_category.xml 
modules/mod_articles_category/tmpl/default.php 
modules/mod_breadcrumbs/tmpl/default.php
layouts/joomla/content/blog_style_default_item_title.php 
templates/protostar/index.php
templates/protostar/css/template.css 
media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js
をアップデート前の状態へ戻す。
自分の場合はVScodeでリモート接続して作業してます。

5. 動作確認
- サイトの表示確認
再度チェックツールを走らせて現状のスクショの収集が完了したら、
現状と作業前の差分を比較してください。画像やjsの読み込みの誤差以外の差分がでなければOK。

- 管理画面の確認
過去の事例より、
-- ヘッダーや各ページのリンクが正常に動作する
-- 記事編集画面のプレビュー機能が正常に動作する(プレビュー内のヘッダー表示等)
は確認する


#### 以下、サーバー環境のアップデートの注意 ####
OSがamazon linux なので通常の手順ではうまくいかない場合が多々あります。

・phpのアップデート
古いPHPの削除時
yum remove php-* ではエラーになるので
yum list installed | grep php で確認し、直接削除しました。

新しいPHPのインストール時、awsの独自リポジトリだとエラーになるのでremiを指定
yum --enablerepo=remi-php72 --disablerepo=amzn2-core install php-xxx ...

・MariaDBのアップデート
curl でリポジトリ取得しようとするとamazon linuxは対応外と弾かれるので
https://downloads.mariadb.org/mariadb/repositories/#distro=CentOS&distro_release=centos7-amd64--centos7&mirror=i3dnet&version=10.4
centos7の設定でリポジトリを作成しインストールする。
vi /etc/yum.repos.d/mariadb.repo
yum clean all
yum install MariaDB
起動
systemctl start mariadb
アップグレードで問題が出てないか確認
mysql_upgrade -u root -p

・apacheのアップデート
httpd.confに以下の1行を(無ければ)追加
RemoteIPHeader X-Forwarded-For
クラウドフロント経由かつIP制限を掛けたい為