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.

Reply via email to