Código:
Luego por si queda algo:sudo apt-get remove apache2-* --purge
Código:
Ahora hacemos update al server:sudo apt-get autoremove
Código:
Ahora instalamos el apache2 y el mod_wsgi:sudo apt-get update sudo apt-get upgrade
Código:
Suponemos que tenemos python y django instalado, si no es asi, instalarlo, es bastante facilsudo apt-get install apache2 libapache2-mod-wsgi
Ahora tocamos el fichero /etc/hosts:
Código:
En el fichero tiene que aparecer algo asi(adjunto mi ejemplo, podeis cambiar IP y nombre),yo lo he llamado ficherotsol.com y la ip es 10.34.112.21, es ip privada, para luego hacerla publica teneis que configurar el NAT:cd /etc/ sudo gedit hosts &
Código:
NOTA: supongo que tenemos el proyecto django funcionando, asi que averiguamos la ruta donde se encuentra , usando en el terminal pwd, el manage.py. La mia por ejemplo es:127.0.0.1 localhost 127.0.1.1 ServidoTSOL 10.34.112.21 ficherotsol.com # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
/home/servidortsol/ProyectosDjango/TSOL , aqui se encuentra /home/servidortsol/ProyectosDjango/TSOL/manage.py
Ahora creamos una carpeta que se llame Apache que contendra el .wsgi
Código:
Ahora me creo el fichero, lo puedo hacer con touch o directamente lo abro y lo guardo asi:mkdir /home/servidortsol/ProyectosDjango/TSOL/Apache
Código:
Mi fichero tsol.wsgi contiene:(OJO IMPORTANTE EL .settings que es nuestro settings.py pero no le ponemos el .py ni toda la ruta solo donde se encuentra el manage.py)sudo gedit /home/servidortsol/ProyectosDjango/TSOL/tsol.wsgi
Código:
Ahora me creo un nuevo sitio en apache para ello hago:import os, sys apache_configuration= os.path.dirname(__file__) project = os.path.dirname(apache_configuration) workspace = os.path.dirname(project) sys.path.append(workspace) sys.path.append('/usr/local/lib/python2.7/dist-packages/django') sys.path.append('/home/servidortsol/ProyectosDjango/TSOL') sys.path.append('/home/servidortsol/ProyectosDjango/TSOL/TSOL/Archivos/Incidencias.jpg') sys.path.append('/home/servidortsol/ProyectosDjango/TSOL/TSOL/Archivos/Peticiones.jpg') sys.path.append('/home/servidortsol/ProyectosDjango/TSOL/TSOL/Archivos/Global.jpg') sys.path.append('/home/servidortsol/ProyectosDjango/TSOL/TSOL/Archivos/SLA.jpg') sys.path.append('/home/servidortsol/ProyectosDjango/TSOL/TSOL/Archivos/SLAAcumulado.jpg') os.environ['DJANGO_SETTINGS_MODULE'] = 'TSOL.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
Código:
El fichero creado tsol contendra(pongo mi ejemplo, modificar con vuestras rutas, etc)sudo gedit /etc/apache2/sites-available/tsol
Código:
Ahora activamos el sitio:<VirtualHost *:80> ServerName ficherotsol.com DocumentRoot /home/servidortsol/ProyectosDjango/TSOL/Apache Alias /Archivos /home/servidortsol/ProyectosDjango/TSOL/TSOL/Archivos <Directory /home/servidortsol/ProyectosDjango/TSOL/Apache> Order allow,deny Allow from all </Directory> <Directory /home/servidortsol/ProyectosDjango/TSOL/TSOL/Archivos/> Order allow,deny Allow from all </Directory> WSGIDaemonProcess ficherotsol.com user=www-data group=www-data processes=2 threads=15 display-name=%{GROUP} WSGIProcessGroup ficherotsol.com WSGIScriptAlias / /home/servidortsol/ProyectosDjango/TSOL/Apache/tsol.wsgi </VirtualHost>
Código:
Y levantamos el apache:sudo a2ensite tsol
Código:
Ahora probamos nuestra pagina http://ficherotsol.com/ y vemos que funciona nuestro proyecto django :) sudo /etc/init.d/apache2 reload
NOTAS:
Si te sale algo asi:
Código:
Para ello haz esto:* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Código:
El archivo puede estar vacio, asi que añade:sudo gedit /etc/apache2/httpd.conf
Código:
Para errores como:ServerName localhost
no display name and no $DISPLAY environment variable, puedo poner esta linea en views.py:
Código:
Failed to create /var/www/.matplotlib; consider setting MPLCONFIGDIR to a writable directory for matplotlib configuration data (que es un error que te puede salir al usar matplotlib) , puedo poner en views.py estas lineas:matplotlib.use('Agg')
Código:
import tempfile os.environ['MPLCONFIGDIR'] = tempfile.mkdtemp() import matplotlib import matplotlib.pyplot as plt