The conda environment must not be set correctly because it can't find flask:
[Mon May 08 16:39:11.002873 2017] [:error] [pid 31696:tid 139896253531904]
[client
208.184.3.194:36413] Traceback (most recent call last):
[Mon May 08 16:39:11.002923 2017] [:error] [pid 31696:tid 139896253531904]
[client
208.184.3.194:36413] File "/var/www/FlaskApp/flaskapp.wsgi", line 7, in
<module>
[Mon May 08 16:39:11.002989 2017] [:error] [pid 31696:tid 139896253531904]
[client
208.184.3.194:36413] from FlaskApp import app as application
[Mon May 08 16:39:11.003012 2017] [:error] [pid 31696:tid 139896253531904]
[client
208.184.3.194:36413] File "/var/www/FlaskApp/FlaskApp/__init__.py", line 1
, in <module>
[Mon May 08 16:39:11.003044 2017] [:error] [pid 31696:tid 139896253531904]
[client
208.184.3.194:36413] from flask import Flask
[Mon May 08 16:39:11.003081 2017] [:error] [pid 31696:tid 139896253531904]
[client
208.184.3.194:36413] ImportError: No module named flask
On Monday, May 8, 2017 at 11:45:31 AM UTC-6, Vanessa Marques wrote:
>
> Brian, check out /var/log/apache2/error.log to see the errors and let us
> know what is in there.
>
> I'm having the exact same challenge as you (trying to configure flask +
> apache + anaconda + mod_wsgi on an ubuntu EC2 instance).
>
> On Monday, May 8, 2017 at 1:59:16 PM UTC-3, Brian wrote:
>>
>> 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]> 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].
>>> 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].
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.