2011年から書いていたこのブログですが、自宅サーバへ引越しました。
https://junkhack.gpl.jp
or
https://hack.gpl.jp
Termuxでスマートフォンの中でWordPressが動作しています。よかったら遊びにきてくださいね。
2011年から書いていたこのブログですが、自宅サーバへ引越しました。
or
Termuxでスマートフォンの中でWordPressが動作しています。よかったら遊びにきてくださいね。
存在は知っていましたが使ってみると便利でした。
WP-CLI は WordPress を管理するためのコマンドラインインターフェースです。
https://wp-cli.org/ja/
つまり、こんなことが出来ます。
$ wp plugin list
+----------------------------------------+----------+--------+---------+
| name | status | update | version |
+----------------------------------------+----------+--------+---------+
| akismet | active | none | 4.1.6 |
| amp | active | none | 2.0.1 |
| autoptimize | active | none | 2.7.7 |
| jetpack | active | none | 8.9 |
| jquery-manager | active | none | 1.10.6 |
| line-auto-post | active | none | 1.0.1 |
| litespeed-cache | inactive | none | 3.4.2 |
| multiple-domain-mapping-on-single-site | active | none | 1.0.4 |
| ultimate-addons-for-gutenberg | active | none | 1.17.0 |
| word-balloon | active | none | 4.12.0 |
| wordpress-importer | active | none | 0.7 |
| wpfront-scroll-top | active | none | 2.0.2 |
| duplicate-post | active | none | 3.2.5 |
+----------------------------------------+----------+--------+---------+
シェルが使える環境だったら使わないと、もったいないですね!
Termux環境でも使えるか試してみました。要件はさきほどのリンクに記載してありますがPHP5.4〜とUNIX系の環境だそうです。WordPressは、3.7〜。
適当なディレクトリを作っておきます。例では、home直下にtmpディレクトリを作りそこで作業します。まず、wp-cli.phar をダウンロードします。
cd
mkdir tmp
cd tmp
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
一応、確認です。
php wp-cli.phar --info
以下のような感じで出力されました。
OS: Linux 4.14.141+ #1 SMP PREEMPT Wed May 6 10:13:36 CST 2020 aarch64
Shell: /data/data/com.termux/files/usr/bin/bash
PHP binary: /data/data/com.termux/files/usr/bin/php
PHP version: 7.4.10
php.ini used: /data/data/com.termux/files/usr/lib/php.ini
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /data/data/com.termux/files/home/tmp
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0
実行権限をつけて、パスが見えるところに移動。
chmod +x wp-cli.phar
mv wp-cli.phar $PREFIX/bin/wp
::(ちゃんと見えるか確認)
$ which wp
/data/data/com.termux/files/usr/bin/wp
タブ補完できるようにしておきます。
cd
mkdir bin
cd bin
wget https://raw.githubusercontent.com/wp-cli/wp-cli/v2.4.0/utils/wp-completion.bash
vi ~/.bash_profile
以下を追記
source /data/data/com.termux/files/home/bin/wp-completion.bash
反映しておきます。
source ~/.bash_profile
確認
$ wp ※ここでタブキーを押してみると以下が表示されます。
cache cron help menu post-type shell theme
cap db i18n network rewrite sidebar transient
cli embed import option role site user
comment eval language package scaffold super-admin widget
config eval-file maintenance-mode plugin search-replace taxonomy
core export media post server term
実際に使ってみましょう。WordPressのプラグインがあるディレクトリに移動します。以下は、プラグインの一覧を出すコマンドです。
$ wp plugin list
+----------------------------------------+----------+--------+---------+
| name | status | update | version |
+----------------------------------------+----------+--------+---------+
| akismet | active | none | 4.1.6 |
| amp | active | none | 2.0.1 |
| autoptimize | active | none | 2.7.7 |
| jetpack | active | none | 8.9 |
| jquery-manager | active | none | 1.10.6 |
| line-auto-post | active | none | 1.0.1 |
| litespeed-cache | inactive | none | 3.4.2 |
| multiple-domain-mapping-on-single-site | active | none | 1.0.4 |
| ultimate-addons-for-gutenberg | active | none | 1.17.0 |
| word-balloon | active | none | 4.12.0 |
| wordpress-importer | active | none | 0.7 |
| wpfront-scroll-top | active | none | 2.0.2 |
| duplicate-post | active | none | 3.2.5 |
+----------------------------------------+----------+--------+---------+
お〜! これは便利ですね。いろんな使い方があるので、以下をみてみてくださいね。
WP-CLI Quick Start
https://make.wordpress.org/cli/handbook/guides/quick-start/
いろいろ便利な使い方があると思うので、備忘録:〜 で紹介していきたいと思います。
やっぱり自宅サーバでWordPressをLinuxにホスティングしてみると、面白い発見がいろいろありますね。今まで、使わなかったいろんな方法があると夢が膨らみます。例えば、テスト環境なんかも簡単に作れそうですね。あるいは、差分を取って slack に投稿しておけば自動アップデートで何がどうなったかもわかると思います。アイデア次第ですね。
※ブロックエディターで編集したら、表示が壊れたので再投稿です。
いろんなやり方がありますが、自分が気に入ってるのは以下3つです。
$ grep . FILENAME | egrep -v ^*#
改行はまぁ出てもいいやという場合は、コメント行だけ削除。
$ egrep -v ^*# FILENAME
なんか空白(でたぶん改行が)多いなって場合は、パイプして、grep . をつければOK。 改行と、コメント行の場合は、こんな書き方も。
$ egrep -v '^*#|^$' FILENAME
大体の設定ファイルは、空白行じゃなく改行だけの行なのでこれで足ります。最後のやり方だと、設定ファイルだけ見る場合、↑(上矢印)で直近コマンド出して、最後のファイル名だけ変えればまた使えるので、便利です。ちゃんとコメント行と空白行(改行と空白行)を削除したい場合は、以下になりますがタイプしずらいですよね!
$ egrep -v '^*#|^\s*$' FILENAME
例えば、termuxのapache2の設定ファイル(デフォルト)httpd.confは改行とコメント行を抜くと以下です。
$ egrep -v '^*#|^$' httpd.conf.org ServerRoot "/data/data/com.termux/files/usr" Listen 8080 LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so LoadModule authn_file_module libexec/apache2/mod_authn_file.so LoadModule authn_core_module libexec/apache2/mod_authn_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so LoadModule authz_user_module libexec/apache2/mod_authz_user.so LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule access_compat_module libexec/apache2/mod_access_compat.so LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so LoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.so LoadModule include_module libexec/apache2/mod_include.so LoadModule filter_module libexec/apache2/mod_filter.so LoadModule mime_module libexec/apache2/mod_mime.so LoadModule log_config_module libexec/apache2/mod_log_config.so LoadModule env_module libexec/apache2/mod_env.so LoadModule headers_module libexec/apache2/mod_headers.so LoadModule setenvif_module libexec/apache2/mod_setenvif.so LoadModule version_module libexec/apache2/mod_version.so LoadModule slotmem_shm_module libexec/apache2/mod_slotmem_shm.so LoadModule unixd_module libexec/apache2/mod_unixd.so LoadModule status_module libexec/apache2/mod_status.so LoadModule autoindex_module libexec/apache2/mod_autoindex.so LoadModule negotiation_module libexec/apache2/mod_negotiation.so LoadModule dir_module libexec/apache2/mod_dir.so LoadModule userdir_module libexec/apache2/mod_userdir.so LoadModule alias_module libexec/apache2/mod_alias.so ServerAdmin you@example.com AllowOverride none Require all denied DocumentRoot "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs" <Directory "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs"> Options Indexes FollowSymLinks AllowOverride None Require all granted DirectoryIndex index.html <Files ".ht*"> Require all denied ErrorLog "var/log/apache2/error_log" LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio CustomLog "var/log/apache2/access_log" common ScriptAlias /cgi-bin/ "/data/data/com.termux/files/usr/lib/cgi-bin/" <Directory "/data/data/com.termux/files/usr/lib/cgi-bin"> AllowOverride None Options None Require all granted RequestHeader unset Proxy early TypesConfig etc/apache2/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz Include etc/apache2/extra/proxy-html.conf SSLRandomSeed startup builtin SSLRandomSeed connect builtin
空白行は、ないでしょ。つまり改行だけなんで、上記のように表示されます。空白行を含む表現は、以下なんでタイプ数が多いので面倒なんです。
'^\s*$'
まぁ、どうでもいい話ですが。w