I meant to use:

http://site1.me <http://site1.me/>
http://site2.me <http://site2.me/>

in the browser when making the request, not in ServerName. ServerName should be 
just the hostname.

Are their symlinks in the sites-enabled directory to the files in the 
sites-available directory?

Just because they are in sites-available doesn’t mean Apache will read them. On 
your Linux distro the sites have to be enabled, using s2enable, which results 
in a symlink being put in sites-enabled to same site in sites-available.

Graham

> On 23 Sep 2016, at 10:02 PM, Jaqen Nki <projan...@gmail.com> wrote:
> 
> Heres
> 
> /etc/apache2/sites-available$ ls
> 000-default.conf  default-ssl.conf  site1.conf  site2.conf
> 
> 
> config files:
> 
> etchost:
> 
> ##
> # 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.10    site1.me <http://site1.me/>        http://site1.me 
> <http://site1.me/>
> 192.168.1.10    site2.me <http://site2.me/>        http://site2.me 
> <http://site2.me/>
> 
> 
> 
> <VirtualHost *:80>
>                 ServerName http://site1.me <http://site1.me/>
>                 ServerAdmin ad...@mywebsite.com <mailto:ad...@mywebsite.com>
> 
>                 WSGIDaemonProcess site1 
> python-home=/var/www/site1/FlaskApp/FlaskApp/venv
>                 WSGIProcessGroup site1
>                 WSGIApplicationGroup %{GLOBAL}
>                 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 /var/www/site1/logs/error.log
>                 LogLevel warn
>                 CustomLog /var/www/site1/logs/access.log combined
> </VirtualHost>
> 
> 
> <VirtualHost *:80>
>                 ServerName http://site2.me <http://site2.me/>
>                 ServerAdmin ad...@mywebsite.com <mailto:ad...@mywebsite.com>
> 
>                 WSGIDaemonProcess site2 
> python-home=/var/www/site2/FlaskApp/FlaskApp/venv
>                 WSGIProcessGroup site2
>                 WSGIApplicationGroup %{GLOBAL}
>                 WSGIScriptAlias / /var/www/site2/FlaskApp/flaskapp.wsgi
>                 <Directory /var/www/site2/FlaskApp/FlaskApp/>
>                         Order allow,deny
>                         Allow from all
>                 </Directory>
>                 Alias /static /var/www/site2/FlaskApp/FlaskApp/static
>                 <Directory /var/www/site2/FlaskApp/FlaskApp/static/>
>                         Order allow,deny
>                         Allow from all
>                 </Directory>
>                 ErrorLog /var/www/site2/logs/error.log
>                 LogLevel warn
>                 CustomLog /var/www/site2/logs/access.log combined
> </VirtualHost>
> 
> 
> cat /etc/apache2/mods-available/wsgi.load
> 
> LoadModule wsgi_module 
> /usr/lib/apache2/modules/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so
> WSGIRestrictEmbedded On
> 
> Im now getting 500 error at site2.me <http://site2.me/>.  site1 still works.
> 
> 
> 
> 
> On Friday, September 23, 2016 at 4:40:07 AM UTC-7, Graham Dumpleton wrote:
> If you have it with ServerName as I suggest, and there ate /etc/hosts entries 
> mapping the host names to the local system IP, then using:
> 
> http://site1.me <http://site1.me/>
> http://site2.me <http://site2.me/>
> 
> should result in them going to the correct VirtualHost and being handled by 
> respective applications.
> 
> If they aren’t it would suggest the VirtualHost’s aren’t being read by Apache.
> 
> What file are they in?
> 
> If you put a syntax error in the VirtualHost definitions, does Apache fail to 
> start.
> 
> Just add a line with:
> 
>    xxxx
> 
> and it should fail.
> 
> Graham
> 
>> On 23 Sep 2016, at 9:33 PM, Jaqen Nki <proj...@ <>gmail.com 
>> <http://gmail.com/>> wrote:
>> 
>> Hmm I had the DaemonProcess correct just not in the above post, and I 
>> changed the ServerName to site1.me <http://site1.me/> and site2.me 
>> <http://site2.me/>, the etc/hosts file has them both at 192.168.1.10.  Not 
>> sure if/how to resolve the DNS figured that was automatic.  My network 
>> settings say using DHCP, and I use openDNS.  Would I have to add other DNS 
>> entries for each vhost?
>> 
>> On Friday, September 23, 2016 at 4:11:24 AM UTC-7, Graham Dumpleton wrote:
>> 
>>> On 23 Sep 2016, at 9:07 PM, Jaqen Nki <proj...@ <>gmail.com 
>>> <http://gmail.com/>> wrote:
>>> 
>>> yeah my bad:
>>> 
>>> <VirtualHost *:80>
>>>                 ServerName 192.168.1.10
>>>                 ServerAlias site1.me <http://site1.me/>
>> 
>> Only use:
>> 
>> ServerName site1.me <http://site1.me/>
>> 
>> Don’t use ServerAlias and don’t use the IP.
>> 
>>>                 ServerAdmin ad...@ <>mywebsite. <http://mywebsite.com/>com 
>>> <http://mywebsite.com/>
>>> 
>>>                 WSGIDaemonProcess site1 
>>> python-home=/var/www/site1/FlaskApp/FlaskApp/venv
>>>                 WSGIProcessGroup site1
>>>                 WSGIApplicationGroup %{GLOBAL}
>>>                 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 /var/www/site1/logs/error.log
>>>                 LogLevel warn
>>>                 CustomLog /var/www/site1/logs/access.log combined
>>> </VirtualHost>
>>> 
>>> <VirtualHost *:80>
>>>                 ServerName 192.168.1.10
>>>                 ServerAlias site2.me <http://site2.me/>
>> 
>> ServerName site2.me <http://site2.me/>
>>>                 ServerAdmin ad...@ <>mywebsite. <http://mywebsite.com/>com 
>>> <http://mywebsite.com/>
>>> 
>>>                 WSGIDaemonProcess site1 
>>> python-home=/var/www/site2/FlaskApp/FlaskApp/venv
>> 
>> This should be:
>> 
>>      WSGIDaemonProcess site2 
>> python-home=/var/www/site2/FlaskApp/FlaskApp/venv
>> 
>> The server shouldn’t even have started with what you had as site1 name 
>> already used and should have complained about duplicate. Are you sure both 
>> were being read.
>> 
>> Also, do you actually have resolvable DNS for site1.me <http://site1.me/> 
>> and site2.me <http://site2.me/>, or entries for them in /etc/hosts. Name 
>> based virtual hosts will not work without.
>> 
>> Graham
>> 
>>>                 WSGIProcessGroup site2
>>>                 WSGIApplicationGroup %{GLOBAL}
>>>                 WSGIScriptAlias / /var/www/site2/FlaskApp/flaskapp.wsgi
>>>                 <Directory /var/www/site2/FlaskApp/FlaskApp/>
>>>                         Order allow,deny
>>>                         Allow from all
>>>                 </Directory>
>>>                 Alias /static /var/www/site2/FlaskApp/FlaskApp/static
>>>                 <Directory /var/www/site2/FlaskApp/FlaskApp/static/>
>>>                         Order allow,deny
>>>                         Allow from all
>>>                 </Directory>
>>>                 ErrorLog /var/www/site2/logs/error.log
>>>                 LogLevel warn
>>>                 CustomLog /var/www/site2/logs/access.log combined
>>> </VirtualHost>
>>> 
>>> 
>>> On Friday, September 23, 2016 at 2:28:01 AM UTC-7, Graham Dumpleton wrote:
>>> Can you post the two VirtualHost configurations?
>>> 
>>> The IP address should not be mentioned in the VirtualHost definition 
>>> anywhere normally. So shouldn’t have IP in ServerName either.
>>> 
>>> Graham
>>> 
>>>> On 23 Sep 2016, at 5:46 PM, Jaqen Nki <proj...@ <>gmail.com 
>>>> <http://gmail.com/>> wrote:
>>>> 
>>>> Ok, so I followed the steps above, and lo and behold the site1.me 
>>>> <http://site1.me/> worked!  But my 2nd test site at site2.me 
>>>> <http://site2.me/> did not.  (What I did was duplicate my site1 project as 
>>>> site2, changed all the conf files and gave it a new database to reflect 
>>>> the change.  I think theres some conflict as both vhost configs are trying 
>>>> to share the same local IP.  I noticed in the vhost file the ServerName 
>>>> has an incorrect IP address (192.168.1.7) for the ubuntu server but it 
>>>> doesnt affect anything since the ServerAlias site1.me <http://site1.me/> 
>>>> points to the correct server IP on my mac's /etc/hosts file:  192.168.1.11 
>>>>   site1.me <http://site1.me/>.)  I got this info upon visiting that domain 
>>>> : 
>>>> 
>>>> (0)REMOTE_ADDR = 206.127.117.221
>>>> REMOTE_PORT = 11233
>>>> HTTP_USER_AGENT = Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:48.0) 
>>>> Gecko/20100101 Firefox/48.0
>>>> HTTP_ACCEPT = 
>>>> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
>>>> HTTP_ACCEPT_CHARSET = 
>>>> HTTP_CONNECTION = keep-alive
>>>> HTTP_HOST = site2.me <http://site2.me/>
>>>> HTTP_REFERER = 
>>>> REQUEST_METHOD = GET
>>>> GATEWAY_INTERFACE = CGI/1.1
>>>> PATH_TRANSLATED = 
>>>> SERVER_NAME = site2.me <http://site2.me/>
>>>> SERVER_ADDR = 192.168.5.5
>>>> 2016-09-23 10:29:04
>>>> 
>>>> After which I tested copying the same line in /etc/hosts on mac, 
>>>> 192.168.1.11 site1.me <http://site1.me/>
>>>> 192.168.1.11 site2.me <http://site2.me/>
>>>> and when visiting site2.me <http://site2.me/> in browser I actually got 
>>>> the Apache2 Ubuntu Default - It Works! page, so Im close but theres some 
>>>> conflict with an IP or hostname it seems.  
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Wednesday, September 21, 2016 at 7:06:05 PM UTC-7, Graham Dumpleton 
>>>> wrote:
>>>> If the intention is still to try and do it yourself with one Apache 
>>>> instance, the description given before is still valid.
>>>> 
>>>> So not sure I have anything more to add at this point. Personally I am a 
>>>> fan of PaaS, but cost can be a concern with those.
>>>> 
>>>> Can perhaps go more into it when you start progressing more with the setup.
>>>> 
>>>> Graham 
>>>> 
>>>>> On 21 Sep 2016, at 3:57 PM, Jaqen Nki <proj...@ <>gmail.com 
>>>>> <http://gmail.com/>> wrote:
>>>>> 
>>>>> Hey Graham, been awhile.  Glad I could help ya out with that amzn gift.  
>>>>> Got busy doing other crap and on road trips this summer so took a break 
>>>>> from programming.  Also hit a wall with flask where it became difficult 
>>>>> to build a dynamic user dashboard system so got discouraged.  I like 
>>>>> flask but Im finding its extensibility and total freedom to craft your 
>>>>> own web app to be a double edged sword.  I may use it for simple static 
>>>>> sites but for more complexity I may have to abandon it because it feels 
>>>>> like the things I want to do become too convoluted and require skill on 
>>>>> the level of a web/software engineer.  Not sure why I would reinvent the 
>>>>> proverbial 'wheel' when at my level it will be inferior and may be 
>>>>> bottlenecked or have security breaches Im unaware of when someone at a 
>>>>> much higher level has built something much better.  Not only that, to 
>>>>> manually edit every sql query, every init.py change, every html change is 
>>>>> going to be a logistical nightmare if Im managing like 20 websites.  So 
>>>>> Im knocking out a good django series and I like how its structured, more 
>>>>> split up, easier to manage via admin panel, apps can be reused etc.  I 
>>>>> hope its going to solve some of these logistical and efficiency issues as 
>>>>> far as building and managing websites.  My short term goal is to build 
>>>>> sites like a blog with commenting system, a forum, dynamic user 
>>>>> dashboard, and later on a basic ecommerce store, and to be able to manage 
>>>>> these sites easier via django admin (or partially hand the reins to the 
>>>>> site owner for basic content posting/editing).   That way my time is 
>>>>> freed up from doing menial edits and whatnot for client's sites.  I hope 
>>>>> django can be my answer to these dilemmas.
>>>>> 
>>>>> Anyways I was curious if you have experience / advice in this area, and 
>>>>> currently Im revisiting how to properly set up numerous projects each 
>>>>> with their own separate virtual environment, as we previously discussed 
>>>>> below.  I plan on using this local ubuntu VM as my local dev server, 
>>>>> hosting all my projects (5-10 short term, 20-50+ eventually) and then 
>>>>> uploading them to digital ocean for production.  All I need at the moment 
>>>>> is to set up a few projects and make sure their virtualenvs are separate 
>>>>> but sharing the same IP.  Thanks.
>>>>> 
>>>>> 
>>>>> **********
>>>>> On 12 May 2016, at 6:32 PM, Jaqen Nki <proj...@gmail.com <>> wrote: 
>>>>> So I take it for a new project, I repeat the process, new vhost and .wsgi 
>>>>> file, and create a wsgi.load file for each site? 
>>>>> 
>>>>> The wsgi.load file should only have in it the LoadModule, WSGIPythonHome 
>>>>> and WSGIRestrictEmbedded directives. They applied to the server as a 
>>>>> whole and not specific VirtualHosts. 
>>>>> 
>>>>> When you talk about adding more VirtualHost’s, that is when you will need 
>>>>> to be a bit careful with respect to virtual environments. 
>>>>> 
>>>>> First up, a separate VirtualHost is used for each distinct site hostname. 
>>>>> Don’t use separate VirtualHost’s if only trying to mount different 
>>>>> applications at different sub URLs of the same site. Seen people try and 
>>>>> use multiple VirtualHost’s for same site hostname too many times. Is 
>>>>> wrong way. 
>>>>> 
>>>>> Because you are going to have multiple VirtualHost’s would suggest doing 
>>>>> things a little differently. 
>>>>> 
>>>>> First up, the wsgi.load file would only have LoadModule and 
>>>>> WSGIRestrictEmbedded directives in it. Not WSGIPythonHome. 
>>>>> 
>>>>> In that file the WSGIPythonHome was acting as a fallback for both 
>>>>> embedded mode and daemon mode. With WSGIRestrictEmbedded set to On, don’t 
>>>>> need the fallback. Instead, we want to set python-home for each daemon 
>>>>> process group setup using WSGIDaemonProcess directive. 
>>>>> 
>>>>> Thus: 
>>>>> 
>>>>> # wsgi.load 
>>>>> 
>>>>> LoadModule … 
>>>>> WSGIRestrictEmbedded On 
>>>>> 
>>>>> # site1.conf 
>>>>> 
>>>>> <VirtualHost *:80> 
>>>>> ServerName site1.host.name <http://site1.host.name/> 
>>>>> 
>>>>> WSGIDaemonProcess site1 python-home=/some/path/site1/
>>>>> venv 
>>>>> WSGIProcessGroup site1 
>>>>> WSGIApplicationGroup %{GLOBAL} 
>>>>> 
>>>>> WSGIScriptAlias / /some/path/site1/app.wsgi 
>>>>> 
>>>>> ... 
>>>>> </VirtualHost> 
>>>>> 
>>>>> # site2.conf 
>>>>> 
>>>>> <VirtualHost *:80> 
>>>>> ServerName site2.host.name <http://site2.host.name/> 
>>>>> 
>>>>> WSGIDaemonProcess site2 python-home=/some/path/site2/venv 
>>>>> WSGIProcessGroup site2 
>>>>> WSGIApplicationGroup %{GLOBAL} 
>>>>> 
>>>>> WSGIScriptAlias / /some/path/site1/app.wsgi 
>>>>> 
>>>>> ... 
>>>>> </VirtualHost> 
>>>>> 
>>>>> If you do need to host multiple applications under same VirtualHost at 
>>>>> different sub URLs, you would use something like: 
>>>>> 
>>>>> # site3.conf 
>>>>> 
>>>>> <VirtualHost *:80> 
>>>>> ServerName site3.host.name <http://site3.host.name/> 
>>>>> 
>>>>> WSGIDaemonProcess site3_main python-home=/some/path/site3_main/venv 
>>>>> WSGIDaemonProcess site3_suburl python-home=/some/path/site3_suburl/venv 
>>>>> 
>>>>> WSGIProcessGroup site3 
>>>>> WSGIApplicationGroup %{GLOBAL} 
>>>>> 
>>>>> WSGIScriptAlias /suburl /some/path/site3_suburl/app.wsgi 
>>>>> process-group=site3_suburl 
>>>>> WSGIScriptAlias / /some/path/site3_main/app.wsgi 
>>>>> 
>>>>> ... 
>>>>> </VirtualHost>
>>>>> **********
>>>>> 
>>>>> -- 
>>>>> 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 modwsgi+u...@ <>googlegroups.com <http://googlegroups.com/>.
>>>>> To post to this group, send email to mod...@ <>googlegroups.com 
>>>>> <http://googlegroups.com/>.
>>>>> 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 modwsgi+u...@googlegroups.com <>.
>>>> To post to this group, send email to mod...@googlegroups.com <>.
>>>> 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 modwsgi+u...@googlegroups.com <>.
>>> To post to this group, send email to mod...@googlegroups.com <>.
>>> 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 sub
> 
> 
> -- 
> 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 modwsgi+unsubscr...@googlegroups.com 
> <mailto:modwsgi+unsubscr...@googlegroups.com>.
> To post to this group, send email to modwsgi@googlegroups.com 
> <mailto:modwsgi@googlegroups.com>.
> 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 modwsgi+unsubscr...@googlegroups.com.
To post to this group, send email to modwsgi@googlegroups.com.
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to