最近、小物のWeb API開発が結構あって色々な開発方法を試してみていたんだけど、ほぼ最適解と思える物がPython Flaskだった。
(776)
VisualStudio2017では特に何も追加せずともGitHubのプライベートリポジトリにSSHで繋がります。
gitコマンドもインストールされているので、PowerShellから扱うことが出来ます。
必要なのは鍵を登録して、GitHubサーバのfingerprintをknown_hostsに追加することです。
鍵登録は、WindowsならGitHub管理画面で作ってしまうのが早いでしょう、もちろん手持ちの鍵があればそれをGitHubに登録して、秘密鍵を~\.ssh\id_rsaに保存すればOKです。 普通に入れたWindows10ならば、C:\Users\UserName\.ssh\id_rsaになるでしょう。
そして、known_hostsについてはコマンドラインで一度、作成したプロジェクトを上げれば登録されます。
・VisualStudio2017で新規プロジェクト作成
作成時に右下にある新規Git作成のチェックをオン
・メニューの「チーム」から「接続の管理」を選ぶ
・「ローカルGitリポジトリ」欄に作ったプロジェクトがあるから、それを開く
・「設定」>「リポジトリの設定」>「リモート」で「追加」
・名前 origin フェッチ欄にgit@github.com…のSSH接続アドレスをGitHubからコピーしてくる
・PowerShellを開いてプロジェクトディレクトリへ移動
デフォルトなら C:\Users\UserName\Documents\Visual Studio 2017\Projects\ProjectName になるかと。
cd “~\Documents\Visual Studio 2017\Projects\MyProject”
git pull origin master
おなじみのSSH fingerprint確認が出るからyesして終了。
以降は、VSのチーム画面からプル・プッシュ出来るようになってます。 もし、GitHubリポジトリ作成時に何かファイルを生成してしまっていたなら、コマンドラインで git push -f origin master で上書きしておきます。
メンバーや別環境では、VSのチームエクスプローラでリモートリポジトリを取り込んでソリューションをロードすればそのまま開始できます。
(656)
さくらのVPS CentOS7で構築したサーバでFlask使ったWebAPI開発をはじめたのでメモ。
一般にはNginxを使う様だけど、本番じゃないからパフォーマンスとか重視しないし、入ってるApacheで対応した。
1 2 |
yum install python34 python34-pip python34-devel httpd-devel gcc pip3 install flask mod-wsgi |
CentOS7には既にPython3.4が居たのでこいつを利用、PIPも入れて、devel系はmod-wsgiに必要。
Flaskとmod-wsgiはpipで入れられた。
あとは、httpd.confに書くだけ。
1 2 3 4 5 |
LoadModule wsgi_module /usr/lib64/python3.4/site-packages/mod_wsgi/server/mod_wsgi-py34.cpython-34m.so <VirtualHost *:80> DocumentRoot /var/www/flask WSGIScriptAlias / /var/www/flask/adapter.wsgi </VirtualHost> |
今回は/var/www/flaskに設置。
wsgiモジュールをロードして、WSGIアダプタを用意するだけ。
アダプタはこんな感じ
1 2 3 4 |
import sys sys.path.insert(0, '/var/www/flask') from myapp import app as application |
この場合は、myapp.pyに書いてあるappアプリを起動してる。
案外楽だった。
(1080)
前回、Python2で書いたけど、実はアレは実験的な物で、本来はPHPで作られてるシステムで対応したかった。
と言うわけで、今回、PHP7.2に機能追加した(更に言えばPHP5.6なんだけど、機能追加なんでここには最新版を置いておく)
本家に取り込んで欲しいけどまだMLに参加出来てないんで、とりあえずパッチを置いておく。
(276)
MySQLでマルチマスタクラスタリングが出来る選択肢としてGaleraと言うやつがある。
マルチマスタってのは、基本的なマスタ・スレーブ式のreplicationじゃなく、メンバー全てがマスタとして動作できるって事で、どのサーバに書き込んでも他のサーバに同期される。
ロック問題とかさえ回避できれば比較的簡単に冗長性や性能を上げることができる夢のような話だけど、実際は書き込みのオーバーヘッドは結構大きいんで、性能は参照中心の構成じゃ無いとあまり上がらないんだけど、ノードが落ちたとしても何も手を入れずにシステムが勝手に動き続けるんで、利点は結構大きい。
そんなわけで、今回、Galeraを構築してみた。
(1003)
ApacheのCGIでSCL版のPythonを利用する方法。
既存で色々入ってるお名前.com VPSのお遊び環境でPython3のCGIを動かすためにちょいちょいいじってみた。
(531)