XserverでPythonのFlask環境を構築する際にハマった事と解決方法

Flask
スポンサーリンク

こんにちは~

今回はXserverで、PythonのFlask環境を構築して、色々ハマってメチャ時間かかったので、エラーを解決した方法など残しておきたいと思います。
基本的にやり方は色々な方々がネットにアップしていたので、この記事ではハマったこととその解決方法を中心に書いていきます。

この記事が誰かの役に立てば幸いです。

スポンサーリンク

概要

本ブログはXserverで運用しているので、ついでにこのドメインとXserverでFlaskのアプリケーションを公開してみたくなりました。

今回はお試しで、本ドメイン直下にhogeというフォルダを作成して、そこにアクセスするとHello,World!と表示できるようにしてみました。

具体的には、

https://coffee-blue-mountain.com/hoge/

にブラウザからアクセスすると

と表示されるようにしました。

たったこれだけのことなのですが、メチャ時間かかりました。

実施したこと

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://coffee-blue-mountain.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://coffee-blue-mountain.com/hoge"
os.environ["SERVER_PORT"] = "443"
os.environ["REQUEST_METHOD"] = "GET"

以上です。
基本的にはググったら出てくるので、ハマった事に絞って記事にしました。

ではまた!!

コメント

タイトルとURLをコピーしました