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();
}

2021年3月17日水曜日

Windows10: ウインドウ移動のショートカットキー

 マルチディスプレイを使用していて、時々ウインドウが画面領域からはみ出てしまい、どうにも移動できない場合は、以下のようにキーボードで解決できます。


キーボードによるウィンドウの移動
  1. 移動させたいウィンドウをアクティブな状態にします。
  2. キーボードの[Alt]キー[Space]キーを同時に押します。
  3. キーボードの[M]キーを押します。

2021年2月28日日曜日

CSS: Chromeで画像がぼやける

Chromeの場合、レスポンシブ対応にしていると画像がなんとなくぼやけてしまいます。

CSSで以下のようにすれば解決します。

 img {

    -webkit-backface-visibility: hidden;

}


2021年2月24日水曜日

Linux: ディレクトリ内を再帰的にgrepする

grep -lr 検索文字列 /var/www/html

-r は再帰的に実行するためのオプション
-l はファイルだけを探索するオプション

ファイル名を指定したい場合は --include= オプションを使用します。

grep -lr 検索文字列 --include="*.html" /var/www/html


2021年2月17日水曜日

Django 文字数制限した要約文の作成 Truncator()

from django.db import models

from django.utils.text import Truncator


class Board(models.Model):

    # ...

    def __str__(self):

        return self.name


class Topic(models.Model):

    # ...

    def __str__(self):

        return self.subject


class Post(models.Model):

    # ...

    def __str__(self):

        truncated_message = Truncator(self.message)

        return truncated_message.chars(30)

2021年2月14日日曜日

PythonをCGIとして実行する - CentOS7の場合

プロバイダ: さくらインターネットVPS
OS: CentOS7
Python3.6を手動でインストール済み

まず、Pythonがインストールされているパスを調べておきます。
通常は /usr/bin/python3.6
ですが、各自環境に合わせてください。

◆cgi-binディレクトリ内でPythonを実行させる場合

1./etc/httpd/conf/httpd.conf 内の以下赤文字部分を追記

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>

<Directory "/var/www/cgi-bin">
    AllowOverride None
    #Options None #無効化
    Options ExecCGI #追記
    Require all granted
    AddHandler cgi-script .py .pyc #追記
</Directory>

※httpd.conf編集後、Apacheを再起動($ systemctl restart httpd)すること。

2./var/www/cgi-bin 内に以下の内容の hello.py を保存する。

#!/usr/bin/python3.6
import ioimport sys# 日本語を使用する場合、出力ストリームの文字エンコーディングを指定sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
# HTTP ヘッダprint('Content-Type: text/html; charset=utf-8')print() # blank line, end of headers
# HTML 本文print('<html><body>')print('Hello, world.<br>')print('こんにちは、世界。<br>')print('</body></html>')

※hello.pyファイルは、改行コード:LF、パーミッション:755にすること。

3.http://ホスト名/cgi-bin/hello.py にアクセスすると実行される。


◆ドキュメントルート以下で実行する場合

ドキュメントルート例:/var/www/html/python

1.以下の内容で /var/www/html/python/.htaccessファイルを保存する。

Options +ExecCGI
AddHandler cgi-script .py .pyc

2.前述と同じ内容の /var/www/html/python/hello.py を保存する。

3.http://ホスト名/python/hello.py にアクセスすると実行される。


参考
CentOS7上でPython3をCGIとして動かすまで
https://qiita.com/kusyami_p/items/7ca4fd774c12fc6324a2

pythonファイルをCGIとしてレンタルサーバー上でphp経由でCorn実行することで「500 Internal Server Error」を回避する方法 - なろう分析記録
https://karupoimou.hatenablog.com/entry/2019/05/21/184126

2021年1月6日水曜日