Graham, I fixed it now. This is the first time i got the below error mesage and added a trailing / for the for WSGIScriptAlias /static/ /path/to/static/. it is working now. Not sure, if the issue previously due to the permissions.
AH01630: client denied by server configuration: /coepj/sites/sfreporting- upload.com/htdocs/staticreports, referer: http: On 14 December 2017 at 12:09, V K <kulala.v...@gmail.com> wrote: > I commented out the redundant STATIC_ROOT path in STATICFILES_DIRS. > > previously i got 404 and then i changed the directory permissions for > htdocs/static as apache:apache. After that i started getting 403. > > drwxr-xr-x. 3 apache apache 19 Dec 10 13:33 sfreporting-upload.com > > > drwxr-xr-x. 3 apache apache 19 Dec 10 13:34 htdocs > > > drwxr-xr-x. 4 apache apache 32 Dec 10 13:34 static > > > > > > > Now, it seems a different error. I am not sure why there is no "/" between > static and reports . > > AH01630: client denied by server configuration: /coepj/sites/sfreporting- > upload.com/htdocs/staticreports, referer: http: > > On 14 December 2017 at 11:43, Graham Dumpleton <graham.dumple...@gmail.com > > wrote: > >> And the directory: >> >> /coepj/sites/sfreporting-upload.com/htdocs/static >> >> has files in it after running collectstatic. Are all directories down to >> that point readable by others as well as stuff in the directory. >> >> Do you get a 404 or 403 error response if access /static/some/path where >> expect a file? >> >> Knowing the error code can be important. >> >> Graham >> >> >> On 14 Dec 2017, at 4:57 pm, V K <kulala.v...@gmail.com> wrote: >> >> Hi Graham, >> >> Haha, it is htdocs. Usually i dont separate the Static files, i keep >> within the project directory and apps, since it is not working i am tried >> multiple things. >> Here you go with the STATIC_URL, STATIC_ROOT : >> >> STATIC_URL = '/static/' >> #STATIC_ROOT = '/coepj/django/multiple-file-u >> pload-scp/mysite/reports/static/reports' >> >> STATIC_ROOT = '/coepj/sites/sfreporting-upload.com/htdocs/static' >> >> >> STATICFILES_DIRS = ( >> # os.path.join(BASE_DIR, "mysite/reports/static/reports"), >> '/coepj/sites/sfreporting-upload.com/htdocs/static', >> ) >> >> >> STATICFILES_FINDERS = [ >> 'django.contrib.staticfiles.finders.FileSystemFinder', >> 'django.contrib.staticfiles.finders.AppDirectoriesFinder', >> ] >> >> >> On 14 December 2017 at 08:54, Graham Dumpleton < >> graham.dumple...@gmail.com> wrote: >> >>> Of funny. Just realised that auto correct change htdocs to hotdogs. >>> Hopefully you knew I meant htdocs. >>> >>> >>> On 14 Dec 2017, at 10:12 am, Graham Dumpleton < >>> graham.dumple...@gmail.com> wrote: >>> >>> Your Alias directives reference a 'hotdogs' directory but that doesn't >>> appear in your structure, only 'static'. >>> >>> What do you have as the 'STATIC_ROOT' and 'STATIC_URL' settings in >>> Django settings? Have you run 'manage.py collectstatic'? >>> >>> What is the error response code in the browser when you explicitly go to >>> URL for a static file in browser? 404? 403? >>> >>> Graham >>> >>> On 13 Dec 2017, at 10:14 pm, V K <kulala.v...@gmail.com> wrote: >>> >>> HI Team, >>> >>> This is small issue i know and i myself fixed many times. But this time, >>> it is breaking my head. >>> >>> I am using CentOS7, Django - 1.11.8. >>> >>> I tried multiple times and am failing. >>> >>> CSS and JS files are not working and i lost the patience in >>> troubleshooting. Can anybody help me on this? >>> >>> This is my project structure. I always worked on Ubuntu and i dont know >>> whether we need to update and give access to the folders in both httpd.conf >>> as well as myproject.conf under /etc/httpd/conf.d/myproject.conf >>> >>> Appreciate your help on this. >>> >>> multiple-file-upload-scp/ >>> ├── db.sqlite3 >>> ├── LICENSE >>> ├── manage.py >>> ├── media >>> │ ├── formatted_activeiq_pulse_report >>> │ └── pulse_report_uploaded >>> ├── mysite >>> │ ├── celery.py >>> │ ├── celery.pyc >>> │ ├── __init__.py >>> │ ├── __init__.pyc >>> │ ├── reports >>> │ │ ├── apps.py >>> │ │ ├── forms.py >>> │ │ ├── forms.pyc >>> │ │ ├── __init__.py >>> │ │ ├── __init__.pyc >>> │ │ ├── models.py >>> │ │ ├── models.pyc >>> │ │ ├── static >>> │ │ │ └── reports >>> │ │ │ ├── admin >>> │ │ │ │ ├── css >>> │ │ │ │ │ ├── base.css >>> │ │ │ │ │ ├── changelists.css >>> │ │ │ │ │ ├── dashboard.css >>> │ │ │ │ │ ├── fonts.css >>> │ │ │ │ │ ├── forms.css >>> │ │ │ │ │ ├── login.css >>> │ │ │ │ │ ├── rtl.css >>> │ │ │ │ │ └── widgets.css >>> │ │ │ │ ├── fonts >>> │ │ │ │ │ ├── LICENSE.txt >>> │ │ │ │ │ ├── README.txt >>> │ │ │ │ │ ├── Roboto-Bold-webfont.woff >>> │ │ │ │ │ ├── Roboto-Light-webfont.woff >>> │ │ │ │ │ └── Roboto-Regular-webfont.woff >>> │ │ │ │ ├── img >>> │ │ │ │ │ ├── calendar-icons.svg >>> │ │ │ │ │ ├── gis >>> │ │ │ │ │ │ ├── move_vertex_off.svg >>> │ │ │ │ │ │ └── move_vertex_on.svg >>> │ │ │ │ │ ├── icon-addlink.svg >>> │ │ │ │ │ ├── icon-alert.svg >>> │ │ │ │ │ ├── icon-calendar.svg >>> │ │ │ │ │ ├── icon-changelink.svg >>> │ │ │ │ │ ├── icon-clock.svg >>> │ │ │ │ │ ├── icon-deletelink.svg >>> │ │ │ │ │ ├── icon-no.svg >>> │ │ │ │ │ ├── icon-unknown-alt.svg >>> │ │ │ │ │ ├── icon-unknown.svg >>> │ │ │ │ │ ├── icon-yes.svg >>> │ │ │ │ │ ├── inline-delete.svg >>> │ │ │ │ │ ├── LICENSE >>> │ │ │ │ │ ├── README.txt >>> │ │ │ │ │ ├── search.svg >>> │ │ │ │ │ ├── selector-icons.svg >>> │ │ │ │ │ ├── sorting-icons.svg >>> │ │ │ │ │ ├── tooltag-add.svg >>> │ │ │ │ │ └── tooltag-arrowright.svg >>> │ │ │ │ └── js >>> │ │ │ │ ├── actions.js >>> │ │ │ │ ├── actions.min.js >>> │ │ │ │ ├── admin >>> │ │ │ │ │ ├── DateTimeShortcuts.js >>> │ │ │ │ │ └── RelatedObjectLookups.js >>> │ │ │ │ ├── calendar.js >>> │ │ │ │ ├── cancel.js >>> │ │ │ │ ├── change_form.js >>> │ │ │ │ ├── collapse.js >>> │ │ │ │ ├── collapse.min.js >>> │ │ │ │ ├── core.js >>> │ │ │ │ ├── inlines.js >>> │ │ │ │ ├── inlines.min.js >>> │ │ │ │ ├── jquery.init.js >>> │ │ │ │ ├── popup_response.js >>> │ │ │ │ ├── prepopulate_init.js >>> │ │ │ │ ├── prepopulate.js >>> │ │ │ │ ├── prepopulate.min.js >>> │ │ │ │ ├── SelectBox.js >>> │ │ │ │ ├── SelectFilter2.js >>> │ │ │ │ ├── timeparse.js >>> │ │ │ │ ├── urlify.js >>> │ │ │ │ └── vendor >>> │ │ │ │ ├── jquery >>> │ │ │ │ │ ├── jquery.js >>> │ │ │ │ │ ├── jquery.min.js >>> │ │ │ │ │ └── LICENSE-JQUERY.txt >>> │ │ │ │ └── xregexp >>> │ │ │ │ ├── LICENSE-XREGEXP.txt >>> │ │ │ │ ├── xregexp.js >>> │ │ │ │ └── xregexp.min.js >>> │ │ │ ├── css >>> │ │ │ │ ├── bootstrap.min.css >>> │ │ │ │ └── bootstrap.min.css.map >>> │ │ │ ├── fonts >>> │ │ │ │ ├── glyphicons-halflings-regular.eot >>> │ │ │ │ ├── glyphicons-halflings-regular.svg >>> │ │ │ │ ├── glyphicons-halflings-regular.ttf >>> │ │ │ │ ├── glyphicons-halflings-regular.woff >>> │ │ │ │ └── glyphicons-halflings-regular.woff2 >>> │ │ │ ├── js >>> │ │ │ │ ├── basic-upload.js >>> │ │ │ │ ├── bootstrap.min.js >>> │ │ │ │ ├── drag-and-drop-upload.js >>> │ │ │ │ ├── jquery-3.1.1.min.js >>> │ │ │ │ ├── jquery-file-upload >>> │ │ │ │ │ ├── jquery.fileupload.js >>> │ │ │ │ │ ├── jquery.iframe-transport.js >>> │ │ │ │ │ └── vendor >>> │ │ │ │ │ └── jquery.ui.widget.js >>> │ │ │ │ └── progress-bar-upload.js >>> │ │ │ └── netapp_img >>> │ │ │ ├── cover_dc.png >>> │ │ │ ├── index_netapp.png >>> │ │ │ └── tab_netapp.png >>> │ │ ├── tasks.pyc >>> │ │ ├── templates >>> │ │ │ └── reports >>> │ │ │ ├── base_generic.html >>> │ │ │ ├── base.html >>> │ │ │ ├── basic_upload >>> │ │ │ │ └── index.html >>> │ │ │ ├── drag_and_drop_upload >>> │ │ │ │ └── index.html >>> │ │ │ ├── formatted >>> │ │ │ │ └── formatted_reports.html >>> │ │ │ ├── home.html >>> │ │ │ ├── includes >>> │ │ │ │ └── header.html >>> │ │ │ ├── progress_bar_upload >>> │ │ │ │ └── index.html >>> │ │ │ └── registration >>> │ │ │ ├── logged_out.html >>> │ │ │ └── login.html >>> │ │ ├── tests.py >>> │ │ ├── urls.py >>> │ │ ├── urls.pyc >>> │ │ ├── views.py >>> │ │ └── views.pyc >>> │ ├── settings.py >>> │ ├── settings.pyc >>> │ ├── urls.py >>> │ ├── urls.pyc >>> │ └── wsgi.py >>> ├── README.md >>> └── requirements.txt >>> >>> *.conf file Configuration:* >>> >>> */etc/httpd/conf.d/myproject.co <http://myproject.co>nf* >>> >>> <VirtualHost *:80> >>> # Admin email, Server Name (domain name), and any aliases >>> ServerAdmin webmas...@example.com >>> ServerName sfreporting.com >>> #DocumentRoot /coepj/sites/sfreporting-upload.com/htdocs >>> # Log file locations >>> ErrorLog /var/log/httpd/sfreporting_new-error.log >>> CustomLog /var/log/httpd/sfreporting_new-access.log combined >>> WSGIScriptAlias / /coepj/django/multiple-file-up >>> load-scp/mysite/wsgi.py >>> Alias /static/ /coepj/sites/sfreporting-upload.com/htdocs/static >>> # Alias /static/ /coepj/django/multiple-file-up >>> load-scp/mysite/reports/static >>> </VirtualHost> >>> >>> WSGIPythonPath /coepj/django/multiple-file-upload-scp >>> >>> >>> >>> # Further relax access to the default document root: >>> <Directory "/coepj/sites/sfreporting-upload.com/htdocs/static"> >>> Options Indexes FollowSymLinks >>> AllowOverride None >>> Require all granted >>> </Directory> >>> >>> <Directory "/coepj/sites/sfreporting-upload.com/htdocs/static"> >>> Options Indexes FollowSymLinks >>> AllowOverride None >>> Require all granted >>> </Directory> >>> >>> >>> >>> <Directory "/coepj/django/multiple-file-upload-scp/mysite"> >>> <Files wsgi.py> >>> Require all granted >>> </Files> >>> </Directory> >>> >>> >>> Additionaly, i have some more on /etc/httpd/conf/httpd.conf >>> >>> >>> DocumentRoot "/coepj/sites" >>> # >>> # Relax access to content within /var/www. >>> # >>> #<Directory "/coepj/django/multiple-file-upload-scp/mysite"> >>> # AllowOverride None >>> # Allow open access: >>> # Require all granted >>> #</Directory> >>> >>> #Alias /static/ "/coepj/sites/sfreporting-upload.com/htdocs/static" >>> >>> <Directory "/coepj/sites/sfreporting-upload.com/htdocs/static"> >>> AllowOverride None >>> Require all granted >>> </Directory> >>> >>> #<Directory "/coepj/django/multiple-file-upload-scp/mysite/reports/stati >>> c"> >>> # AllowOverride None >>> # Require all granted >>> #</Directory> >>> >>> -- >>> Regards, >>> Venu >>> >>> -- >>> 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. >>> >>> >>> >>> >>> -- >>> 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. >>> >> >> >> >> -- >> Regards, >> Venu >> >> -- >> 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. >> >> >> -- >> 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. >> > > > > -- > Regards, > Venu > -- Regards, Venu -- 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.