Instalando Java en un servidor suse tuve el siguiente problema:
#java --version
Error occurred during initialization of VM
Could not allocate metaspace: 1073741824 bytes
Empezando para instalarlo descargue el rpm y seguí el procedimiento del siguiente sitio:
http://docs.oracle.com/javase/8/docs/technotes/guides/install/linux_jre.html#CFHIEGAA
Después de buscar en varios sitios, ejecutando el siguiente comando:
# java -XX:-UseCompressedClassPointers -XX:+PrintFlagsFinal LongSleep
Se ve un detallado del uso de memoria por flag, y me encontre que justo la línea:
uintx CompressedClassSpaceSize = 1073741824 {product}
Entonces siguiente los sitios de refencias, ejecutando la siguiente instrucción si opera correctamente java:
# java -XX:CompressedClassSpaceSize=10m -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
De esa manera le estoy indicando que solo use 10 megas para ejecutarlo, o también usando:
# java -XX:-UseCompressedClassPointers -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
Referencias:
http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2014-April/011319.html
http://arabhardware.net/forum/showthread.php?t=391068
http://docs.oracle.com/javase/8/docs/technotes/guides/install/linux_jre.html#CFHIEGAA
jueves, 11 de diciembre de 2014
martes, 2 de diciembre de 2014
Django, suse, nginx, Gunicorn y supervisor
Como siempre, por necesidad me veo en la tarea de implementar dentro de un servidor suse montado en un AWS EC2, el servicio de ngix para un proyecto en django usando gunicorn y supervisor.
Esta guía esta basada al 100% del video: https://www.youtube.com/watch?v=VDVNgivbvYk la diferencia es que en esta guía se está usando SUSE resolviendo el tema de instalación de nginx fuera de yast.
Posteriormente podemos probar si esta funcionando, entrando al directorio de nuestro proyecto de django y haciendo lo siguiente:
# gunicorn miproyecto.wsgi:application --bind 0.0.0.0:8080
Apunte 3: (Añadido 2015-01-20):
En esta ocasión nos paso que no podíamos configurar en el puerto 80 el servicio, por lo que lo que tuvimos que hacer fue: revisar en si en la configuración de ngnix se estén cargando otros archivos de configuración generalmente antes del server {} si es así comentar las siguientes instrucciones agregando #, esto es:
# include /etc/nginx/conf.d/*.conf;
# incude /etc/nginx/sites-enabled/*;
O bien revisar si estos archivos no estén causando algún conflicto con el puerto 80.
Espero te sea de utilidad !
Esta guía esta basada al 100% del video: https://www.youtube.com/watch?v=VDVNgivbvYk la diferencia es que en esta guía se está usando SUSE resolviendo el tema de instalación de nginx fuera de yast.
Lo primero que debemos considerar es que este funcionando python, django y virtual-env que se escapan a este post. Por lo que el proyecto debe estar funcionando si ejecutamos:
# python manage.py runserver 0.0.0.0:8000
# pip install gunicorn
Posteriormente podemos probar si esta funcionando, entrando al directorio de nuestro proyecto de django y haciendo lo siguiente:
# gunicorn miproyecto.wsgi:application --bind 0.0.0.0:8080
________________________________
Nota:
Si lo queremos poner como servicio:
$ gunicorn miproyecto.wsgi:application --bind 0.0.0.0:8080 --pid /tmp/gunicorn.pid --workers=3 --daemon
Para detenerlo debemos verificar su id de proceso:
$ cat /tmp/gunicorn.pid
####
$ kill -9 ####
________________________________
Si entramos al navegador y usamos la ip del equipo deberiamos ser capacez de ver el proyecto en ejecución: http://IP-del-servidor:8080/
Ahora instalaremos supervisor para mantener todo el tiempo nuestro servidor activo.
El proceso para instalarlo es el siguiente:
# pip install supervisor
Una vez instalado usaremos el archivo supervisord.conf de referencia para obtenerlo usamos el siguiente comando:
# echo_supervisord_conf > ./supervisord.conf
Una vez obtenido lo editaremos usando el siguiente comando:
# vi supervisord.conf
Al final del archivo agregamos las siguientes líneas:
;CONFIGURACION BASICA GUNICORN
[program:gunicorn]
;ruta donde se encuentra el directorio virtual que ejecutara gunicorn
command=/home/ruta-a-virtualenv/virtualmachine/bin/gunicorn miproyecto.wsgi:application --bind 0.0.0.0:8080 --workers=3 --pid /tmp/gunicorn.pid
;Ahora indicamos el directorio donde se almacena el proyecto ...
directory=/home/ruta-al-pryecto/miproyecto/
Una vez teniendo el archivo configurado, podemos ejecutar el servicio usando:
# supervisord
Con eso el servicio esta en ejecución una forma de revisar que se encuentre en ejecución, es revisando que el archivo /tmp/gunicorn.pid se haya generado y tenga el número de proceso del servicio.
Otra forma de ver el servicio es usando el siguiente comando:
# supervisorctl
Para parar el servicio de supervisor:
# supervisorctrl stop gunicorn
Hasta este momento siguiendo los link de referencias logre montar el servidor gunicorn con supervisor.
Ahora vamos a crear un archivo bash de nombre gunicorn_run en la raíz del proyecto django; con el siguiente contenido:
#!/bin/bash
NAME="miproyecto_app" # Nombre del proyecto
DJANGODIR=/home/ruta-al-proyecto/miproyecto #Directorio del proyecto
SOCKFILE=/home/rutal-al-proyecto/run/gunicorn.sock #Ruta del SockFile para nginx
USER=django # Usuario que ejecute las instancias
GROUP=django # Grupo del usuario que ejecute las instancias
NUM_WORKERS=3 # 2 * CPUs + 1
DJANGO_SETTINGS_MODULE=miproyecto.settings # Modulo settings del proyecto
DJANGO_WSGI_MODULE=miproyecto.wsgi # Nombre de la aplicacion para WSGI
echo "Iniciando $NAME como `whoami`"
# Activando el ambiente virtual
cd $DJANGODIR
source /home/ruta-a-virtualenv/virtualmachine/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
# Creando el directorio del archivo gunicorn.sock por si no existe
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
# Comando que ejecuta supervisor para correr el servidor gunicorn
exec /home/ruta-a-virtualenv/virtualmachine/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--bind=unix:$SOCKFILE \
--log-level=debug \
--log-file=-
Dentro del archivo colocaremos lo siguiente sustituyendo la sección del servidor 80 o bien dejando el actual con 8080:
upstream miproyecto_app {
# Este es el que conecta con gunicorn con nginx
server unix:/home/rutal-al-proyecto/run/gunicorn.sock fail_timeout=0;
}
server {
# Puerto de escucha
listen 80;
# Dominios que responden a esta configuracion
server_name example.com
# Configuracion customizada para la subida de statics
client_body_in_file_only clean;
client_body_buffer_size 32K;
client_max_body_size 300M;
sendfile on;
send_timeout 300s;
# Logs de eventos
access_log /home/rutal-al-proyecto/logs/nginx-access.log;
error_log /home/rutal-al-proyecto/logs/nginx-error.log;
# Archivos estaticos
location /static/ {
alias /home/rutal-al-proyecto/static/;
}
# Archivos media
location /media/ {
alias /home/rutal-al-proyecto/media/;
}
# Procesando django
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://miproyecto_app;
break;
}
}
# Error pages
error_page 500 502 503 504 /500.html;
location = /500.html {
root /home/rutal-al-proyecto/;
}
}
Ahora instalaremos supervisor para mantener todo el tiempo nuestro servidor activo.
El proceso para instalarlo es el siguiente:
# pip install supervisor
Una vez instalado usaremos el archivo supervisord.conf de referencia para obtenerlo usamos el siguiente comando:
# echo_supervisord_conf > ./supervisord.conf
Una vez obtenido lo editaremos usando el siguiente comando:
# vi supervisord.conf
Al final del archivo agregamos las siguientes líneas:
;CONFIGURACION BASICA GUNICORN
[program:gunicorn]
;ruta donde se encuentra el directorio virtual que ejecutara gunicorn
command=/home/ruta-a-virtualenv/virtualmachine/bin/gunicorn miproyecto.wsgi:application --bind 0.0.0.0:8080 --workers=3 --pid /tmp/gunicorn.pid
;Ahora indicamos el directorio donde se almacena el proyecto ...
directory=/home/ruta-al-pryecto/miproyecto/
Una vez teniendo el archivo configurado, podemos ejecutar el servicio usando:
# supervisord
Con eso el servicio esta en ejecución una forma de revisar que se encuentre en ejecución, es revisando que el archivo /tmp/gunicorn.pid se haya generado y tenga el número de proceso del servicio.
Otra forma de ver el servicio es usando el siguiente comando:
# supervisorctl
Para parar el servicio de supervisor:
# supervisorctrl stop gunicorn
________________________________
Nota: En caso de que necesites recargar el archivo de configuración (a mi me paso jeje), puedes entrar con el comando:
$ supervisorctl
Y posteriormente teclear reload:
supervisor> reload
Pedirá confirmar y posteriormente se recargará la configuración
________________________________
Hasta este momento siguiendo los link de referencias logre montar el servidor gunicorn con supervisor.
Ahora vamos a crear un archivo bash de nombre gunicorn_run en la raíz del proyecto django; con el siguiente contenido:
#!/bin/bash
NAME="miproyecto_app" # Nombre del proyecto
DJANGODIR=/home/ruta-al-proyecto/miproyecto #Directorio del proyecto
SOCKFILE=/home/rutal-al-proyecto/run/gunicorn.sock #Ruta del SockFile para nginx
USER=django # Usuario que ejecute las instancias
GROUP=django # Grupo del usuario que ejecute las instancias
NUM_WORKERS=3 # 2 * CPUs + 1
DJANGO_SETTINGS_MODULE=miproyecto.settings # Modulo settings del proyecto
DJANGO_WSGI_MODULE=miproyecto.wsgi # Nombre de la aplicacion para WSGI
echo "Iniciando $NAME como `whoami`"
# Activando el ambiente virtual
cd $DJANGODIR
source /home/ruta-a-virtualenv/virtualmachine/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
# Creando el directorio del archivo gunicorn.sock por si no existe
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
# Comando que ejecuta supervisor para correr el servidor gunicorn
exec /home/ruta-a-virtualenv/virtualmachine/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--bind=unix:$SOCKFILE \
--log-level=debug \
--log-file=-
Una vez que completemos el archivo y llenemos las secciones que debemos personalizar aplicaremos los persmisos:
# chmod u+x gunicorn_run
Detenemos el gunicorn en caso de tenerlo activo con supervisor, (supervisorctl stop gunicorn) y actualizaremos el supervisord.conf, sustituyendo las líneas que habíamos agregado por:
;CONFIGURACION AVANZADA GUNICORN (Activa)
[program:gunicorn]
;ruta donde se encuentra el archivo bash
command=/home/ruta-al-proyecto/miproyecto/gunicorn_run
;usuario que ejecuta el bash y el comando
username=root
;log de eventos para la gestion de errores
stdout_logfiles=/home/ruta-al-proyecto/logs/gunicorn_supervisor.log
redirect_stderr=true
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8
Una vez realizado lo anterior generaremos la carpeta de logs:
# mkdir /home/ruta-al-proyecto/logs/
Ahora iniciamos con la instalación de nginx en suse. Para realizarlo ejecutamos, los siguientes comandos:
# wget http://nginx.org/download/nginx-1.6.0.tar.gz
# make
# make install
----
Para hacerlo servicio se debe crear el siguiente archivo:
# vi /etc/init.d/nginx
Con el siguiente contenido:
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/nginx/sbin
DAEMON=/usr/local/nginx/sbin/nginx
NAME=nginx
DESC=nginx
PIDFILE=/usr/local/nginx/logs/$NAME.pid
DAEMON_CONFIG=/usr/local/nginx/conf/nginx.conf
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--exec $DAEMON
echo " started"
;;
stop)
echo -n "Stopping $DESC: "
if [ -f $PIDFILE ]; then
kill -15 `cat $PIDFILE 2>/dev/null`
fi
echo " stopped"
;;
restart|force-reload)
echo -n "Restarting $DESC: "
if [ -f $PIDFILE ]; then
kill -15 `cat $PIDFILE 2>/dev/null`
fi
sleep 1
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--exec $DAEMON
echo " restarted"
;;
status)
echo "Status $DESC: "
ps aux | grep -v grep | grep -v /bin/sh | grep $NAME
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|status|restart}" >&2
exit 1
;;
esac
exit 0
Le damos permisos de ejecución al archivo nginx:
# cd /etc/init.d/
# chmod +x nginx
Ahora lo que vamos hacer es modificar el archivo de configuración:
# vi /usr/local/nginx/conf/nginx.conf
Localizar la línea: # user nobody
De esa línea eliminar el caracter '#'.
Una vez realizado lo anterior usaremos la instrucción para agregar la configuración:
# chkconfig -a nginx
# chkconfig --level 345 nginx on
Con lo anterior queda configurado el servicio y podemos iniciarlo o pararlo con las instrucciones:
# service nginx start
# service nginx stop
Ahora lo que realizaremos será configurar el archivo del sitio:
# vi /usr/local/nginx/conf/nginx.conf
[program:gunicorn]
;ruta donde se encuentra el archivo bash
command=/home/ruta-al-proyecto/miproyecto/gunicorn_run
;usuario que ejecuta el bash y el comando
username=root
;log de eventos para la gestion de errores
stdout_logfiles=/home/ruta-al-proyecto/logs/gunicorn_supervisor.log
redirect_stderr=true
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8
# mkdir /home/ruta-al-proyecto/logs/
Ahora iniciamos con la instalación de nginx en suse. Para realizarlo ejecutamos, los siguientes comandos:
# wget http://nginx.org/download/nginx-1.6.0.tar.gz
# tar xvf nginx-1.6.0.tar.gz
# ./configure# make
# make install
----
Para hacerlo servicio se debe crear el siguiente archivo:
# vi /etc/init.d/nginx
Con el siguiente contenido:
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/nginx/sbin
DAEMON=/usr/local/nginx/sbin/nginx
NAME=nginx
DESC=nginx
PIDFILE=/usr/local/nginx/logs/$NAME.pid
DAEMON_CONFIG=/usr/local/nginx/conf/nginx.conf
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--exec $DAEMON
echo " started"
;;
stop)
echo -n "Stopping $DESC: "
if [ -f $PIDFILE ]; then
kill -15 `cat $PIDFILE 2>/dev/null`
fi
echo " stopped"
;;
restart|force-reload)
echo -n "Restarting $DESC: "
if [ -f $PIDFILE ]; then
kill -15 `cat $PIDFILE 2>/dev/null`
fi
sleep 1
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--exec $DAEMON
echo " restarted"
;;
status)
echo "Status $DESC: "
ps aux | grep -v grep | grep -v /bin/sh | grep $NAME
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|status|restart}" >&2
exit 1
;;
esac
exit 0
Le damos permisos de ejecución al archivo nginx:
# cd /etc/init.d/
# chmod +x nginx
Ahora lo que vamos hacer es modificar el archivo de configuración:
# vi /usr/local/nginx/conf/nginx.conf
Localizar la línea: # user nobody
De esa línea eliminar el caracter '#'.
Una vez realizado lo anterior usaremos la instrucción para agregar la configuración:
# chkconfig -a nginx
# chkconfig --level 345 nginx on
Con lo anterior queda configurado el servicio y podemos iniciarlo o pararlo con las instrucciones:
# service nginx start
# service nginx stop
Ahora lo que realizaremos será configurar el archivo del sitio:
# vi /usr/local/nginx/conf/nginx.conf
Dentro del archivo colocaremos lo siguiente sustituyendo la sección del servidor 80 o bien dejando el actual con 8080:
upstream miproyecto_app {
# Este es el que conecta con gunicorn con nginx
server unix:/home/rutal-al-proyecto/run/gunicorn.sock fail_timeout=0;
}
server {
# Puerto de escucha
listen 80;
# Dominios que responden a esta configuracion
server_name example.com
# Configuracion customizada para la subida de statics
client_body_in_file_only clean;
client_body_buffer_size 32K;
client_max_body_size 300M;
sendfile on;
send_timeout 300s;
# Logs de eventos
access_log /home/rutal-al-proyecto/logs/nginx-access.log;
error_log /home/rutal-al-proyecto/logs/nginx-error.log;
# Archivos estaticos
location /static/ {
alias /home/rutal-al-proyecto/static/;
}
# Archivos media
location /media/ {
alias /home/rutal-al-proyecto/media/;
}
# Procesando django
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://miproyecto_app;
break;
}
}
# Error pages
error_page 500 502 503 504 /500.html;
location = /500.html {
root /home/rutal-al-proyecto/;
}
}
Necesitaremos levantar el servicio del gunicorn debemos recordar el proceso o levantarlo nuevamente es posible que necesiten entrar a la maquina virtual para entrar a supervisorctl start gunicorn, o bien es necesario también usar reload para que actualice el servicio con el archivo de configuración de supervisord.conf.
Nota: También es posible que necesitemos crear el archivo 500.html
Una vez levantado el supervisor con gunicorn, ahora levantaremos el servicio de nginx usando:
# service nginx restart
Ha sido toda una odisea en el camino casi me decido por dejarlo, pero igual funcionó, les agradezco si encuentran alguna mejora se agradece ya que hay varias cosas que seguramente puedan mejorarse.
Apuntes adicionales:
Apunte 1: Para ver servicios en ejecución en suse puedes utilizar:
$ ps aux | grep
Ejemplo:
$ ps aux | grep gunicorn
Con lo anterior puedes ver el id en la segunda columna y si es necesario puedes detenerlo:
$ kill -9 ####
Apunte 2: (Añadido 2014-12-11):
Si se necesita actualizar el código del proyecto de django puede hacerse realizando lo siguiente, se debe entrar al virtualenv y con eso parar el servidor con:
# supervisorctrl stop gunicorn
# supervisorctrl start gunicorn
Nota: También es posible que necesitemos crear el archivo 500.html
Una vez levantado el supervisor con gunicorn, ahora levantaremos el servicio de nginx usando:
# service nginx restart
Ha sido toda una odisea en el camino casi me decido por dejarlo, pero igual funcionó, les agradezco si encuentran alguna mejora se agradece ya que hay varias cosas que seguramente puedan mejorarse.
Apuntes adicionales:
Apunte 1: Para ver servicios en ejecución en suse puedes utilizar:
$ ps aux | grep
Ejemplo:
$ ps aux | grep gunicorn
Con lo anterior puedes ver el id en la segunda columna y si es necesario puedes detenerlo:
$ kill -9 ####
Apunte 2: (Añadido 2014-12-11):
Si se necesita actualizar el código del proyecto de django puede hacerse realizando lo siguiente, se debe entrar al virtualenv y con eso parar el servidor con:
# supervisorctrl stop gunicorn
# supervisorctrl start gunicorn
Apunte 3: (Añadido 2015-01-20):
En esta ocasión nos paso que no podíamos configurar en el puerto 80 el servicio, por lo que lo que tuvimos que hacer fue: revisar en si en la configuración de ngnix se estén cargando otros archivos de configuración generalmente antes del server {} si es así comentar las siguientes instrucciones agregando #, esto es:
# include /etc/nginx/conf.d/*.conf;
# incude /etc/nginx/sites-enabled/*;
O bien revisar si estos archivos no estén causando algún conflicto con el puerto 80.
Espero te sea de utilidad !
https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/gunicorn/
http://adityo.blog.binusian.org/?tag=php-fpm-nginx-on-opensuse-110
http://docs.gunicorn.org/en/latest/deploy.html
http://goodcode.io/blog/django-nginx-gunicorn/
http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor/
http://adityo.blog.binusian.org/?tag=php-fpm-nginx-on-opensuse-110
http://wiki.nginx.org/Install
http://stackoverflow.com/questions/19916016/gunicorn-nginx-server-via-socket-or-proxy
http://adityo.blog.binusian.org/?tag=php-fpm-nginx-on-opensuse-110
http://docs.gunicorn.org/en/latest/deploy.html
http://goodcode.io/blog/django-nginx-gunicorn/
http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor/
http://adityo.blog.binusian.org/?tag=php-fpm-nginx-on-opensuse-110
http://wiki.nginx.org/Install
http://stackoverflow.com/questions/19916016/gunicorn-nginx-server-via-socket-or-proxy
miércoles, 19 de noviembre de 2014
Errores al iniciar gvim : (gvim:10659): Gtk-WARNING - ElementaryOS
Como ya tenia un tiempo que cada vez que abría gvim desde el terminal en ElementaryOS marca varias veces el mismo error:
Errores al iniciar gvim : (gvim:10659): Gtk-WARNING **: Imposible encontrar el motor de temas en la ruta al _modulo: «pixmap»
Para este error en particular realizar lo siguiente:
$ sudo apt-get install synaptic
$ sudo apt-get install gtk2-engines-pixbuf
Una vez aplicado los comandos los errores desaparecieron.
Espero te sea de utilidad !
Referencias:
http://tuksik.ru/gtk-warning-error-pixmap/
____________________________________
Actualización: 06/Oct/2015
En Ubuntu 14.04 tuve que realizar estos pasos adicionales:
sudo apt-get remove vim-gnome
sudo apt-get install vim-gtk
Otra opción es agregar esta línea al .bashrc o .zshrc:
alias gvim="gvim 2>/dev/null"
Referencias:
http://askubuntu.com/questions/361180/gvim-glib-gobject-warning-in-ubuntu-13-10
sábado, 15 de noviembre de 2014
Instalar ninja-ide en mac os x
Bien para continuar con un proyecto que estoy desarrollando en python-django, he probado varias herramientas de desarrollo y me ha gustado el rendimiento de este entorno; sin embargo me dio varios problemas para instalarlo en mac.
Para algunas herramientas utilice homebrew, y wget, si no los tienes instalados usa los siguientes comandos:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install wget
Para instalar la herramienta entonces iniciamos con los siguientes comandos:
$ sudo pip install macfsevents
Por alguna razón, y puede ser por tener múltiples instancias de python (las cuáles no puedo mover mucho debido a otros proyectos de trabajo), las siguientes herramientas no me permitió instalarlas con pip por lo que las descargue directamente desde los sitios usando wget.
$ mkdir ninja-ide_app
$ cd ninja-ide_app
$ mkdir install
$ cd install
$ wget http://sourceforge.net/projects/pyqt/files/sip/sip-4.16.4/sip-4.16.4.tar.gz
$ tar -xzvf sip-4.16.4.tar.gz
$ cd sip-4.16.4
$ python configure.py
$ make
$ make install
$ wget http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.3/PyQt-mac-gpl-4.11.3.tar.gz
$ tar -xzvf PyQt-mac-gpl-4.11.3.tar.gz
$ cd PyQt-mac-gpl-4.11.3
$ python configure-ng.py
(escribe yes para aceptar la licencia)
$ make
(puede tardar unos minutos)
$ make install
$ wget https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.11.6.tar.gz
$ tar -xzvf virtualenv-1.11.6.tar.gz
$ cd virtualenv-1.11.6
$ python setup.py install
$ wget http://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.8.4/QScintilla-gpl-2.8.4.tar.gz
$ tar -xzvf QScintilla-gpl-2.8.4.tar.gz
$ cd QScintilla-gpl-2.8.4
$ cd Qt4Qt5
$ qmake qscintilla.pro
$ make
$ make install
$ cd ..
$ cd Python
(Python Bindings)
$ python configure.py
$ make
$ make install
$ cd ..
$ cd ..
$ cd ..
$ git clone https://github.com/ninja-ide/ninja-ide.git ninja-ide
$ cd ninja-ide $ python ninja-ide.py
Si todo sale bien ya tienes el entorno instalado puedes agregar al bash_profile un alias para que desde la terminal puedas llamarlo.
Espero te sea de utilidad !
Referencias:
http://ninja-ide.org/
https://github.com/ninja-ide/ninja-ide-documentation/blob/master/docs/installing.rst
http://scoobygalletas.blogspot.mx/2011/09/como-instalar-ninja-ide-en-mac-os-x.html
http://pyqt.sourceforge.net/Docs/PyQt4/installation.html
http://www.riverbankcomputing.com/software/sip/download
http://pyqt.sourceforge.net/Docs/QScintilla2/
https://github.com/ninja-ide/ninja-ide/blob/705b6d005ab4db7844f7805d1b10a24732045adf/README.md#requirements
https://github.com/ninja-ide/ninja-ide/issues/1833
domingo, 6 de julio de 2014
Empaquetar aplicación con VirtualBox o redirección de puertos en NAT
La primera idea fue entregar un manual para que puedan montar su servidor web con MAMP, WAMP o XAMPP, sin embargo muchos usuarios no podían hacerlo siendo personas que no son de informática les causaba muchas dudas. Además que la implementación del código en este caso en php tenía errores de funcionamiento simplemente por las variaciones de MAMP, WAMP y XAMPP.
Pues bien ahora voy a intentar utilizando una maquina de VirtualBox, pero se me presentaba el problema de como acceder si tenía la configuración NAT.
VirtualBox tiene una opción de redirección de puertos:
Desde ahí puede configurarse la redirección de puertos:
O también puede utilizarse la línea de comandos desde tu equipo, cuando tienes virtualbox instalado tienes un comando de nombre VBoxManage, de esta forma puedes correr:
$ VBoxManage modifyvm "nombre de tu maquina" --natpf1 "guesthttp,tcp,,2080,,80"
Todo lo expuesto en las imágenes y en el comando anterior, lo que estamos haciendo es que cuando en nuestra maquina busquemos en el navegador 127.0.0.1:2080, el equipo va ir a la maquina virtual al puerto 80, mientras que en tu equipo el puerto 2080 es el que esta a la escucha.
Espero te sea de utilidad !
Referencias:
http://cjenkins.wordpress.com/2010/08/12/redireccion-de-puertos-con-virtualbox/
http://linuxtargz.blogspot.mx/2012/09/configurar-el-reenvio-de-puertos-con.html
http://aruljohn.com/info/virtualbox-access-guest-from-host-nat/
jueves, 29 de mayo de 2014
Secuencia de Django South Migration
Una vez instalado south, y haberlo agregado al archivo settings.py dentro de INSTALLED_APPS, la secuencia es:
- Crear físicamente la base de datos
- Ejecutar comando: $ manage.py schemamigration app --initial
- Ejecutar comando: $ manage.py syncdb
- En el paso anterior no se crearon las tablas de la aplicación puesto que eso se realizará con el comando siguiente.
- Ejecutar comando: $ manage.py migrate app
Ahora bien si hubo un cambio:
- Ejecutar comando: $ manage.py schemamigration app --auto
- Ejecutar comando: $ manage.py migrate app
¿Te fué de utilidad?
sábado, 26 de abril de 2014
Ubuntu compartir una carpeta desde la terminal usando samba
Para compartir una carpeta desde Ubuntu, lo primero es tener instalado samba, en caso de no tenerlo se puede instalar utilizando:
$ sudo apt-get install smbfs samba
En mi caso cuando instale ubuntu desde el proceso de instalación agregue la opción de utilizar samba.
Agregamos un usuario para el uso de la conexión desde otro equipo ya sea de windows, mac o desde otro equipo con ubuntu.
$ sudo smbpasswd -a miusuario
Al correr el comando anterior solicitará una contraseña para el usuario. Posteriormente necesitaremos agregar el usuario y su nombre en el smbusers.
$ sudo vi /etc/samba/smbusers
Al correr el comando se abrirá una pantalla para modificación de texto en el cuál agregaremos:
miusuario="MiUsuario"
Posteriormente daremos de alta los directorios que queremos compartir, esto lo haemos en el archivo smb.conf, editandolo con el siguiente comando:
$ sudo vi /etc/samba/smb.conf
Dentro del archivo se colocará:
[nombre_del_directorio]
comment = miusuario Archivos Privados
path = /ruta/al/directorio_compartido
valid users = miusuario
public = no
writable = yes
Posteriormente reiniciamos el servicio de samba:
$ sudo /etc/init.d/samba restart
Una vez realizado esto, deberá ser posible acceder al recurso compartido.
Espero te sea de utilidad !
Referencias:
http://ubuntuforums.org/showthread.php?t=1208528
http://www.guia-ubuntu.com/index.php?title=Samba#Para_compartir_una_carpeta
$ sudo apt-get install smbfs samba
En mi caso cuando instale ubuntu desde el proceso de instalación agregue la opción de utilizar samba.
Agregamos un usuario para el uso de la conexión desde otro equipo ya sea de windows, mac o desde otro equipo con ubuntu.
$ sudo smbpasswd -a miusuario
Al correr el comando anterior solicitará una contraseña para el usuario. Posteriormente necesitaremos agregar el usuario y su nombre en el smbusers.
$ sudo vi /etc/samba/smbusers
Al correr el comando se abrirá una pantalla para modificación de texto en el cuál agregaremos:
miusuario="MiUsuario"
Posteriormente daremos de alta los directorios que queremos compartir, esto lo haemos en el archivo smb.conf, editandolo con el siguiente comando:
$ sudo vi /etc/samba/smb.conf
Dentro del archivo se colocará:
[nombre_del_directorio]
comment = miusuario Archivos Privados
path = /ruta/al/directorio_compartido
valid users = miusuario
public = no
writable = yes
Posteriormente reiniciamos el servicio de samba:
$ sudo /etc/init.d/samba restart
Una vez realizado esto, deberá ser posible acceder al recurso compartido.
Espero te sea de utilidad !
Referencias:
http://ubuntuforums.org/showthread.php?t=1208528
http://www.guia-ubuntu.com/index.php?title=Samba#Para_compartir_una_carpeta
martes, 22 de abril de 2014
Instalación OpenSUSE 13.1 - VirtualEnv - Python - Django - MySQL
Como parte de un proyecto en mi trabajo es necesario utilizar django dentro de opensuse, para lo cuál realizaremos lo siguiente:
1. Instalación de VirtualEnv
Utilizando la terminal ejecutamos:
> sudo zypper install python-virtualenv
1. Instalación de VirtualEnv
Utilizando la terminal ejecutamos:
> sudo zypper install python-virtualenv
NOTA: Será necesario tener instalado zypper en caso de no tenerlo a travéz de Yast.
2. Iniciar el proyecto con virtualenv
Utilizando los siguientes comandos ...
> mkdir miproyecto
> virtualenv vmp
3. Instalar el soporte de Mysql
Para instalar el soporte de MySQL es importante considerar tener el MySQL instalado, para instalar en OpenSUSE puede ser la siguiente guía: http://omaryahir.blogspot.mx/2014/04/opensuse-131-y-mysql.html
Una vez que el MySQL se encuentra instalado ejecutamos:
> sudo zypper install python-devel
> sudo zypper install libmysqlclient-devel
> sudo zypper install gcc
4. Activamos la maquina e instalamos django
Con el punto anterior tenemos una maquina virtualenv con nombre vmp por lo que la activaremos con los siguientes comandos para instalar la versión más reciente de django y el soporte de mysql.
> source vmp/bin/activate
(vmp) > pip install django
(vmp) > pip install mysql-python
Con lo anterior debe de poder funcionar correctamente django con soporte MySQL en OpenSUSE.
Espero te sea de utilidad !
Referencias:
jueves, 17 de abril de 2014
OpenSUSE 13.1 y MySQL
Haciendo pruebas con OpenSUSE 13.1 me doy cuenta de que viene precargado mariadb y no lograba activar y habilitar el MySQL, me funciono realizando lo siguiente:
1. Instalar a traves de YaST mysql-community-server; esto implicará que el mismo YaST solicite desinstalar mariadb-server y mariadb-client; se debe autorizar la desinstalación ya que la versión mariadb que viene preinstalada en OpenSUSE 13.1 no es compatible con MySQL 5.6.
2. Una vez instalado mysql-community-server se debe crear un archivo usando el siguiente comando:
3. Posteriormente usar el siguiente comando:
5. Posteriormente cerrar el YaST y en la terminal teclear:
De esa forma me funciono, espero te sea de utilidad !!!
Referencias:
http://superuser.com/questions/384365/systemctl-enable-differs-from-systemctl-start-how
http://en.opensuse.org/SDB:MySQL_installation
https://bugzilla.novell.com/show_bug.cgi?id=846422
https://bugzilla.novell.com/show_bug.cgi?id=840159
1. Instalar a traves de YaST mysql-community-server; esto implicará que el mismo YaST solicite desinstalar mariadb-server y mariadb-client; se debe autorizar la desinstalación ya que la versión mariadb que viene preinstalada en OpenSUSE 13.1 no es compatible con MySQL 5.6.
2. Una vez instalado mysql-community-server se debe crear un archivo usando el siguiente comando:
- sudo vi /lib/systemd/system/mysqld.service
- El contenido del archivo debe ser el siguiente:
[Unit] Description=MySQL Server After=network.target [Service] Type=forking ExecStart=/etc/rc.d/mysql start ExecStop=/etc/rc.d/mysql stop [Install] WantedBy=multi-user.target
3. Posteriormente usar el siguiente comando:
sudo systemctl daemon-reload
5. Posteriormente cerrar el YaST y en la terminal teclear:
sudo mysql_secure_installation
6. Finalmente regresar a YaST nuevamente a System y Service Manager localizar mysqld e indicar que debe iniciar el servicio.Esta opción solicitará la contraseña del root, si es la primera vez que se ejecuta es en blanco; posteriormente solicitará algunos datos de la instalación.
De esa forma me funciono, espero te sea de utilidad !!!
Referencias:
http://superuser.com/questions/384365/systemctl-enable-differs-from-systemctl-start-how
http://en.opensuse.org/SDB:MySQL_installation
https://bugzilla.novell.com/show_bug.cgi?id=846422
https://bugzilla.novell.com/show_bug.cgi?id=840159
lunes, 17 de marzo de 2014
VirtualEnv + Python MySQL error: command 'cc' failed with exit status 1 Mac OSX
Tratando de usar Django + MySQL dentro de virtualenv, en un entorno Mac OSX Mavericks, al parecer el procedimiento previo que había seguido ya no funciona igual; al correr el comando sudo pip install mysql-python, me genera el siguiente error:
error: command 'cc' failed with exit status 1
La forma en como lo solucione fue la siguiente:
Instale el XCode desde la AppStore, no se si este se encuentre gratuito ya que hace ya un tiempo lo había comprado.
Posteriormente utiizando el comando:
$ vi ~/.bash_profile
Agregue los siguientes parametros:
$ pip install mysql-python
Quedará instalado; es probable que salgan algunos warnings, sin embargo deberá ser posible utilizarlo para desarrollar.
Espero te sea de utilidad !
Referencias:
http://stackoverflow.com/questions/19769648/cant-install-discount-with-pip-error-command-cc-failed-with-exit-status-1
http://stackoverflow.com/questions/22413050/cant-install-python-mysql-library-on-mac-mavericks?lq=1
error: command 'cc' failed with exit status 1
La forma en como lo solucione fue la siguiente:
Instale el XCode desde la AppStore, no se si este se encuentre gratuito ya que hace ya un tiempo lo había comprado.
Posteriormente utiizando el comando:
$ vi ~/.bash_profile
Agregue los siguientes parametros:
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
Una vez realizado lo anterior ahora si utilizando el comando:$ pip install mysql-python
Quedará instalado; es probable que salgan algunos warnings, sin embargo deberá ser posible utilizarlo para desarrollar.
Espero te sea de utilidad !
Referencias:
http://stackoverflow.com/questions/19769648/cant-install-discount-with-pip-error-command-cc-failed-with-exit-status-1
http://stackoverflow.com/questions/22413050/cant-install-python-mysql-library-on-mac-mavericks?lq=1
miércoles, 15 de enero de 2014
Copiar archivos vía ssh (Amazon) utilizando el archivo .pem
Bien este post es de solo una instrucción sin embargo considere importante dejarlo aquí para no andarlo buscando posteriormente ya que el comando no me funcionaba, se trata de copiar un archivo desde el equipo al servidor vía ssh utilizando un archivo pem especificamente lo estoy haciendo con un servidor Amazon EC2, les dejo el comando:
Con esto copiará el archivo arch_origen.txt en la carpeta donde se esta corriendo el comando y lo dejará en la /ruta/destino/ con el nombre arch_destino.txt
CORRECCIÓN 2014-05-30
Tenía un error en el acomodo del comando:
$scp -i /Ruta/al/archivo.pem -P [puerto] root@[IP]:/ruta/origen/arch_origen.txt /ruta/destino/arch_destino.txt
Por otro lado si deseas copiar un directorio entonces:
$scp -i /Ruta/al/archivo.pem -P [puerto] -r root@[IP]:/ruta/origen /ruta/destino
Espero te sea de utilidad !
Referencias:
http://www.howtogeek.com/66776/how-to-remotely-copy-files-over-ssh-without-entering-your-password/
http://stackoverflow.com/questions/11388014/using-scp-to-copy-a-file-to-amazon-ec2-instance
http://www.hypexr.org/linux_scp_help.php
http://superuser.com/questions/188411/ssh-why-doesnt-get-command-work
sábado, 11 de enero de 2014
GraphViz + Django 1.6.1 + OSX
GraphViz es una herramienta muy útil para generar automáticamente diagramas UML de las clases que se tienen en un proyecto, anteriormente había hecho una entrada relacionada con dicha herramienta sin embargo se ha actualizado y ahora son menos pasos:
PASO 0 Instalar django-extensions
$ sudo easy_install django-extensions
PASO 1 Instalar GraphViz
Puedes descargarlo desde aquí: http://www.graphviz.org/Download_macos.php
PASO 2 Instalar el pygraphviz
$ sudo pip install pygraphviz
PASO 3 Instalar herramientas adicionales:
$ sudo pip install pyparsing==1.5.7
$ sudo pip install pydot
PASO 4 Modificar el archivo settings.py añadiendo dentro de INSTALLED_APPS django_extensions:
INSTALLED_APPS = (
'django.contrib.admin',
...
'django_extensions',
)
USO
Con lo anterior ya tenemos instalada la herramienta podemos ver la ayuda de la siguiente forma:
$ python manage.py graph_models --help
Para generar rapidamente el diagrama en formato png:
./manage.py graph_models -a -g -o mi_proyecto.png
PASO 0 Instalar django-extensions
$ sudo easy_install django-extensions
(Más información: https://github.com/django-extensions/django-extensions)
PASO 1 Instalar GraphViz
Puedes descargarlo desde aquí: http://www.graphviz.org/Download_macos.php
PASO 2 Instalar el pygraphviz
$ sudo pip install pygraphviz
PASO 3 Instalar herramientas adicionales:
$ sudo pip install pyparsing==1.5.7
$ sudo pip install pydot
PASO 4 Modificar el archivo settings.py añadiendo dentro de INSTALLED_APPS django_extensions:
INSTALLED_APPS = (
'django.contrib.admin',
...
'django_extensions',
)
USO
Con lo anterior ya tenemos instalada la herramienta podemos ver la ayuda de la siguiente forma:
$ python manage.py graph_models --help
Para generar rapidamente el diagrama en formato png:
./manage.py graph_models -a -g -o mi_proyecto.png
Saludos y espero te sea de utilidad !
Referencias y más información:
http://django-extensions.readthedocs.org/en/latest/graph_models.html
http://networkx.lanl.gov/pygraphviz/install.html
https://github.com/django-extensions/django-extensions
http://stackoverflow.com/questions/4502006/installing-graphviz-on-os-x-10-5-8
http://www.graphviz.org/Download_macos.php
http://django-extensions.readthedocs.org/en/latest/graph_models.html
http://networkx.lanl.gov/pygraphviz/install.html
https://github.com/django-extensions/django-extensions
http://stackoverflow.com/questions/4502006/installing-graphviz-on-os-x-10-5-8
http://www.graphviz.org/Download_macos.php
lunes, 6 de enero de 2014
Instalar Django + MySQL + OSX Guía Rápida (5 Pasos Generales)
Esta es una guía rápida que utilizo para desarrollar proyectos con Django:
PASO 0 Instalando herramientas de desarrollo
Deberás tener MySQL instalado, debido a los cambios que generalmente existen una opción es entrando en el siguiente link (Ojo es importante que lo manejes todo con 64bit o 32bit, te recomiendo todo lo que instalemos en 64bits):
http://dev.mysql.com/downloads/mysql/
Si ya tienes instalado virtualenv no necesitas realizar este bloque de comandos
$ sudo pip install virtualenv
Instalar librería para enlace de Python con MySQL compatible con Django
NOTA: Como prerequisito instale: wget.
Descargar el mejor instalador para mac y ponerlo a funcionar, aquí la info:
http://brew.sh
PASO 1 Inicializando Proyecto
Crear el directorio:
$ mkdir miproyecto
$ cd miproyecto
Instalando utilizando una maquina virtual
$ virtualenv vmiproyecto
$ source vmiproyecto/bin/activate
Instalar django en la maquina virtual
(vmiproyecto) $ sudo pip install django
Conexión de MySQL-Python
(vmiproyecto) $ sudo brew install mysql # Instala también libmysqlclient-dev
(vmiproyecto) $ sudo pip install mysql-python
Crear proyecto
(vmiproyecto) $ django-admin.py startproject miproyecto
Probar instalación:
(vmiproyecto) $ cd miproyecto
(vmiproyecto) $ python manage.py runserver
Entrar al navegador y probar con http://127.0.0.1:8000
PASO 3 Trabajando con git
Dentro de nuestro proyecto vamos a inicializar el sitio con el siguiente comando:
(vmiproyecto) $ git init
Antes de cualquier cosa le diremos a git que no debe trackear el archivo settings_local.py, que contendrá la configuración necesaria para la conectividad local, así como también los archivos *.swp ya que utilizó vim como editor; para esto debemos editar el archivo .gitignore, el cuál se debe crear si no existe y colocar dentro, el siguiente contenido (Puede usar $ vi .gitignore):
settings_local.py
*.swp
*.pyc
Una vez realizado lo anterior utilizaremos la siguientes instrucciones para añadir a nuestro primer commit los archivos del proyecto:
(vmiproyecto) $ git add .
(vmiproyecto) $ git commit -m "Inicializando proyecto: miproyecto"
NOTA: Es recomendable utilizar algún sitio como github o bitbucket para llevar el control de versiones respaldando el código en un lugar externo, así como también el uso de diversas ramas según sea necesario.
PASO 4 Generando settings_local.py
Este archivo será diferente en el entorno de producción y en el entorno de desarrollo fue por eso que se agrego al .gitignore. Para lo anterior debemos crear el archivo settings_local.py con el siguiente contenido:
DATABASES_LOCAL = {
'default': {
'ENGINE': 'mysql.connector.django',
'NAME': 'basededatos',
'USER': 'usuario_basededatos',
'PASSWORD': 'clave_usuario_basededatos',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
PASO 5 Modificando la configuración del settings.py
#Esta instrucción sirve para cerrar la sesión una vez cerrado el navegador:
SESSION_EXPIRE_AT_BROWSER_CLOSE=True
...
#Elegir el lenguaje del sistema en el ejemplo vemos español-México:
LANGUAGE_CODE=’es-MX’
...
#En caso de usar las zonas seleccionar la zona correcta desde:
#http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
TIME_ZONE='America/Mexico_City'
...
#Desactivar Time Zone en ocasiones guarda la fecha y hora de acuerdo a
#la zona horaria configurada, a menos que lo necesites puedes dejarlo
#activado, en mi caso particular no lo requiero.
USE_TZ=False
Referencias:
https://dl.dropboxusercontent.com/u/43970274/websites/desarrolloweb/index.html#settings
http://stackoverflow.com/questions/7335853/mysql-python-installation-problems-on-mac-os-x-lion
http://dev.mysql.com/doc/refman/5.0/es/resetting-permissions.html
PASO 0 Instalando herramientas de desarrollo
Deberás tener MySQL instalado, debido a los cambios que generalmente existen una opción es entrando en el siguiente link (Ojo es importante que lo manejes todo con 64bit o 32bit, te recomiendo todo lo que instalemos en 64bits):
http://dev.mysql.com/downloads/mysql/
Si ya tienes instalado virtualenv no necesitas realizar este bloque de comandos
$ sudo easy_install -U distribute
$ sudo easy_install pip$ sudo pip install virtualenv
Instalar librería para enlace de Python con MySQL compatible con Django
Descargar el mejor instalador para mac y ponerlo a funcionar, aquí la info:
http://brew.sh
Crear el directorio:
$ mkdir miproyecto
$ cd miproyecto
$ virtualenv vmiproyecto
$ source vmiproyecto/bin/activate
Instalar django en la maquina virtual
(vmiproyecto) $ sudo pip install django
Conexión de MySQL-Python
(vmiproyecto) $ sudo brew install mysql # Instala también libmysqlclient-dev
(vmiproyecto) $ sudo pip install mysql-python
Crear proyecto
(vmiproyecto) $ django-admin.py startproject miproyecto
Probar instalación:
(vmiproyecto) $ cd miproyecto
(vmiproyecto) $ python manage.py runserver
Entrar al navegador y probar con http://127.0.0.1:8000
PASO 3 Trabajando con git
Dentro de nuestro proyecto vamos a inicializar el sitio con el siguiente comando:
(vmiproyecto) $ git init
Antes de cualquier cosa le diremos a git que no debe trackear el archivo settings_local.py, que contendrá la configuración necesaria para la conectividad local, así como también los archivos *.swp ya que utilizó vim como editor; para esto debemos editar el archivo .gitignore, el cuál se debe crear si no existe y colocar dentro, el siguiente contenido (Puede usar $ vi .gitignore):
settings_local.py
*.swp
*.pyc
Una vez realizado lo anterior utilizaremos la siguientes instrucciones para añadir a nuestro primer commit los archivos del proyecto:
(vmiproyecto) $ git add .
(vmiproyecto) $ git commit -m "Inicializando proyecto: miproyecto"
NOTA: Es recomendable utilizar algún sitio como github o bitbucket para llevar el control de versiones respaldando el código en un lugar externo, así como también el uso de diversas ramas según sea necesario.
PASO 4 Generando settings_local.py
Este archivo será diferente en el entorno de producción y en el entorno de desarrollo fue por eso que se agrego al .gitignore. Para lo anterior debemos crear el archivo settings_local.py con el siguiente contenido:
DATABASES_LOCAL = {
'default': {
'ENGINE': 'mysql.connector.django',
'NAME': 'basededatos',
'USER': 'usuario_basededatos',
'PASSWORD': 'clave_usuario_basededatos',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
PASO 5 Modificando la configuración del settings.py
#Esta instrucción sirve para cerrar la sesión una vez cerrado el navegador:
SESSION_EXPIRE_AT_BROWSER_CLOSE=True
...
#En el archivo settings.py eliminar la variable DATABASES = ... y dejar lo siguiente:
import settings.local.py
import settings.local.py
DATABASES = DATABASES_LOCAL
...#Elegir el lenguaje del sistema en el ejemplo vemos español-México:
LANGUAGE_CODE=’es-MX’
...
#En caso de usar las zonas seleccionar la zona correcta desde:
#http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
TIME_ZONE='America/Mexico_City'
...
#Desactivar Time Zone en ocasiones guarda la fecha y hora de acuerdo a
#la zona horaria configurada, a menos que lo necesites puedes dejarlo
#activado, en mi caso particular no lo requiero.
USE_TZ=False
Referencias:
https://dl.dropboxusercontent.com/u/43970274/websites/desarrolloweb/index.html#settings
http://stackoverflow.com/questions/7335853/mysql-python-installation-problems-on-mac-os-x-lion
http://dev.mysql.com/doc/refman/5.0/es/resetting-permissions.html
Suscribirse a:
Entradas (Atom)