Grav には組み込みのコマンドラインインターフェイス (CLI) があり、 bin/grav
で見つけることができます。CLI は、キャッシュのクリア や バックアップ** などの定期的なタスクを実行するのに非常に便利です。
CLIへのアクセスは簡単ですが、ターミナルを使用する必要があります。 MacではTerminal
、Windowsではcmd
、Linuxでは単なるシェルと呼ばれるものです。UNIXスタイルのコマンドはWindowsのcmdではネイティブに利用できません。Windows マシンに msysgit パッケージをインストールすると、 Git と Git BASH が追加され、UNIX コマンドを利用できる代替コマンドプロンプトになります。 サーバーにリモートでアクセスする場合、ほとんどの場合、サーバーにリモートでログインするためにSSHを使用することになるでしょう。 SSHの詳細については、こちらのGreat tutorial for more information on SSHをチェックしてください。
CLI に依存することで手動で実行できる操作もありますが、これらの作業は毎日実行される cronjobs によって自動化することができます。
Grav で利用できる全コマンドの一覧を取得するには、以下のコマンドを実行します。
bin/grav list
というような表示がされるはずです。
[version=15]
Available commands:
backup Creates a backup of the Grav instance
clean Handles cleaning chores for Grav distribution
clear-cache [clearcache] Clears Grav cache
composer Updates the composer vendor dependencies needed by Grav.
help Displays help for a command
install Installs the dependencies needed by Grav. Optionally can create symbolic links
list Lists commands
new-project [newproject] Creates a new Grav project with all the dependencies installed
sandbox Setup of a base Grav system in your webroot, good for development, playing around or starting fresh
security Capable of running various Security checks
[/version]
[version=16,17]
Available commands:
backup Creates a backup of the Grav instance
cache [clearcache|cache-clear] Clears Grav cache
clean Handles cleaning chores for Grav distribution
composer Updates the composer vendor dependencies needed by Grav.
help Displays help for a command
install Installs the dependencies needed by Grav. Optionally can create symbolic links
list Lists commands
logviewer Display the last few entries of Grav log
new-project [newproject] Creates a new Grav project with all the dependencies installed
sandbox Setup of a base Grav system in your webroot, good for development, playing around or starting fresh
scheduler Run the Grav Scheduler. Best when integrated with system cron
security Capable of running various Security checks
[/version]
特定のコマンドのヘルプを得るには、コマンドの前に help を付けます。
bin/grav help install
[version=15]
プロジェクトのバックアップは、Grav の ROOT のアーカイブを作成することにほかなりません。データベースもなく、複雑なこともありません。
もちろん、Grav CLI を使用することでさらに簡素化することができます。例えば、~/workspace/portfolio
プロジェクトがあり、そのバックアップを作成したい場合、以下のようにします。
cd ~/workspace/portfolio
bin/grav backup
プロジェクトの backup/
フォルダに新しいバックアップファイル portfolio-20140812174352.zip
が作成されます。名前の後の長い数字は、year month day hour minute second でフォーマットされた日付です。
[/version]
[version=16,17]
Grav バックアップシステムは Grav 1.6 で完全に刷新され、複数のバックアッププロファイルをサポートするようになりました。 これらのプロファイルは user/config/backups.yaml
で設定されます。 カスタム設定ファイルがない場合、Grav は system/config/backups.yaml
で提供されるデフォルトの設定ファイルを使用します。
Grav が複数のバックアッププロファイルを検出した場合、CLI コマンドでバックアップするプロファイルを選択するように促されます。
cd ~/workspace/portfolio
bin/grav backup
Grav Backup
===========
Choose a backup?
[0] Default Site Backup
[1] Pages Backup
Alternatively you can pass an index of the profile directly:
$ cd ~/workspace/portfolio
bin/grav backup 1
Archiving 36 files [===================================================] 100% < 1 sec Done...
[OK] Backup Successfully Created: /users/joe/workspace/portfolio/backup/pages_backup--20190227120510.zip
More information on the backup functionality can be found in the Advanced -> Backups section.
[/version]
このCLIコマンドは、主にパッケージ構築時に使用され、Grav から余計なファイルやフォルダを削除します。 このコマンドは、Grav パッケージのビルドに使用しない限り、 ** 使用しないことを強くお勧めします。
bin/grav clean
キャッシュを消去するには、cache/
以下のファイルやフォルダをすべて削除します。
The equivalent CLI command is:
[version=15]
$ cd ~/webroot/my-grav-project
bin/grav clear-cache
互換性を保つために、いくつかのエイリアス (clear-cache
, clearcache
, clear
) が存在します。
デフォルトのオプションは標準のキャッシュクリア処理ですが、以下のオプションでさらに制御することができます。
--all コンパイル済み、twig、doctrine のキャッシュを含むすべてのキャッシュを削除します。
--assets-only assets/* を削除します。
--images-only images/* を削除します。
--cache-only cache/* を削除します。
--tmp-only tmp/* を削除します。
[/version]
[version=16,17]
$ cd ~/webroot/my-grav-project
bin/grav cache
There are several aliases for compatibility (cache
, cache-clear
, clearcache
, clear
).
The default option is the standard cache clearing process however, you can control this further with these options:
--purge 古いキャッシュをパージします。
--all コンパイル済み、twig、doctrine のキャッシュを含むすべてのキャッシュを削除します。
--assets-only assets/* を削除します。
--images-only images/* を削除します。
--cache-only cache/* を削除します。
--tmp-only tmp/* を削除します。
[/version]
GitHub 経由でGravをインストールし、composer ベースのベンダーパッケージを手動でインストールしている場合、で簡単にアップデートすることができます。
bin/grav composer
また、install
などの composer オプションも渡すことができます。
bin/grav composer --install
または、
bin/grav composer --update
これらはすべて --no-dev
という composer オプションを使っているので、テストを行うにには直接、bin/composer.phar` を使ってください。
Gravが依存するもの(error plugin、problems plugin、antimatter themeをインストールするには、terminal または console を起動し、依存関係をインストールしたい grav フォルダに移動して CLI コマンドを実行してください。
$ cd ~/webroot/my-grav-project
bin/grav install
これで、依存関係が以下のようにインストールされたはずです。
~/webroot/my-grav-project/user/plugins/error
~/webroot/my-grav-project/user/plugins/problems
~/webroot/my-grav-project/user/themes/antimatter
[version=16,17]
Grav 1.6 の一部として、新しい logviewer CLI コマンドが作成され、Grav のログを素早く見ることができるようになりました。
このコマンドの最も簡単な使用方法は、単にタイプすることです。
cd ~/webroot/my-grav-project
bin/grav logviewer
これは logs/grav.log
ファイルの最後の20個のログエントリを出力します。 いくつかのオプションがあります。
-f, --file[=FILE] custom log file location (default = grav.log)
-l, --lines[=LINES] number of lines (default = 10)
-v, --verbose verbose output including a stack trace if available
e.g.
bin/grav logviewer --lines=4 [12:27:20]
Log Viewer
==========
viewing last 4 entries in grav.log
2019-02-27 12:00:30 [WARNING] Plugin 'foo-plugin' enabled but not found! Try clearing cache with `bin/grav cache`
2019-02-27 12:04:57 [NOTICE] Backup Created: /Users/joe/my-grav-project/backup/default_site_backup--20190227120450.zip
2019-02-27 12:05:10 [NOTICE] Backup Created: /Users/joe/my-grav-project/backup/pages_backup--20190227120510.zip
2019-02-27 12:26:00 [NOTICE] Backup Created: /Users/joe/my-grav-project/backup/pages_backup--20190227122600.zip
[/version]
And verbose output with stack traces:
bin/grav logviewer -v [16:12:12]
Log Viewer
==========
viewing last 20 entries in grav.log
2019-03-14 05:52:44 [WARNING] Plugin 'simplesearch.bak' enabled but not found! Try clearing cache with `bin/grav clear-cache`
2019-03-14 05:52:44 [CRITICAL] A function must be an instance of \Twig_FunctionInterface or \Twig_SimpleFunction.
0 /Users/joe/my-grav-project/plugins/acme-twig-filters/acme-twig-filters.php(52): Twig\Environment->addFunction(Object(Twig\TwigFilter))
1 /Users/joe/my-grav-project/vendor/symfony/event-dispatcher/EventDispatcher.php(212): Grav\Plugin\ACMETwigFiltersPlugin->onTwigInitialized(Object(RocketTheme\Toolbox\Event\Event), 'onTwigInitializ...', Object(RocketTheme\Toolbox\Event\EventDispatcher))
2 /Users/joe/my-grav-project/vendor/symfony/event-dispatcher/EventDispatcher.php(44): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'onTwigInitializ...', Object(RocketTheme\Toolbox\Event\Event))
3 /Users/joe/my-grav-project/vendor/rockettheme/toolbox/Event/src/EventDispatcher.php(23): Symfony\Component\EventDispatcher\EventDispatcher->dispatch('onTwigInitializ...', Object(RocketTheme\Toolbox\Event\Event))
4 /Users/joe/my-grav-project/system/src/Grav/Common/Grav.php(365): RocketTheme\Toolbox\Event\EventDispatcher->dispatch('onTwigInitializ...', Object(RocketTheme\Toolbox\Event\Event))
5 /Users/joe/my-grav-project/system/src/Grav/Common/Twig/Twig.php(175): Grav\Common\Grav->fireEvent('onTwigInitializ...')
6 /Users/joe/my-grav-project/system/src/Grav/Common/Processors/TwigProcessor.php(24): Grav\Common\Twig\Twig->init()
7 /Users/joe/my-grav-project/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(45): Grav\Common\Processors\TwigProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler))
8 /Users/joe/my-grav-project/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(57): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest))
9 /Users/joe/my-grav-project/system/src/Grav/Common/Processors/AssetsProcessor.php(28): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest))
2019-03-14 05:52:46 [WARNING] Plugin 'simplesearch.bak' enabled but not found! Try clearing cache with `bin/grav clear-cache`
...
Grav で新しいプロジェクトを開始するときは、毎回、クリーンな Grav インスタンスで開始する必要があります。CLIを使えば、このプロセスは非常に簡単で、数秒しかかかりません。
~/Projects/grav
に存在するものとします)。cd ~/Projects/grav
~/Webroot/portfolio
に置くと仮定します。bin/grav new-project ~/webroot/portfolio
これは、新しい Grav インスタンスを作成し、必要なすべての依存関係をダウンロードします。
Grav には sandbox
という気の利いたユーティリティがあり、Grav-installation の symlinked コピーを素早く作成することができます。簡単に言うと、bin/grav sandbox -s DESTINATION
-ここで、"DESTINATION "はコピーしたインストールを置くフォルダーのパスです - 別のフォルダーにGrav-installationを再作成することができます。
実行例
bin/grav sandbox -s ../copy
現在のGravフォルダから copy
という名前の兄弟フォルダを作成し、以下のフォルダを仮想コピーします: /bin, /system, /vendor, /webserver-configs
, そして通常Gravのルートフォルダに存在する標準ファイルです。user にあるすべてのコンテンツは仮想ではなくカーボンコピーなので、コアファイルからオーバーヘッドを作成することなく、新しいインストールのカスタマイズを簡単に開始することができます。
[version=16,17]
Advanced -> Scheduler の項で説明したように、CLI コマンドでスケジューラーを監視することができます。
baseコマンドは、期限切れのスケジューラタスクを手動で実行します。
bin/grav scheduler
より詳細な情報を得るには、オプションで -v
を指定して実行することができます。
bin/grav scheduler -v
Running Scheduled Jobs
======================
[2019-02-27T12:34:07-07:00] Success: Grav\Common\Cache::purgeJob
[2019-02-27T12:34:07-07:00] Success: Grav\Common\Cache::clearJob
[2019-02-27T12:34:07-07:00] Success: ls -lah
Other options include:
-i, --install Show Install Command
-j, --jobs Show Jobs Summary
-d, --details Show Job Details
Please refer to the Advanced -> Scheduler section, for more detailed information on these options.
[/version]
Grav 1.5 で追加された新しいセキュリティスキャナ CLI コマンドです。 これを実行すると、設定されたセキュリティ設定 に対してコンテンツを素早くスキャンすることができます。
bin/grav security [12:34:12]
Grav Security Check
===================
Scanning 11 pages [===================================================] 100% < 1 sec
[OK] Security Scan complete: No issues found...
サーバーで cgi-fcgi
が動作しているかどうかを調べるには、コマンドラインで次のように入力します。
$ php -v
PHP 5.5.17 (cgi-fcgi) (built: Sep 19 2014 09:49:55)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with the ionCube PHP Loader v4.6.1, Copyright (c) 2002-2014, by ionCube Ltd.
もし、 (cgi-fcgi)
への参照を見つけたら、すべての bin/grav
コマンドの前に php-cli
を付ける必要があります。あるいは、シェルで次のようなエイリアスを設定することもできます。これにより、CLI 版の PHP がコマンドラインから実行されるようになります。
オリジナル : https://learn.getgrav.org/17/cli-console/grav-cli