ホーム > カテゴリ > サーバー構築・運用・Linux >

Rails/Laravel/Django/CakePHPを自動アップデート [毎日/毎週/毎月]

CentOSで各種サーバー構築(目次)

Ruby on Rails、Laravel、Django、CakePHPの各フレームワークを毎日、毎週、毎月に自動でアップデートする事が可能です。単純にシェルスクリプトとCRONジョブ(crontabs)を組み合わせるだけです。

前提条件

各プロジェクトのパスは次のように仮定します。

Ruby on Rails/home/ユーザー名/rails
Laravel/home/ユーザー名/laravel
Django(仮想環境 - venv)/home/ユーザー名/django/3.2
CakePHP/home/ユーザー名/cake

※*.shファイルの改行コードはLFにします。行末は必ずLFにする。
※各コマンドは例です。ご自分の環境にあったコマンドに変更して下さい。

1. Ruby on Rails

[rails.sh]

#!/bin/sh

cd /home/ユーザー名/rails
rm /home/ユーザー名/rails/Gemfile.lock
bundle

※bundleはbundle installの省略形。

2. Laravel

[laravel.sh]

#!/bin/sh

cd /home/ユーザー名/laravel
composer update

3. Django

[django.sh]

#!/bin/sh

cd /home/ユーザー名/django/3.2

# 仮想環境へログイン(最初の.はsourceの代わり)
. .venv/bin/activate
  
  pip install -U Django==3.2.*

# 仮想環境からログアウト
deactivate 

4. CakePHP

[cake.sh]

#!/bin/sh

cd /home/ユーザー名/cake
composer update

5. 事前処理

[front.sh]

#!/bin/sh

# 使用メモリを無限にする
sed -i 's/memory_limit = 128M/memory_limit = -1/g' /etc/php.ini

6. 事後処理

[back.sh]

#!/bin/sh

# 使用メモリを元に戻す
sed -i 's/memory_limit = -1/memory_limit = 128M/g' /etc/php.ini

解説

LaravelとCakePHPで使用する「composer update」はメモリを1.5GBなどを使用する場合がありますので「5.事前処理」で使用できるメモリを無限にしてアップデートが終わった後に「6:事後処理」でメモリを元に戻します。

上記のコマンドの流れは次のようになります。

// 事前処理
sudo sh front.sh

// アップデート
// ※公式以外のパッケージもインストールする為、権限を与えない事!
sh rails.sh
sh laravel.sh
sh django.sh
sh cake.sh

// 事後処理
sudo sh back.sh

php.iniの編集はsudoでの管理者権限が必要です。

ここまで出来たらあとはCRONジョブで好きな時間に自動アップデートをするだけです。CRONジョブに関してはCRONジョブでPHPファイルを実行するを参考にして下さい。

CRONジョブはユーザー毎に設定可能です。rootで事前処理、事後処理を行い。ユーザーでアップデートを行うと良いです。

最後に

個人的にデモ版を含めてWebアプリケーション(システム)が20個ぐらいあるので、この他に各フレームワークのバージョンをデータベースに自動保存する処理や管理システムを作成しています。ただ、自動実行ではなく定期的に手動でシェルスクリプトを実行しています。

フレームワークのアップデートで脆弱性対策を行うのが一般的ですが、新しすぎるフレームワークのバージョンだと脆弱性が潜んでいる可能性もあります。また、フレームワークのメジャーバージョンアップではなく、マイナーバージョンアップやパッチバージョンアップでも破壊的仕様変更でシステムが動作しなくなる可能性も秘めています。





関連記事



公開日:2022年04月13日 最終更新日:2022年04月14日
記事NO:02911


この記事を書いた人

💻 ITスキル・経験
サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。

画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ
プチモンテ代表、アーティスト名:プチモンテ
🎵 音楽制作
BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~

オリジナル曲を始めました✨

YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte

【男性ボーカル】DA・KA・RA | 新たな明日が風と共に訪れる

【男性、女性ボーカル】時空を超越する先に | 時空と風の交響曲

【女性、男性ボーカル】絆 | 穏やかな心に奏でる旋律