こんにちは~
今回はXserverで、PythonのFlask環境を構築して、色々ハマってメチャ時間かかったので、エラーを解決した方法など残しておきたいと思います。
基本的にやり方は色々な方々がネットにアップしていたので、この記事ではハマったこととその解決方法を中心に書いていきます。
この記事が誰かの役に立てば幸いです。
概要
本ブログはXserverで運用しているので、ついでにこのドメインとXserverでFlaskのアプリケーションを公開してみたくなりました。
今回はお試しで、本ドメイン直下にhogeというフォルダを作成して、そこにアクセスするとHello,World!と表示できるようにしてみました。
具体的には、
にブラウザからアクセスすると
と表示されるようにしました。
たったこれだけのことなのですが、メチャ時間かかりました。
実施したこと
Xserver Flaskでググった結果に従って、以下を実施しました。
・XserverにTeraRarmで接続
・Linuxbrewのインストール
・pyenvのインストール
・Flaskのインストール
・xserverにファイルを配置
- .htaccess
- index.cgi
- helloFlask.py
XserverにTeraRarmで接続
ここは特にハマらなかったですが、強いて言えば、
認証時のユーザー名ってなんやねん。
ってなりました。
これはサーバーIDでログインしました。
xserverのパスワード変更画面でサーバーIDは見れたのでここから参照しました。
(もっと最適なページがあるような気がしましたが探すのが面倒だったので次に行きます)
Linuxbrewのインストール
主にここでハマりました。
Flaskをxserveにインストールする場合、管理者権限がないのでLinuxberewをインストール必要があるで、ググったページに書いてあった↓のコマンドを打ちました。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
すると、
エラー①:version
なにやらcURL,Gitのバージョンが古いと言われました。
Error: Please update your system cURL.
Minimum required version: 7.41.0
Your cURL version: 7.29.0
Your cURL executable: /usr/bin/curl
Error: Please update your system Git.
Minimum required version: 2.7.0
Your Git version: 1.8.3.1
Your Git executable: /usr/bin/git
Error: Curl must be installed and in your PATH!
Failed during: /home/xs719182/.linuxbrew/bin/brew update –force
エラー②:コマンドがエラーになる
ネットの書いてある通りに色々試していたら、
ls
など基本的なコマンドがエラーになってしまいました。
teratermでの接続を一旦切って、再接続してもエラーになったまま・・・
これは色々コマンドを打っていくなかで、環境変数のパス設定が変わっていたことが原因でした。
しかも、.bash_profileまで編集されてしまっていたので、再接続してもパスの設定がおかしくなったままでした・・・
↓で環境変数をuserは以下のbinにすることで、基本的なコマンドは打てるようになりました。
export PATH=”PATH:/usr/bin/”
メモ:vi で .bash_profileを編集する方法
viを初めてしようしたので、少しとまどいました。
備忘録としてメモをのこしておきます。
a :insrt(編集開始)
Esc :コマンドモード
コマンドモードで、 :wq + enter で保存して終了
コマンドモードで、 :q + enter で終了
エラー③:versionがアップデートされない
GitやcURLの最新版をダウンロードしても、それが反映されない(パスが設定できない)にハマりました。
export PATH=”PATH:****”
で環境変数を設定すると上書きしてしまうみたいので、
export PATH=$HOME/opt/bin:$PATH
とダウンロードしたパスを指定すると、versionを更新することができました。
メモ:linuxbrewのパス
色々やっていて、最初からダウンロードされたのか、もともと入っていたのか分からないが、サーバーID配下にlinuxbrewがあったので、パスを通しておいた
export PATH=$HOME/サーバーID/.linuxbrew:$PATH
エラー④:curl: (1) Protocol “https” not supported or disabled in libcurl
バージョンアップしたらいけるやろーと思ってい再度↓のコマンドを打つと
sh -c “$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)”
curl: (1) Protocol “https” not supported or disabled in libcurl
とエラーが変えてってきた・・・
curl -V
と打つとhttpsの設定が有効になってない?っぽいことがわかったので、
ダウンロードしたcurl配下の./configureに対して、
./configure –with-ssl
と
./configure –enable-libcurl-option
を実行してからインストールする。
さらに、アクセス件があるところにインストールしたいので、
–prefix=$/home/****
をつけて./configureを実行した
これで、ようやく
brew install python3
pip3 install Flask
を実行して、Flaskをインストールすることができた。
サンプルファイルのアップロード
ここまできたら、あとは、xserverにサンプルファイルをアップロードすれば終わり
アップロードしたサンプルファイルは↓)
- .htaccess
- index.cgi
- helloFlask.py
.htaccessとhelloFlask.pyには特にハマらなかったの割愛
index.cgiにハマったので説明しておく。
結果、↓にすることで成功した。
#! /home/サーバーID/.linuxbrew/bin/python3 from wsgiref.handlers import CGIHandler from helloFlask import app import os os.environ["SERVER_NAME"] = "https://hellorainworld.com/hoge" os.environ["SERVER_PORT"] = "443" os.environ["REQUEST_METHOD"] = "GET" CGIHandler().run(app)
↓の記述がないと、
KeyError: ‘SERVER_NAME’
のエラーが出てハマった。
import os os.environ["SERVER_NAME"] = "https://hellorainworld.com/hoge" os.environ["SERVER_PORT"] = "443" os.environ["REQUEST_METHOD"] = "GET"
以上です。
基本的にはググったら出てくるので、ハマった事に絞って記事にしました。
ではまた!!
コメント