Τώρα διαπίστωσα περισσότερο τι φταίει.
Πήγα στον
τοπικό server μου και έθεσα αρχικά αυτές τις ρυθμίσεις (
αυτές είχα πρώτα ) στο αρχείο ρυθμίσεων για το Django site :
# Django configurations :
WSGIScriptAlias / /home/user/djangoProjects/testProject/myApp/wsgi.py
WSGIPythonHome /home/user/djangoProjects/testProject/.venv
WSGIPythonPath /home/user/djangoProjects/testProject//
<VirtualHost *:80>
DocumentRoot /home/user/djangoProjects/testProject
Alias /static/ /home/user/djangoProjects/testProject/static/
<Directory /home/user/djangoProjects/testProject/static/>
Require all granted
</Directory>
<Directory /home/user/djangoProjects/testProject/myApp>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ServerAdmin webmaster@localhost
ErrorLog ${APACHE_LOG_DIR}/mydjangoapp-error.log
CustomLog ${APACHE_LOG_DIR}/mydjangoapp-access.log combined
</VirtualHost>
Με αυτές τις ρυθμίσεις
λειτουργεί μια χαρά.
Όμως θυμάμαι πως όταν πήγα στον απομακρυσμένο server (
που έχω και άλλες σελίδες στον apache), δεν λειτουργούσαν και εκεί αυτές οι ρυθμίσεις και έπαιρνα «
500 Internal Server Error».
Έτσι διαβάζοντας και
από την επίσημη ιστοσελίδα, είδα πως μπορείς να ορίσεις τον κατάλογο του εικονικού περιβάλλοντος και τα λοιπά,
μέσα στο tag <VirtualHost>.
Έτσι κατέληξα αντί για αυτές τις ρυθμίσεις
εκτός το <VirtualHost> tag :
WSGIScriptAlias / /home/user/djangoProjects/testProject/myApp/wsgi.py
WSGIPythonHome /home/user/djangoProjects/testProject/.venv
WSGIPythonPath /home/user/djangoProjects/
σε αυτές
εντός το <VirtualHost> tag :
WSGIScriptAlias / /home/user/djangoProjects/testProject/myApp/wsgi.py
WSGIDaemonProcess localhost python-home=/home/user/djangoProjects/testProject/.venv python-path=/home/user/djangoProjects/testProject/
WSGIProcessGroup localhost
Ουσιαστικά πρόσθεσα
εντός του <VirtualHost> tag, τις εντολές :
- WSGIDaemonProcess
- WSGIProcessGroup
και ακόμη και στον τοπικό server όπως σας δείχνω τώρα δεν έχω το αναμενόμενο αποτέλεσμα.
Με το που βάζω αυτές τις ρυθμίσεις παίρνω «
500 Internal Server Error».
Αν θέσω αυτές τις ρυθμίσεις :
WSGIScriptAlias / /home/user/djangoProjects/testProject/myApp/wsgi.py
WSGIPythonHome /home/user/djangoProjects/testProject/.venv
WSGIPythonPath /home/user/djangoProjects/
εντός του <VirtualHost> tag, παίρνω error από τον apache2 κατά την επανεκκίνηση :
Jan 29 14:37:42 virtual-UbuntuServer apache2[3437]: * The apache2 configtest failed.
Jan 29 14:37:42 virtual-UbuntuServer apache2[3437]: Output of config test was:
Jan 29 14:37:42 virtual-UbuntuServer apache2[3437]: AH00526: Syntax error on line 16 of /etc/apache2/sites-enabled/djangoApp.conf:
Jan 29 14:37:42 virtual-UbuntuServer apache2[3437]: WSGIPythonHome cannot occur within <VirtualHost> section
Jan 29 14:37:42 virtual-UbuntuServer apache2[3437]: Action 'configtest' failed.
Jan 29 14:37:42 virtual-UbuntuServer apache2[3437]: The Apache error log may have more information.
Jan 29 14:37:42 virtual-UbuntuServer systemd[1]: apache2.service: Control process exited, code=exited status=1
Jan 29 14:37:42 virtual-UbuntuServer systemd[1]: Failed to start LSB: Apache2 web server.
Jan 29 14:37:42 virtual-UbuntuServer systemd[1]: apache2.service: Unit entered failed state.
Jan 29 14:37:42 virtual-UbuntuServer systemd[1]: apache2.service: Failed with result 'exit-code'.
Γενικά από ότι μου έχει δώσει να καταλάβω, εντός του <VirtualHost> tag δεν γουστάρει καμία από τις παρακάτω εντολές :
- WSGIPythonHome
- WSGIPythonPath
Διαβάζοντας
αυτό εδώ, έκανα αυτή την ρύθμιση στον
τοπικό server :
WSGIScriptAlias / /home/user/djangoProjects/testProject/myApp/wsgi.py
WSGIDaemonProcess localhost user=www-data group=www-data processes=2 threads=25 python-home=/home/user/djangoProjects/testProject/.venv python-path=/home/user/djangoProjects/testProject/
WSGIProcessGroup localhost
Και ο τοπικός server με αυτές τις ρυθμίσεις,
εντός του <VirtualHost> tag, λειτούργησε άψογα!
Το θέμα είναι πως έκανα τις αντίστοιχες και στον απομακρυσμένο, αλλά εκεί πάλι τα ίδια.