質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2606閲覧

raspberry pi にapache2,flask,mod_wsgiをインストールしてwebサーバーを作ろうとしているが、htmlのホームページが表示されない

tanakadesuka

総合スコア16

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/08/28 11:16

困っていること

raspberry pi にapache2,flask,mod_wsgiをインストールしてwebサーバーを作ろうとしているがホームページが表示されず、
添付の画像のようにディレクトリが表示されてしまいます。
どうしたらホームページが表示されるでしょうか?ご教示のほどよろしくお願いいたします。

以前に作成したプログラムを一部流用しているのでごちゃごちゃしていますが、flask_script.pyのtemp,humid,atmosphereに代入した値を/myappli/templates/subpage.htmlに渡して表示するようになっています。

以下に主要なファイルの中身を示します。

イメージ説明

###error.log

[Sat Aug 28 17:35:15.885963 2021] [mpm_event:notice] [pid 35863:tid 281473484161040] AH00492: caught SIGWINCH, shutting down gracefully [Sat Aug 28 17:35:16.179991 2021] [mpm_event:notice] [pid 36188:tid 281472871751696] AH00489: Apache/2.4.46 (Ubuntu) mod_wsgi/4.7.1 Python/3.9 configured -- resuming normal operations [Sat Aug 28 17:35:16.180707 2021] [core:notice] [pid 36188:tid 281472871751696] AH00094: Command line: '/usr/sbin/apache2' [Sat Aug 28 17:36:40.487733 2021] [wsgi:error] [pid 36190:tid 281472476770560] [client 10.39.38.78:52874] No WSGI daemon process called 'myappli' has been configured: /var/www/html/myappli/flask_app.wsgi [Sat Aug 28 17:45:11.917634 2021] [mpm_event:notice] [pid 36188:tid 281472871751696] AH00492: caught SIGWINCH, shutting down gracefully [Sat Aug 28 17:45:12.206186 2021] [mpm_event:notice] [pid 36573:tid 281473581957136] AH00489: Apache/2.4.46 (Ubuntu) mod_wsgi/4.7.1 Python/3.9 configured -- resuming normal operations [Sat Aug 28 17:45:12.206960 2021] [core:notice] [pid 36573:tid 281473581957136] AH00094: Command line: '/usr/sbin/apache2'

/var/www/html/myappli/flask_app.wsgi

#flask_app.wsgi import os,sys import site #all granted sys.path.insert(0, 'usr/local/lib/python3.9/dist-packages') #sys.path.append('/usr/local/lib/python3.9/dist-packages') #sys.path.append('/home/ayame/.local/bin/flask') sys.path.insert(0, 'home/ayame/.local/bin/flask') #site.addsitedir('/home/ayame/.local/lib/python3.9/site-packages') #sys.path.insert(0, os.path.abspath(os.path.dirname(__file__))) sys.path.insert(0, '/var/www/html/myappli') #from flask_script import app as application from flask_script import app application = app

/var/www/html/myappli/flask_script.py

#flask_script.py import sys from flask import Flask, render_template import signal import numpy as np import serial import datetime sys.path.append('/home/ayame/.local/lib/python3.9/site-packages') from flask import Flask app = Flask(__name__) #ser = serial.Serial('/dev/ttyACM0',9600) # Arduinoが接続されているCOMポートを指定 # 1次元配列の生成 temps = [0]*100 #温度の配列 humids = [0]*100 #湿度の配列 atmospheres = [0]*100 #の配列 def getdata(): while True: """ #情報の取得 #temp = ser.readline()#.rstrip().decode() #温度に関して #humid = ser.readline()#.rstrip().decode() #湿度に関して #atmosphere = ser.readline()#.rstrip().decode() #気圧に関して #now = datetime.datetime.today() #現在時刻に関して temp = float(temp) humid = float(humid) atmosphere = float(atmosphere) """ temp = 28 humid = 75 atmosphere = 1023 #表示 #print('--------------------------------') #print(now.strftime("%Y/%m/%d %H:%M:%S")) #print("温度:{:.2f}℃".format(temp)) #print("湿度:{:.2f}%".format(humid)) #print("湿度2:{:.2f}Pa".format(atmosphere)) # キュー操作により温湿度データの格納 #temps = queue(temps, temp) #humids = queue(humids, humid) #atmospheres = queue(atmospheres, atmosphere) return temp,humid,atmosphere #ser.close() #ポートを閉じる @app.route("/") def hello(): #temp,humid,atmosphere = getdata() return "Hello World!" #return render_template('/templates/subpage.html',result1 = temp,result2 = humid,result3 = atmosphere ) # 「Ctrl + C」による終了時の処理 def sigint_handler(signal, frame): app.logger.debug("Closed") sys.exit(0) # メイン関数 if __name__ == "__main__": # SIGINTハンドラの設定 signal.signal(signal.SIGINT, sigint_handler) app.run() #app.run(host='0.0.0.0', port=80, threaded=True, debug=True)

/etc/apache2/sites-available/flask.conf

#flask.conf #LoadModule wsgi_module //usr/lib/apache2/modules/mod_wsgi.so <VirtualHost *:80> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ServerName ayame-desktop #ServerName app.localhost.com #ServerAdmin webmaster@localhost #WSGIDaemonProcess flask user=www-data group=www-data threads=5 WSGIDaemonProcess myappli user=www-data group=www-data threads=5 WSGIScriptAlias / /var/www/html/myappli/flask_app.wsgi DocumentRoot /var/www/html/myappli <Directory /var/www/html/myappli> #WSGIProcessGroup flask_app WSGIProcessGroup myappli WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> </VirtualHost>

試したこと

エラーログを元にググってみたりしましたが、解決しませんでした。
望む形で表示されてはいないものの表示はされているので原因の追究に行き詰まりました。

補足事項

python環境はpyenv-virtualenで仮想環境を作っています。
直接flask_script.pyを起動するとラズパイ上ではきちんとホームページが表示されます。
他の機器からのアクセスするとアクセス拒否されます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

katsuko

2021/08/30 23:51

「sudo a2ensite flask」を実行しましたか?
tanakadesuka

2021/08/31 10:01 編集

実行しましたが、解決しませんでした。 $ sudo a2ensite flask Site flask already enabled
guest

回答1

0

自己解決

最終的にOSごと再インストールしたら機能しました。

投稿2022/03/02 13:37

tanakadesuka

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問