2022年2月22日火曜日

Headless Chromeでページロード完了後にPDF出力する

Headless ChromeでPDF出力したところ、ページロード完了前にPDF出力してしまうので、画像など真っ白になってしまう場合が多発した。

以下のオプションを追加すれば大丈夫でした。

--run-all-compositor-stages-before-draw 

例:
chrome --headless --disable-gpu --no-sandbox --run-all-compositor-stages-before-draw --print-to-pdf=C:\\tmp\\tmp.pdf --virtual-time-budget=10000 http://localhost:8080/banana/key 

--virtual-time-budget=10000
これは最大待ち時間のことのようである。

参考 Make Chrome Headless to Wait for Ajax Before Printing to PDF - Stack Overflow
https://stackoverflow.com/questions/49614437/make-chrome-headless-to-wait-for-ajax-before-printing-to-pdf

2021年9月2日木曜日

Grep 一致した部分だけ抽出する

sample.logファイル内から、/数字8桁/だけ抜き出したい。

以下のコマンドでは一致する行がすべて表示されてしまう。

$ grep -E "\/[0-9]{8}\/" sample.log

↓出力結果

・・・remote.php/webdav/110015/index.php/apps/files/・・・

・・・remote.php/webdav/201013/index.php/apps/files/・・・

・・・remote.php/webdav/301021/index.php/apps/files/・・・

・・・remote.php/webdav/601001/index.php/apps/files/・・・

・・・remote.php/webdav/701005/ index.php/apps/files/・・・


 -oオプションを使う

$ grep -Eo "\/[0-9]{8}\/" sample.log

↓出力結果

/110015/

/201013/

/301021/

/601001/

/701005/ 



2021年8月3日火曜日

JavaScript/jQuery 文字列置換 replaceの前方参照でハマったところ

以下のような文字列から先頭のアルファベット(文字数任意)だけ削除したいとします。

var STR1 = "ABCDEFG123456"; //⇒123456にしたい

var STR2 = "OPQRS78901"; //⇒78901にしたい


ダメだった式
STR1.replace(/[A-Z]+(.+?)/g, $1);
STR2.replace(/[A-Z]+(.+?)/g, $1);

OKだった式
STR1.replace(/[A-Z]+(.+?)/g, "$1");
STR2.replace(/[A-Z]+(.+?)/g, "$1");

$1をクオーテーションマーク " で囲まないといけなかった。


2021年5月12日水曜日

Nextcloud: 10MB以上のファイルをアップロードしたときの挙動がおかしい - max_chunk_sizeの設定

Nextcloudで10MB以上のファイルをアップロードすると、

  • ファイル一覧での更新日時がアップロードした日時ではなく、そのファイル自体が作成された日時になってしまう
  • Files automated tagging アプリで自動タグ付けがされない

という現象が起こった。

調べたところ、おそらく max_chunk_size の設定が10MBになっているためのようであった。

以下を実行しろというサイトがあった。

# for Ubuntu
$ sudo -u www-data php occ config:app:set files max_chunk_size --value 0

しかし、私のOS環境はCentOS7だったので

# for CentOS 7
$ cd /var/www/html/nextcloud (nextcloudが入っているディレクトリ例)
$ sudo -u apache php occ config:app:set files max_chunk_size --value 0

を実行して、無事問題は解決できた。

* occのあるディレクトリ例 /var/www/html/nextcloud/occ


参考 Uploads “chug” in 10mb segments?
https://help.nextcloud.com/t/uploads-chug-in-10mb-segments/71238


2021年4月18日日曜日

LINE公式アカウント グループの作り方

LINE公式アカウントでユーザーをグループ分けしたかったので、以下のオンラインマニュアルを読んでみました。

LINE公式アカウント (LINE Official Account Manager) グループマニュアル|LINE for Business

https://www.linebiz.com/jp/manual/OfficialAccountManager/create-group/

しかし、アカウントリストページから「グループ」タブを選択し、とあるのですが、

このアカウントリストページというものがなかなか見当たりません...

いろいろ探したところ、画面右上の自分のアカウントアイコンをクリックすると、ありました。



2021年4月10日土曜日

Apacheエラー: No matching DirectoryIndex found

MauticというMarketing Automationツールをインストールしてみたのですが、インストールできた!という直後で、404 Not Foundエラーになってしまい何も表示されません。

https://www.exmaple.co.jp/mautic/s/dashboard

↑これが404エラー

Apacheのエラーログ /var/log/httpd/error_log を調べてみると以下のようになっていました。

AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.php,index.php) found, and server-generated directory index forbidden by Options directive


CMSなどが生成するURLが禁止されているということですね。

DocumentRootの /var/www/html/.httaccess に

Options -Indexes

を追加記述して、とりあえず解決しました。


2021年3月20日土曜日

PHP: ログアウト後にブラウザ戻るボタンで以前のページが表示されてしまう

PHPでログアウト後にブラウザ戻るボタンで、ログインしていたときの以前ページが表示されるのを回避するには、以下のようにキャッシュを残さない設定にすればよい。


if(!isset($_SESSION)) //ログインしていな場合、以下を実行する。
{
    session_cache_limiter('nocache'); //ログアウト後にブラウザ戻るボタンで以前のページが表示されるのを回避
    session_name('MY_SESSION_NAME');
    session_start();
}