さくらインターネット ライトプラン で django2.0 + python3.6
設定の仕方
サイト内 関連ページ
応答速度
ブラウザだとdjangoは少し遅く感じますが、機械的な取得だとほぼ同じという結果になりました。
djangoのデフォルトページに描画処理があるせいでブラウザだと遅いのかもしれないですね
pythonのほうは、この速度にさらに表示用のなんらかの処理を加えることになるので
phpのほうがcgi応答速度は速いということになります。
djangoは脆弱性がわりとあるようなので、ライトプランというcronが動作しない自動更新できない環境ではちょっと勇気がいる
djangoの導入は見送りになりそう。
キーワード
執筆:2018.06.15
編集:2018.06.15
編集:2018.06.15
設定の仕方
導入方法は関連ページへ
サイト内 関連ページ
応答速度
応答速度 | ||
django2.0 + python3.6 (デフォルトページ) |
PHP製のCMS (運用しているサイト) |
|
ライトプラン |
0.48 - 1.41秒 |
0.50 - 1.46秒 |
https:// min : 0.48 max : 1.41 avg : 0.85 n[20] |
https:// min : 0.50 max : 1.46 avg : 0.85 n[20] |
|
備考 | 体感で遅く感じる | 気にならない |
ブラウザだとdjangoは少し遅く感じますが、機械的な取得だとほぼ同じという結果になりました。
djangoのデフォルトページに描画処理があるせいでブラウザだと遅いのかもしれないですね
pythonのほうは、この速度にさらに表示用のなんらかの処理を加えることになるので
phpのほうがcgi応答速度は速いということになります。
djangoは脆弱性がわりとあるようなので、ライトプランというcronが動作しない自動更新できない環境ではちょっと勇気がいる
djangoの導入は見送りになりそう。
キーワード
Django2 CGI handler
Django2 CGI handler さくらインターネット 共有サーバー
Django2 python3 さくらインターネット 共有サーバー
django 脆弱性
Django2 CGI handler さくらインターネット 共有サーバー
Django2 python3 さくらインターネット 共有サーバー
django 脆弱性
カテゴリー: レンタルサーバーやcgi
2018.06.15
AH01215: suexec policy violation: see suexec log for more details
AH01215: suexec policy violation: see suexec log for more details
さくらインターネット
.cgiの1行目のパスを間違っていた
#!/home/ユーザー名/local/bin/実行名
ユーザー名を間違っていて(契約とは違う別のアカウントを指定していたため)
気が付くのに1時間以上かかってしまった。
「パスがありませんでした」くらいのメッセージにしてくださいよ。
執筆:2018.06.14
編集:2018.06.14
編集:2018.06.14
AH01215: suexec policy violation: see suexec log for more details
さくらインターネット
.cgiの1行目のパスを間違っていた
#!/home/ユーザー名/local/bin/実行名
ユーザー名を間違っていて(契約とは違う別のアカウントを指定していたため)
気が付くのに1時間以上かかってしまった。
「パスがありませんでした」くらいのメッセージにしてくださいよ。
カテゴリー: レンタルサーバーやcgi
2018.06.14
Django2 CGI handler + apache2.4 : メモ
概要
python3.6 + django 2.0.6
基本的に wsgi_over_cgi.py 内の
PATH_INFO、FORCE_SCRIPT_NAMEの変更設定がwsgi_emulate.py または wsgi_over_cgi.py および setting.py内に追加されています。
IfModuleで条件指定しているため
wsgiモジュールが有効になった場合は自動的にwsgiで動作する
必要な設定
.htaccess
apacheが古くて、環境変数が渡らない場合は
start-django.cgi に以下を追加する
表示されない場合
# https://pypi.python.org/pypi/pytz#downloads
執筆:2018.06.13
編集:2018.06.13
編集:2018.06.13
概要
python3.6 + django 2.0.6
- .htaccess に cgi用のエントリを追記する
- start-django.cgi を設置する(名称はなんでもいい)
wsgi_emulate.py または wsgi_over_cgi.pyをimportする - wsgi_emulate.py または wsgi_over_cgi.py を settings.py と同じフォルダに設置する
基本的に wsgi_over_cgi.py 内の
from wsgiref.handlers import CGIHandler
from . import wsgi
app = wsgi.get_wsgi_application()
CGIHandler().run(app)
だけで動かないといけないのですが、django内の処理が間違っているために、環境変数名の変更 及びfrom . import wsgi
app = wsgi.get_wsgi_application()
CGIHandler().run(app)
PATH_INFO、FORCE_SCRIPT_NAMEの変更設定がwsgi_emulate.py または wsgi_over_cgi.py および setting.py内に追加されています。
IfModuleで条件指定しているため
wsgiモジュールが有効になった場合は自動的にwsgiで動作する
必要な設定
.htaccess
# 追加分
<IfModule !mod_wsgi.c>
<FilesMatch "\.(?i:pyc?)$">
order deny,allow
deny from all
# RewriteRule "" - [L,R=404]
</FilesMatch>
# wsgi_emulate.py 内で この値をもとに正しいURLを生成できるように成形される
setenv BASE_URI / # / or /pathtositetop
setenv SCRIPT_URL / # / or /pathtositetop/
RewriteRule "^$" start-django.cgi [L,T=application/x-httpd-cgi]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule "." start-django.cgi [L,T=application/x-httpd-cgi]
</IfModule>
<IfModule !mod_wsgi.c>
<FilesMatch "\.(?i:pyc?)$">
order deny,allow
deny from all
# RewriteRule "" - [L,R=404]
</FilesMatch>
# wsgi_emulate.py 内で この値をもとに正しいURLを生成できるように成形される
setenv BASE_URI / # / or /pathtositetop
setenv SCRIPT_URL / # / or /pathtositetop/
RewriteRule "^$" start-django.cgi [L,T=application/x-httpd-cgi]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule "." start-django.cgi [L,T=application/x-httpd-cgi]
</IfModule>
apacheが古くて、環境変数が渡らない場合は
start-django.cgi に以下を追加する
os.environ.setdefault("BASE_URI", "/") # / or /pathtositetop
os.environ.setdefault("SCRIPT_URL", "/") # / or /pathtositetop/
こちらに書き込んでいたほうが確実だろうos.environ.setdefault("SCRIPT_URL", "/") # / or /pathtositetop/
表示されない場合
- start-django.cgi ファイルの実行権限がついているか確認する
- djangoへのパスが通っているか?
- インストールする場合
pip3 install Django - 指定フォルダから読み込む場合
スクリプト内で
sys.path.append("パス")
- インストールする場合
- pytzの確認
pip3 install pytz - No module named '_sqlite3'
sudo pkg install databases/py35-sqlite3
# https://pypi.python.org/pypi/pytz#downloads
カテゴリー: レンタルサーバーやcgi
2018.06.13
python3をインストール : さくらインターネット ライトプラン
さくらインターネットの
Ruby と Python は古すぎて使い物にならない
ローカルのcygwinでバージョンを見ると
virtualboxにいれているテスト用のfreebsd9でも Python 2.7.13 が返ってくる(pkg upgradeとうったが最新だよっていわれ、もう更新できない。)
FreeBSD9は tlsv1 なので
最新のものに更新していない古いバイナリを実行すると
さくらインターネットで使われている python 2.7.6はいつごろか追うと 2014Q3 ということがわかった。 2014Q4からは、2.7.8になっているので
4年以上も放置されているということになる
ということで、pythonを使いたい人はさくらインターネットの共有サーバーはやめておいたほうがいいでしょう。
OSのアップグレード待つか、新規契約して新しいサーバーに移るしかないですね。
注意点(リスク)
さくらインターネットは FreeBSD9(FreeBSD 9.1) で
FreeBSD9のFreeBSD公式サポートはかなり前に終了していて(9.1:2014 年 12 月 31 日, 9シリーズ:最終 2016 年 12 月 31 日)
osのライブラリも古いので 自前buildは あまりお勧めしない。
現在のFreeBSDのカレントブランチは 11 で 来年には12がリリースされる
perlの切り替えができるので、pythonでも切り替えは技術的には可能なはずなので
サポートに pythonの切り替え機能の要望を出したほうが無難でしょう
さくらインターネットの
Ruby と Python は古すぎて使い物にならない
Ruby /usr/local/bin/ruby 1.8.7
Python /usr/local/bin/python 2.7.6
2018/06
ローカルのcygwinでバージョンを見ると
ruby 2.3.6
Python2 2.7.14
Python2 2.7.14
Python3 3.6.4
virtualboxにいれているテスト用のfreebsd9でも Python 2.7.13 が返ってくる(pkg upgradeとうったが最新だよっていわれ、もう更新できない。)
FreeBSD9は tlsv1 なので
最新のものに更新していない古いバイナリを実行すると
'SSLError(SSLError(1, '[SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:833)'),)'
などのエラーが発生するさくらインターネットで使われている python 2.7.6はいつごろか追うと 2014Q3 ということがわかった。 2014Q4からは、2.7.8になっているので
4年以上も放置されているということになる
ということで、pythonを使いたい人はさくらインターネットの共有サーバーはやめておいたほうがいいでしょう。
OSのアップグレード待つか、新規契約して新しいサーバーに移るしかないですね。
注意点(リスク)
せっかくインストールしてもサーバーOSがアップグレードされると
.soファイルのリンク切れで
自前Buildアプリはすべてダウンしてしまうので気を付けましょう
さくらインターネットは FreeBSD9(FreeBSD 9.1) で
FreeBSD9のFreeBSD公式サポートはかなり前に終了していて(9.1:2014 年 12 月 31 日, 9シリーズ:最終 2016 年 12 月 31 日)
osのライブラリも古いので 自前buildは あまりお勧めしない。
現在のFreeBSDのカレントブランチは 11 で 来年には12がリリースされる
perlの切り替えができるので、pythonでも切り替えは技術的には可能なはずなので
サポートに pythonの切り替え機能の要望を出したほうが無難でしょう
» 続きを読む
カテゴリー: レンタルサーバーやcgi
2018.06.12
PHP Laravel 5.6 のインストール
(1) サーバー要件
(2) インストール準備
composerが必要なのでない場合は、ダウンロードする
(3) インストール
最新版
php composer.phar create-project laravel/laravel --prefer-dist インストール先
バージョンを指定する場合
php composer.phar create-project laravel/laravel --prefer-dist インストール先 5.6
(例)
php composer.phar create-project laravel/laravel --prefer-dist laravel
(4) 更新
インストール先に移動後
php composer.phar update
を実行すると最新版に更新される
アクセス
インストール先/public にアクセスるとデフォルトのサイトが表示される。
この内容は、resources/views/welcome.blade.php
が表示されている
公開先の変更
インストール先/public が公開URLとなっているので、
公開フォルダを変更するにはこの内容をコピーして、index.php内のrequireされているパスをインストール先に向くように書き換えれば好きな位置に移動できる。
ページ(URI)の追加
ページは routes/web.php で一括管理されている。
Route::get('/demo/{name?}', function ($name=null) { return 'Hello'; });
を追加すると /demoにあくせすると Hello と表示されるようになる
404エラーにする場合は、return App::abort(404); を返すといいだろう
ページ移動は、Route::redirect('/移動元', URL::to('/移動先'), 301);
を利用する
詳しい設定はデフォルトのページからいけるDoccumentを参考にしよう。
テンプレート(blade)
デバッグ時にバージョンを表示するサンプル
@if (config('app.debug'))
Laravel {{ app()->version() }}
@else
@endif
(1) サーバー要件
PHP7.1の最新版以降
必要なPHP拡張
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
XML PHP Extension
Ctype PHP Extension
JSON PHP Extension
この内容は、公式サイトで最新版を確認しよう(2) インストール準備
composerが必要なのでない場合は、ダウンロードする
curl -o https://getcomposer.org/composer.phar
(3) インストール
最新版
php composer.phar create-project laravel/laravel --prefer-dist インストール先
バージョンを指定する場合
php composer.phar create-project laravel/laravel --prefer-dist インストール先 5.6
(例)
php composer.phar create-project laravel/laravel --prefer-dist laravel
(4) 更新
インストール先に移動後
php composer.phar update
を実行すると最新版に更新される
アクセス
インストール先/public にアクセスるとデフォルトのサイトが表示される。
この内容は、resources/views/welcome.blade.php
が表示されている
公開先の変更
インストール先/public が公開URLとなっているので、
公開フォルダを変更するにはこの内容をコピーして、index.php内のrequireされているパスをインストール先に向くように書き換えれば好きな位置に移動できる。
ページ(URI)の追加
ページは routes/web.php で一括管理されている。
Route::get('/demo/{name?}', function ($name=null) { return 'Hello'; });
を追加すると /demoにあくせすると Hello と表示されるようになる
404エラーにする場合は、return App::abort(404); を返すといいだろう
ページ移動は、Route::redirect('/移動元', URL::to('/移動先'), 301);
を利用する
詳しい設定はデフォルトのページからいけるDoccumentを参考にしよう。
テンプレート(blade)
デバッグ時にバージョンを表示するサンプル
@if (config('app.debug'))
Laravel {{ app()->version() }}
@else
@endif
カテゴリー: レンタルサーバーやcgi
2018.06.07