Thank you Graham.
Any recs on testing and/or debugging a 500 internal server error when I try
to hit the site? I'm assuming that it's in the configuration so I'm going
to add full details of the process and config files below.
All commands ran:
## build conda environment
conda create --name test1.0 python==3.6.1 pandas jupyter requests flask
## activate conda environment
source activate test1.0
## get apache2
sudo apt-get install apache2
sudo apt-get install apache2-dev
## get mod_wsgi
#sudo apt-get install libapache2-mod-wsgi
pip install mod_wsgi
## force load Anaconda's shared library
mod_wsgi-express module-config
## enable mod_wsgi
sudo a2enmod wsgi
## get git
sudo apt-get install git
## create config for apache to know about wsgi and flask app
touch /etc/apache2/sites-available/FlaskApp.conf
## disable default config
sudo a2dissite 000-default
## provide new config
sudo a2ensite FlaskApp.conf
## start/restart apache
sudo service apache2 restart
Contents of FlaskApp.conf:
<VirtualHost *:80>
ServerName <IPv4 PUBLIC IP>
ServerAdmin ubuntu@<IPv4 PUBLIC
IP>.us-west-2.compute.amazonaws.com
WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
<Directory /var/www/FlaskApp/FlaskApp/>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/FlaskApp/FlaskApp/static
<Directory /var/www/FlaskApp/FlaskApp/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Location of flask app and .wsgi file*.*
(test1.0) ubuntu:/var/www$ tree
*.*
├── *FlaskApp*
├── *FlaskApp*
│ ├── __init__.py
│ ├── *static*
│ └── *templates*
└── flaskapp.wsgi
Contents of flaskapp.wsgi:
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/FlaskApp/")
from FlaskApp import app as application
application.secret_key = '<secret>'
Contents of __init__.py:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World (flask via conda env)!"
if __name__ == "__main__":
app.run()
When visiting the site, I get a 500 internal server error. I likely messed
up something with the config. Any help is greatly appreciated.
Best,
-Brian
On Sunday, May 7, 2017 at 6:32:18 PM UTC-6, Graham Dumpleton wrote:
>
> In the first instance you should ensure things work with a WSGI hello
> world, no Flask framework. This ensures setup with Anaconda Python is okay,
> which sometimes doesn't always work because of stupid things Anaconda
> Python does which breaks the ability to use it in embedded systems.
>
> As to deploying Flask, the Flask documentation has details:
>
> * http://flask.pocoo.org/docs/0.12/deploying/mod_wsgi/
>
> Also ensure you read:
>
> *
> http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html
>
> so you are setting up any Python virtual environment correctly as guides
> for frameworks often don't suggest the preferred method, or simply don't
> address it.
>
> Graham
>
> On 7 May 2017, at 8:00 AM, Brian Lehman <[email protected]
> <javascript:>> wrote:
>
> Thanks Graham. So everything is installed. Being brand new to this world,
> I'm looking for a tutorial to (and please forgive me as I'm likely using
> the wrong terminology) see how to tell Apache to use mod_wsgi to run my
> flask app. I'm guessing that I need to change some config files in Apache
> to use my conda environment and then write some .wsgi file? However, I'm
> seeing quite a few different threads on this subject. Any advice is greatly
> appreciated.
>
> ## get apache2
> sudo apt-get install apache2
> sudo apt-get install apache2-dev
>
> ## get mod_wsgi
> pip install mod_wsgi
>
> #force load Anaconda's shared library
> mod_wsgi-express module-config
>
> ## start/restart apache
> sudo service apache2 restart
>
> On Thursday, May 4, 2017 at 4:22:08 PM UTC-6, Graham Dumpleton wrote:
>>
>> As per instructions in:
>>
>> https://pypi.python.org/pypi/mod_wsgi
>>
>> You need to ensure you have the 'dev' packages for Apache installed.
>>
>> If you are running Debian or Ubuntu Linux with Apache 2.4 system
>> packages, regardless of which Apache MPM is being used, you would need both:
>>
>> apache2
>> apache2-dev
>>
>> Note that if using Anaconda Python, after having installed mod_wsgi with
>> pip, ensure you run:
>>
>> mod_wsgi-express module-config
>>
>> to show the configuration you need to include in the system Apache if you
>> intend manually configuring it for mod_wsgi, instead of using
>> 'mod_wsgi-express start-server'.
>>
>> This is necessary as Anaconda Python can require extra configuration
>> directives to force load its shared library. That command should output the
>> appropriate lines, although just check that the generated line for LoadFile
>> directive actually points at a valid path. Seen one report where for
>> Anaconda Python the path it generated was wrong and it had to be changed.
>>
>> Graham
>>
>> On 5 May 2017, at 2:54 AM, Brian Lehman <[email protected]> wrote:
>>
>> Good day. When I try to pip install mod_wsgi inside of an anaconda env
>> called test1.0 on an aws ec2 instance w/ ubuntu, I get the folowing error.
>> Any suggestions?
>>
>> (test1.0) ubuntu$ python --version
>>
>> Python 3.6.1 :: Continuum Analytics, Inc.
>>
>> (test1.0) ubuntu$
>>
>> (test1.0) ubuntu$
>>
>> (test1.0) ubuntu$ pip install mod_wsgi
>>
>> Collecting mod_wsgi
>>
>> Using cached mod_wsgi-4.5.15.tar.gz
>>
>> Complete output from command python setup.py egg_info:
>>
>> Traceback (most recent call last):
>>
>> File "<string>", line 1, in <module>
>>
>> File "/tmp/pip-build-80walwu3/mod-wsgi/setup.py", line 164, in
>> <module>
>>
>> 'missing Apache httpd server packages.' % APXS)
>>
>> RuntimeError: The 'apxs' command appears not to be installed or is
>> not executable. Please check the list of prerequisites in the documentation
>> for this package and install any missing Apache httpd server packages.
>>
>>
>> ----------------------------------------
>>
>> Command "python setup.py egg_info" failed with error code 1 in
>> /tmp/pip-build-80walwu3/mod-wsgi/
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "modwsgi" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/modwsgi.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
> --
> You received this message because you are subscribed to the Google Groups
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> To post to this group, send email to [email protected] <javascript:>
> .
> Visit this group at https://groups.google.com/group/modwsgi.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
--
You received this message because you are subscribed to the Google Groups
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.