When building mod_wsgi from source code did you try:
./configure --with-python=python3
Ensure you first do a:
make distclean
to clear out old build from source directory if you have done a prior build in
the directory.
If you need an ability during development to be able to use either Python 2 or
Python 3, consider using mod_wsgi-express.
https://pypi.python.org/pypi/mod_wsgi
<https://pypi.python.org/pypi/mod_wsgi>
Graham
> On 23 Mar 2016, at 7:38 PM, Jaqen Nki <[email protected]> wrote:
>
> Hey,
>
> Simple question so I made my own quick setup guide for a new python web app
> served by ubuntu 14.04.3 vm, apache 2.4.7 and from source latest mod wsgi
> (posted below). Im wondering how could I get the app and modwsgi and apache
> to only run on the system python3.4.3 or the 3.4 venv I set up rather than
> the default system 2.x? It seems my venv isnt connecting properly to modwsgi
> or something and cant serve the web app because I had to pip install flask
> into the standard systems python (2.x) to get the configuration to work. So
> my concern is if I start building/testing 5-10 web projects how is that going
> to work unless my venv's python is connecting to apache and modwsgi, staying
> isolated from the system pythons while properly connecting, hence the point
> of virtual environments.? Im leaning towards python3 rather than legacy
> python because Ive started with py3, but not sure if it even matters that the
> app is running on py2 or any conflicts as a result of using 2.x and 3.x on
> the same app.
>
>
>
> ************************************************************************************************************************************************************************************************************************
>
> NEW PYTHON WEB APP SETUP INSTRUCTIONS - UBUNTU 14.04 VM / SERVER
>
>
> 0. PREREQUISITES: # on mac you may need
> xcode-select --install
>
> sudo apt-get update / upgrade
> sudo apt-get install apache2
> sudo apt-get install apache2-dev python-dev python3-dev
> sudo apt-get install mysql-client mysql-server
>
>
>
> 1. INSTALL MOD_WSGI FROM SOURCE (run from a temp folder, chown
> it if needed)
>
>
> curl -sL https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.21.tar.gz
> <https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.21.tar.gz> | tar xz
>
> cd mod_wsgi-4.4.21
>
> ./configure #( --with-apxs=/usr/local/apache/bin/apxs \
> # --with-python=/usr/local/bin/python)
> make
> sudo make install
>
> make clean # To cleanup after installation
> make distclean # If you need to build the module for a
> different version of Apache
>
>
> sudo nano /etc/apache2/mods-available/wsgi.load # create load
> module file
>
>
> # add the next string to the file:
> LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so #
> save, exit, then
>
>
> sudo a2enmod wsgi
> sudo service apache2 restart
>
>
>
> 2. CREATE PROJECT STRUCTURE
>
> cd /var/www
> sudo mkdir site1 cd site1
> sudo mkdir FlaskApp cd FlaskApp
> sudo mkdir FlaskApp cd FlaskApp
> sudo mkdir static templates
>
> sudo nano __init__.py # copy text below into file,
> save, close :
>
> from flask import Flask
> app = Flask(__name__)
> @app.route("/")
> def hello():
> return "Hello, flask app served to client browser properly!"
> if __name__ == "__main__":
> app.run(debug=True)
>
>
>
> 3. SET UP VIRTUAL ENV + INSTALL FLASK
>
> sudo apt-get install python3-pip
>
> sudo python3.4 -m venv --without-pip venv # pyvenv workaround
> for ubuntu
> source venv/bin/activate
>
> sudo pip3 install flask
> sudo python3 __init__.py # run test, check
> localhost:5000
>
> deactivate
>
>
> # !! have to install flask into system python (python 2.x) or the app wont be
> served to the browser
>
> sudo pip install flask
>
>
>
> 4. CONFIGURE AND ENABLE A NEW VIRTUAL HOST (one for each new
> web app)
>
> sudo nano /etc/apache2/sites-available/site1.conf # copy
> lines, save, exit :
>
> <VirtualHost *:80>
> ServerName 192.168.1.112
> ServerAlias site1.me <http://site1.me/>
> ServerAdmin [email protected] <mailto:[email protected]>
> WSGIScriptAlias / /var/www/site1/FlaskApp/flaskapp.wsgi
> <Directory /var/www/site1/FlaskApp/FlaskApp/>
> Order allow,deny
> Allow from all
> </Directory>
> Alias /static /var/www/site1/FlaskApp/FlaskApp/static
> <Directory /var/www/site1/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>
>
>
> sudo a2ensite site1 # enable vhost
>
> sudo service apache2 reload
>
>
>
> 5. CREATE .wsgi FILE TO LINK WSGI TO YOUR VHOST
>
> sudo nano /var/www/site1/FlaskApp/flaskapp.wsgi
>
> # copy lines, save, exit
> # try? #!/usr/bin/python3.4
> #!/usr/bin/python
> import sys
> import logging
> logging.basicConfig(stream=sys.stderr)
> sys.path.insert(0,"/var/www/site1/FlaskApp/")
>
> from FlaskApp import app as application
> application.secret_key = 'a7j3sk29dk6gh4n69x0n70nn81mps'
>
>
>
>
> 6. RESTART APACHE, SET UP HOSTS FILE ALIAS (MAC), TEST IN BROWSER
>
> sudo service apache2 restart # refresh configuration
>
> sudo nano /etc/hosts # on MAC add line for your server IP and alias,
> save, check in browser :
>
>
> ##
> # Host Database
> #
> # localhost is used to configure the loopback interface
> # when the system is booting. Do not change this entry.
> ##
> 127.0.0.1 localhost
> 255.255.255.255 broadcasthost
> ::1 localhost
>
> 192.168.1.112 site1.me <http://site1.me/>
>
>
> SUCCESS !
>
>
> **************************************************************************************************************************************************************************
>
> --
> 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]
> <mailto:[email protected]>.
> To post to this group, send email to [email protected]
> <mailto:[email protected]>.
> Visit this group at https://groups.google.com/group/modwsgi
> <https://groups.google.com/group/modwsgi>.
> For more options, visit https://groups.google.com/d/optout
> <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.