Hi, Thank you. I'll get to work on the static folder etc. and begin to work on a django site, now that the connection with apache is working. Regards, Bob
On Tue, Jul 10, 2018 at 2:42 PM, Graham Dumpleton < [email protected]> wrote: > > > On 11 Jul 2018, at 10:35 am, Bob Bobsled <[email protected]> wrote: > > Hi, > Thank you for your comments. I feel like I'm getting closer to solving > this problem with the help. > > For the django project and app files (urls.py) I am just using only the > first part of https://docs.djangoproject.com/en/2.0/intro/tutorial01/ > about setting up a project and app. Mine are just renamed mysite3, and > polls3 respectively. > > I changed DocumentRoot in vhosts below to c:/wamp/www per instructions. > The Urls.py files are shown below. I just changed: path('polls/', > include('polls.urls')) from the tutorial to be polls3. > > Since I'm a novice at django and just trying to get the production > plumbing, so to speak, setup to work, then the urls.py patterns start to > get over my head for how to change those effectively. > > When I try to make changes from the tutorial ex. and migrate, I get errors. > > re: urls.py use of urlpattern: > > url(r'^$', views.post_list, name='post_list'), > > >python manage.py migrate > ... > File "c:\wamp\mysite3\polls3\urls.py", line 8, in <module> > url(r'^$', views.post_list, name='post_list'), > AttributeError: module 'polls3.views' has no attribute 'post_list' > ---------- > > > That example line was specific to my application. You would need to map > '^$' to a handler in your own code. > > Since the admin page works, then you should also be able to do: > > http://mysite3.xxx.xxx.xx.xx.nip.io/polls3 > > and you will get to the code from the tutorial you added. > > When I enter in the browser: > http://mysite3.xxx.xxx.xx.xx.nip.io/admin > > I see Django administration > Username > Password > Log in > ( I have an empty db.sqlite3 in the project but did not do createsuperuser > yet) > > > One thing which will be missing though is style sheets so the page looks > nicer. > > How to host static files are covered in: > > https://docs.djangoproject.com/en/2.0/howto/deployment/ > wsgi/modwsgi/#serving-files > > and: > > https://docs.djangoproject.com/en/2.0/howto/deployment/ > wsgi/modwsgi/#serving-the-admin-files > > If only doing then tutorial, it is better to use the Django development > server rather than trying to host with mod_wsgi, as issues like hosting the > static files will be automatically handled for you when using the > development server. > > Graham > > > ...but otherwise still seeing 404 error. ex. http://polls3.xxx.xxx.xx.xx. > nip.io > ================================= > > //httpd-vhosts.conf------- > <VirtualHost *:80> > ServerName localhost > ServerAlias localhost > DocumentRoot c:/wamp/www > <Directory "c:/wamp/www/"> > Options +Indexes +Includes +FollowSymLinks +MultiViews > AllowOverride All > #Require local > Require all granted > </Directory> > </VirtualHost> > > > <VirtualHost *:80> > ServerName mysite3.xxx.xxx.xx.xx.nip.io > ServerAlias mysite3.xxx.xxx.xx.xx.nip.io > DocumentRoot c:/wamp/www > WSGIScriptAlias / "C:/wamp/mysite3/mysite3/wsgi.py" > <Directory "C:/wamp/mysite3/mysite3/"> > <Files wsgi.py> > Require all granted > </Files> > </Directory> > </VirtualHost> > ===================== > > //mysite3/mysite3/urls.py > > from django.contrib import admin > from django.urls import include, path > urlpatterns = [ > path('polls3/', include('polls3.urls')), > path('admin/', admin.site.urls), > ] > -------------------------- > //mysite3/polls/urls.py > > from django.urls import path > from . import views > > urlpatterns = [ > path('', views.index, name='index'), > ] > -------------------------- > //mysite3/polls3/views.py > > from django.shortcuts import render > from django.http import HttpResponse > > def index(request): > return HttpResponse("Hello, world. You're at the polls3 index.") > > > > > > On Tue, Jul 10, 2018 at 11:37 AM, Graham Dumpleton < > [email protected]> wrote: > >> Comments included below. >> >> On 11 Jul 2018, at 5:20 am, Bob Bobsled <[email protected]> wrote: >> >> Hi, >> Sorry for the detailed info posting below. I tried to follow all >> instructions given from above. >> >> I have changed the django project from the wamp document root >> (c:wamp/www/mysite2) to be alongside it (c:/wamp/mysite3), instead, >> and reconfigured httpd.conf, and virtual host according to directions >> above. >> Still getting errors with the .nip.io approach. Not sure how to >> continue. >> >> The goal was to continue to run our non-django wamp sites but also add a >> django site using >> wamp's apache. >> >> This works fine without .nip.io approach for django, but buggers all our >> non-django sites on port 80. So still trying to get them to >> all play nicely together. >> >> Thank you, >> Bob >> >> >> //httpd.conf----- >> >> LoadFile "c:/users/administrator/appdata/local/programs/python/python >> 36-32/python36.dll" >> LoadModule wsgi_module "c:/users/administrator/appdat >> a/local/programs/python/python36-32/lib/site-packages/mod_ >> wsgi/server/mod_wsgi.cp36-win32.pyd" >> >> WSGIPythonHome "c:/users/administrator/appdat >> a/local/programs/python/python36-32" >> WSGIPythonPath "C:/wamp/mysite3" >> >> ================================ >> >> //httpd-vhosts.conf-------- >> >> <VirtualHost *:80> >> ServerName localhost >> ServerAlias localhost >> DocumentRoot c:/wamp/www >> <Directory "c:/wamp/www/"> >> Options +Indexes +Includes +FollowSymLinks +MultiViews >> AllowOverride All >> #Require local >> Require all granted >> </Directory> >> </VirtualHost> >> >> <VirtualHost *:80> >> ServerName mysite3.xxx.xxx.xx.xx.nip.io >> ServerAlias mysite3.xxx.xxx.xx.xx.nip.io >> DocumentRoot c:/wamp/mysite3 >> >> >> This is still a problem. You are better off leaving this as: >> >> DocumentRoot c:/wamp/www >> >> The application code should not be under any DocumentRoot of any >> VirtualHost. >> >> WSGIScriptAlias / "C:/wamp/mysite3/mysite3/wsgi.py" >> <Directory "C:/wamp/mysite3/mysite3/"> >> <Files wsgi.py> >> Require all granted >> </Files> >> </Directory> >> </VirtualHost> >> ================================ >> >> //settings.py----------- >> DEBUG = True >> ALLOWED_HOSTS = ["localhost", "xxx.xxx.xx.xx", " >> polls3.xxx.xxx.xx.xx.nip.io", "mysite3.xxx.xxx.xx.xx.nip.io"] >> >> In the browser use URL: http://polls3.xxx.xxx.xx.xx.nip.io >> >> ERROR: >> =============================== >> First takes me to the WAMP php config page showing all wamp sites >> listed. Then if select >> mysite3.xxx.xxx.xx.xx.nip.io, see: >> >> Page not found (404) >> Request Method: GET >> Request URL: http://mysite3.xxx.xxx.xx.xx.nip.io/ >> Using the URLconf defined in mysite3.urls, Django tried these URL >> patterns, in this order: >> >> polls3/ >> admin/ >> The empty path didn't match any of these. >> >> >> Which suggests you don't have a URL pattern in your Django setup for >> matching the root of the site. >> >> What does your urls.py file look like? >> >> An example urls.py would be: >> >> urlpatterns = [ >> url(r'^$', views.post_list, name='post_list'), >> url(r'^login/$', auth_views.login, {'template_name': >> 'blog/login.html'}, name='login'), >> url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'), >> url(r'^post/(?P<pk>\d+)/edit/$', views.post_edit, name='post_edit'), >> url(r'^post/new/$', views.post_new, name='post_new'), >> ] >> >> Do you have that URL pattern for '^$'? >> >> What happens in you access: >> >> http://mysite3.xxx.xxx.xx.xx.nip.io/admin >> >> Graham >> >> You're seeing this error because you have DEBUG = True in your Django >> settings file. Change that to False, and Django will display a standard 404 >> page. >> ================================ >> ================================ >> >> >> //settings.py----------- >> DEBUG = False >> ALLOWED_HOSTS = ["localhost", "xxx.xxx.xx.xx", " >> polls3.xxx.xxx.xx.xx.nip.io", "mysite3.xxx.xxx.xx.xx.nip.io"] >> >> >> In the browser use URL: http://polls3.xxx.xxx.xx.xx.nip.io >> ERROR: >> ================================ >> First takes me to the WAMP php config page showing all wamp sites >> listed. Then if select >> mysite3.xxx.xxx.xx.xx.nip.io, see: >> >> Not Found >> The requested URL / was not found on this server. >> >> >> On Mon, Jul 9, 2018 at 3:24 PM, Graham Dumpleton < >> [email protected]> wrote: >> >>> >>> >>> On 10 Jul 2018, at 10:40 am, Bob Bobsled <[email protected]> >>> wrote: >>> >>> Hi, >>> That's an interesting approach. >>> >>> I tried with the django project in c:/wamp/www/mysite2, and the placed >>> the polls2 app inside the mysite2. >>> >>> I'm still getting the 404 error when trying >>> httpd://polls2.xxx.xxx.xx.xx.nip.io >>> >>> >>> Can't help unless can see whether the 404 is from Apache or Django. >>> >>> Have you tried setting DEBUG=True in Django settings temporarily to see >>> if it is getting through to Django. >>> >>> It initially asked me to add the url to settings.py, but still no joy. >>> >>> Not sure what I might be doing wrong. Any help appreciated. >>> >>> Regards, >>> Bob >>> >>> >>> //httpd.conf----------------- >>> >>> LoadFile "c:/users/administrator/appdata/local/programs/python/python >>> 36-32/python36.dll" >>> LoadModule wsgi_module "c:/users/administrator/appdat >>> a/local/programs/python/python36-32/lib/site-packages/mod_ws >>> gi/server/mod_wsgi.cp36-win32.pyd" >>> >>> WSGIPythonHome "c:/users/administrator/appdat >>> a/local/programs/python/python36-32" >>> >>> WSGIScriptAlias / C:/wamp/www/mysite2/mysite2/wsgi.py >>> WSGIPythonPath C:/wamp/www/mysite2 >>> <Directory "C:/wamp/www/mysite2/mysite2/"> >>> <Files wsgi.py> >>> Order deny,allow >>> >>> >>> You don't need this Order directive in Apache 2.4, only Require all >>> granted. >>> >>> Require all granted >>> </Files> >>> </Directory> >>> >>> >>> The WSGIScriptAlias and Directory block would usually be inside of the >>> VirtualHost where for the application. >>> >>> //httpd-vhosts.conf---------------------------------- >>> >>> <VirtualHost *:80> >>> ServerName localhost >>> ServerAlias localhost >>> DocumentRoot c:/wamp/www >>> <Directory "c:/wamp/www/"> >>> Options +Indexes +Includes +FollowSymLinks +MultiViews >>> AllowOverride All >>> #Require local >>> Require all granted >>> </Directory> >>> </VirtualHost> >>> >>> <VirtualHost *:80> >>> ServerName polls2.xxx.xxx.xx.xx.nip.io >>> ServerAlias polls2.xxx.xxx.xx.xx.nip.io >>> DocumentRoot c:/wamp/www >>> >>> >>> You should not put your Django code under the DocumentRoot directory. >>> >>> <Directory "C:/wamp/www/mysite2/"> >>> Options +Indexes +Includes +FollowSymLinks +MultiViews >>> AllowOverride All >>> Require all granted >>> </Directory> >>> >>> >>> Replace this Directory blog with WSGIScriptAlias and Directory blog you >>> had above. >>> >>> </VirtualHost> >>> >>> On Sun, Jul 8, 2018 at 2:51 PM, Graham Dumpleton < >>> [email protected]> wrote: >>> >>>> When using VirtualHost, and hosting multiple sites all on the same >>>> port, you need to access the site through a proper hostname, not an IP >>>> address or localhost. When you use localhost or an IP address it will >>>> always be handled by the first VirtualHost as there is no hostname it can >>>> match against for the VirtualHost ServerName directive. Using localhost or >>>> an IP for ServerName doesn't do anything. >>>> >>>> The easiest thing to do if you don't have a unique hostname to use, is >>>> set up up your separate VirtualHost for your Django application and add it >>>> last in the file. When adding, specify ServerName inside of that >>>> VirtualHost as: >>>> >>>> ServerName django.A.B.C.D.nip.io <http://django.a.b.c.d.nip.io/> >>>> >>>> where A.B.C.D is the IP address of the host. >>>> >>>> You can then access the web site as: >>>> >>>> http://django.A.B.C.D.nip.io <http://django.a.b.c.d.nip.io/> >>>> >>>> The 'nip.io' is a special domain name that implements a DNS which will >>>> return the IP A.B.C.D for the hostname in that form. So the request will go >>>> to your Apache and because you used hostname 'django.A.B.C.D.nip.io >>>> <http://django.a.b.c.d.nip.io/>' in the URL, Apache can match that >>>> properly against ServerName for that VirtualHost and direct your request to >>>> the Django setup within that VirtualHost. >>>> >>>> Graham >>>> >>>> >>>> On 9 Jul 2018, at 10:42 am, [email protected] wrote: >>>> >>>> Hi, >>>> >>>> >>>> I'm a novice and slowly working thru a production server problem. >>>> >>>> >>>> Trying to get django and mod_wsgi to play nicely with existing wamp >>>> sites on Win7 on a production server. Directions from django users group >>>> (google) seems to indicate I can do this by changing default port for >>>> mod_wsgi from 80 to something else which doesn't conflict with the existing >>>> non-django sites on wamp. >>>> >>>> >>>> I do not have a virtualenv setup at the moment, and am not using deamon >>>> mode. I'm basically just testing the plumbing, so to speak, to try to get >>>> this working first. >>>> >>>> >>>> I have several configurations of django project/app described below but >>>> I'd really prefer to keep it in c:/wamp/www along with all our other sites, >>>> but have the django site use a different port so everything will run >>>> without 404 error. >>>> >>>> >>>> Since I'm a novice at setting up django and mod_wsgi, I could use some >>>> help and direction with perhaps the virtual hosts conf file, if that's the >>>> way to go. >>>> >>>> How would I go about changing the mod_wsgi port from 80 to say :9090 >>>> for ex. for a django site in c:/wamp/www/mysite, for ex.? >>>> >>>> >>>> >>>> >>>> Wampserver 3.0.6 32bit, with apache2.4.23 >>>> >>>> --------------- >>>> >>>> PYTHON AND APACHE: >>>> >>>> >>>> Python 3.6.5 32bit, with Django 2.0.6 >>>> >>>> >>>> --------------- >>>> >>>> MOD_WSGI: >>>> >>>> >>>> Could not pip install mod_wsgi, and needed to download VisualStudio >>>> build tools and upgrade framework to 4.7.1. >>>> >>>> >>>> Downloaded mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win32.whl >>>> >>>> https://www.lfd.uci.edu/~gohlke/pythonlibs/ >>>> >>>> to work with apache 2.4.23, VC++14, and python3.6 >>>> >>>> >>>> then did >> pip install C:\Users\Administrator\Downloa >>>> ds\mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win32.whl. Did not get >>>> mod_wsgi.so in apache modules folder, but did get a .pyd in: >>>> c:/users/administrator/appdata/local/programs/python/python3 >>>> 6-32/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win32.pyd >>>> >>>> >>>> Could then run mod_wsgi-express. >>>> >>>> >>>> From cmd prompt in apache bin dir used >httpd -t -D DUMP_MODULES to >>>> show wsgi_module (shared) is present. >>>> >>>> ---------------- >>>> >>>> We have several small non-django websites running on wamp. >>>> >>>> Those projects are in c:/wamp/www/myproject for ex. and are accessed as >>>> localhost/myproject or myipxxx/myproject. >>>> >>>> >>>> Under wamp I have tried putting the django project in c:/wamp/apps, in >>>> c:/wamp/www, and just in c:/wamp too. They all work fine with apache and >>>> mod_wsgi. >>>> >>>> >>>> At least I get a sample "helloworld" message in the webpage when I >>>> access the django site as localhost/mydjangosite or myipxxx/mydjangosite. >>>> This is basically the simple tut01 or polls app kindof django project. >>>> >>>> >>>> But the django project, wherever I put it in wamp, buggers our other >>>> non-django websites. I get a message back from urls.py saying it's been >>>> thru all the urls listed and it cannot access our regular (non django >>>> sites) in c:/wamp/www when I try to access one as localhost/myproject or >>>> myipxxx/myproject from the browser. >>>> >>>> ----------------- >>>> >>>> I believe the apache virtual host file is this right now. Sorry doing >>>> this a bit patchwork. >>>> >>>> >>>> >>>> <VirtualHost *:80> >>>> >>>> ServerName localhost >>>> >>>> ServerAlias localhost >>>> >>>> DocumentRoot c:/wamp/www >>>> >>>> <Directory "c:/wamp/www/"> >>>> >>>> Options +Indexes +Includes +FollowSymLinks +MultiViews >>>> >>>> AllowOverride All >>>> >>>> #Require local >>>> >>>> Require all granted >>>> >>>> </Directory> >>>> >>>> </VirtualHost> >>>> >>>> >>>> <VirtualHost *:80> >>>> >>>> Alias /static c:/wamp/www-src/static >>>> >>>> <Directory c:/wamp/www-src/static> >>>> >>>> Require all granted >>>> >>>> </Directory> >>>> >>>> </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 [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. >>> >>> >>> >>> -- >>> 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. >> > > > -- > 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.
