日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

メール:エイリアス機能のないメールボックスにエイリアス機能を実装する

執筆:2024.01.25
編集:2024.01.25


メールアカウントの使い分けで面倒なのが、受信ボックスの設定とメールの確認

転送設定というものを使うと迷惑メールフィルターをONにしていると迷惑メール判定されてしまいますよね。

無差別受信できるサービスもあるようですが、今回は実在アドレスしか受信できないサーバー。

そこで便利なのがメインのメールbox1個にして、1アカウントで管理してしまう裏技

Yahooのセーフティーメールと同じような感じになると想像すると理解しやすいと思います
Outlookのエイリアス追加も同様にできますね。

☆ gmailだと メインアカウント[+任意文字]@ で無限増殖できますが、メインアカウントばればれで、迷惑メール防止できませんからね。

使い分けが大事ですね。

» 続きを読む

2024.01.25

AddHandler, RemoveHandler が動作しない

執筆:2021.03.01
編集:2021.03.01



Apache2.4
.htaccessの
AddHandler, RemoveHandler が動作しない
SetHandlerは動作する

Apacheを2.4.46にアップグレードしてみたが直っていない。
ネットで調べると2017/03頃にはすでに報告されているバグ。
2010年ごろに報告されたバグとは別物っぽい。

http.conf
 Options All
 AllowOverride All

mime_moduleはロード済み。
ロードされていなかったら、.htaccessに記述した時点で落ちますしね。

Apacheのソースコード調べてもいいけど面倒。

このフォルダだけバージョンを切り替えて動作確認したいという用途につかうのでちょっと不便。

Windowsだと問題は発生しないので、Unixでの複数動作確認はスキップしよかなぁ

» 続きを読む

2021.03.01

Django CGI(5.x / 1.x 2.x)

執筆:2019.07.08
編集:2019.07.08
編集:2024.08.04



(2024-08-04)
PythonのバージョンとDjango を最新の5.0をインストールするとDjango 2.xのコードは そのまま動きました!

相変わらずオーバーヘッドが大きい

CGI版での速度 (調査日 2024年8月4日)

サーバー
(apache2.4)

django(CGI)
django 5.0
Python 3.12

ディフェンダーの設定
C:\Program Files\Python
を除外設定

/admin/
hello
Windows11
(ローカルホスト)
2.10~2.70秒 約1.5秒
★ C:\Program Files\Python\3.12\Lib\site-packages\django の除外設定だけでも効果がありました。


(2024-07-18)
しばらく使っていない間に、The latest official version is 5.0.7.になっていますね
https://www.djangoproject.com/download/

https://docs.python.org/ja/3.12/library/cgi.html
Python cgiモジュールは、バージョン 3.11 で非推奨、バージョン 3.13 で削除予定とありますね
上記ページで3.13以降のマニュアルにするとなくなっています。

ということで、Django をCGIとして動作させる裏技は将来的に封殺されるかもしれないです。

CGIアプリケーションを作りたい場合は、Pythonは候補からはずれるということです。

格安運用でdjangoがいい場合は、共有サーバーではなく、安いVPS(仮想専用サーバー)を借りないといけないのかもしれないですね~。400円/月くらいですか?
VPSは自己管理なので面倒ですよね~

django1.x と2.xの両方で動作可能な django.cgiを作ったので速度を比較してみた。
前回とは違うアプローチをしてみたので、1個のファイルに小さく収まりました。

ベンチマークをすると CGI起動だとdjangoは 応答速度的に使えないコと判明しました。
ただし、CGIではなく常駐で運用するとレスポンスはとても速いです。

結論
djangoをCGIで動かすと何もなくても 0.5~0.6秒 レスポンスまでに時間がかかります。
djangoをCGIで運用することはお勧めできません。
mod_wsgiが使えない場合は、mod_phpなら導入されているサーバーは多いので、phpのフレームワークを検討したほうが賢明です。

原因
djangoは多数のファイルに分散されて、起動時にそれを読み込むため、CGIで動作させると とても時間がかかります。

速度比較いろいろ

django1とdjango2の速度差はそれほどなく、若干django2のほうがレスポンスが速い傾向にありました。

django

サーバー CGI

manage.py
runserver

mod_wsgi
localhost 1.11秒 0.01秒 0.03秒
さくらインター
ネット ライト
1.23秒 - -

※ 応答速度が1秒を超えると閲覧者に遅いとストレスを感じさせてしまいます。

CGI版での速度比較 (調査日 2019年7月7,8日)

サーバー
(apache2.4)
django1(CGI) hello.cgi
/admin/ hello python php C言語 GO
Windows10
(ローカルホスト)
5.86秒 2.64秒 0.30秒 0.25秒 0.02秒 0.06秒
FreeBSD11
(イントラネット)
1.11秒 0.51秒 0.03秒 0.03秒 0.01秒 0.02秒
さくらインターネット
ライト
FreeBSD9
(インターネット)
1.23秒 0.64秒 0.08秒 0.12秒 0.06秒 0.06秒
※ 時間は、URL呼び出し開始からデータ取得終了までにかかった時間。
※ C言語バイナリが最小時間は一番小さかった。

CGIのサイズ
ファイルサイズ hello.cgiの種類
1,988,354 GO バイナリCGI
6,604 C言語 バイナリCGI
140 PHP CGIスクリプト
115 perl CGIスクリプト
2019.07.08

cygwin
PHP Fatal error: Out of memory (allocated 49807360) (tried to allocate 2140027 bytes) in phar:///usr/local/bin/composer/src/Composer/Util/RemoteFilesystem.php on line 451

451: $result = zlib_decode($result);

なぜか50MBしか割り当てられていないとエラーが表示されます。

確認するが 512MBきちんと割り当てられている。
php -i | grep memory_limit
memory_limit => 512M => 512M

php -r "\$s = str_repeat(' ', 1000*1000*1000);"
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 1000000024 bytes) in Command line code on line 1

zlib_decode関数が怪しい
ということでzlib_decode関数をいじめてみます。
php -r "\$s = zlib_encode(' ',ZLIB_ENCODING_DEFLATE); str_repeat(\$s, 100*1000*1000);"
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 900000024 bytes) in Command line code on line 1
予想と違う結果で、きちんと設定値が返ってきました。

ということは、
・cygwinのphpにメモリリーク
・phar がメモリを食いつぶしている
・composer がメモリを食いつぶしている
あたりが疑われます

これ以上の追及は時間の無駄(というかわからない)なので
dosプロンプトで実行して解決
curl -O https://getcomposer.org/composer.phar
php composer.phar オプション
2018.06.20

>pip3 list --o
pip (9.0.3) - Latest: 10.0.1 [wheel]
setuptools (39.0.1) - Latest: 39.2.0 [wheel]
You are using pip version 9.0.3, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

python3最新版をいれたのにアップグレードが表示されるとは・・・。

>pip3 install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/.../pip-10.0.1-py2.py3-none-any.whl (1.3MB)
Installing collected packages: pip
Found existing installation: pip 9.0.3
Uninstalling pip-9.0.3:
Successfully uninstalled pip-9.0.3
Successfully installed pip-10.0.1

>pip3 list --o
Package Version Latest Type
---------- ------- ------ -----
setuptools 39.0.1 39.2.0 wheel


2018.06.19



PR

[PR]