La única forma en que puedo ejecutar aplicaciones en mi máquina local es usando apache y lib-wsgi. He instalado todos los paquetes relevantes, incluidas las codificaciones, pero en mi navegador aparece un error 403 Prohibido y en mis registros de errores aparece esto:
AH00051: child pid 28900 exit signal Aborted (6), possible coredump in /etc/apache2 Fatal Python error: Py_Initialize: Unable to get the locale encoding ImportError: No module named 'encodings'
he corrido
sudo chmod a+x on my files
y
sudo chmod +rw on my folders.
y
sudo chown on my working directories
¿Qué debo hacer para que esto funcione?
Estos son mis archivos:
archivo .conf:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/demo1 ServerName 127.0.0.1 # Give an alias to to start your website url with WSGIDaemonProcess application python-home=/var/www/html/demo1 WSGIProcessGroup flask-hello-app WSGIApplicationGroup %{GLOBAL} WSGIScriptAlias /demo1 /var/www/html/demo1/flask-hello-app.wsgi <Directory /var/www/html/demo1/> # set permissions as per apache2.conf file Options FollowSymLinks # AllowOverride None # Require all granted Order deny,allow Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
matraz-hello-app.wsgi
#!/uae/bin/python3 import logging import sys logging.basicConfig(stream=sys.stderr) sys.path.insert(0, '/var/www/html/demo1/') from application import app as application application.secret_key = 'super_secret_key'
matraz-hola-app.py
from flask import Flask from flask_sqlalchemy import SQLAlchemy import os app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://postgres:F00tBall@127.0.0.1:5432/example' db = SQLAlchemy(app) class Person(db.Model): __tablename__ = 'persons' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(), nullable=False) db.create_all() @app.route('/') def index(): return 'Hello ' if __name__ == '__main__': app.run()
Realmente necesito saber cómo hacer que esto funcione.
Gracias.