107 | | En el servidor es necesario que exista una base de datos que usarán los dos servicios. Por defecto es Sqlite, pero puedes cambiar la configuración en el fichero config.py para que no sea así. Para saber como configurar la base de datos usando mySQL, PostgreSQL, Oracle o cualquier otra base de datos que soporta SQLAlchemy echar un vistazo a [http://www.sqlalchemy.org/docs/05/dbengine.html#create-engine-url-arguments]. Después de hacer eso sólo habrá que ejecutar: |
108 | | |
109 | | {{{ |
110 | | ./setup.sh |
111 | | }}} |
112 | | |
113 | | Esto generará la base de datos y también los fichero de traducción para los lenguajes soportados. |
| 107 | ==== Instalación de entorno virtual ==== |
| 108 | |
| 109 | Instalemos las dependencias python que tiene el servicio web a través de la herramienta VirtualEnv. Accedemos a el directorio server y ejecutamos: |
| 110 | |
| 111 | {{{ |
| 112 | $ cd server/ |
| 113 | $ virtualenv --distribute --no-site-packages env/ |
| 114 | }}} |
| 115 | |
| 116 | Esto nos instala y configura un python2 mínimo en el directorio. Para activarlo e instalar las dependencias necesarias se ejecuta: |
| 117 | |
| 118 | {{{ |
| 119 | $ source env/bin/activate |
| 120 | }}} |
| 121 | |
| 122 | Aparecerá al principio del prompt de la consola "(env)", esto nos indica que estamos utilizando el entorno virtual generado. Cada vez que vaya a utilizarse la web en la consola habrá que ejecutar este comando en el directorio "server". Para salir del entorno se puede ejecutar: |
| 123 | |
| 124 | {{{ |
| 125 | $ deactive |
| 126 | }}} |
| 127 | |
| 128 | Aunque también se puede cerrar esa terminal sin que ocurra más problema. |
| 129 | |
| 130 | Para terminar de instalar las dependencias en este entorno virtual, debemos estar usandolo por lo que hay que asegurarse que aparece "(env)" al principio del prompt antes de ejecutar el siguiente comando: |
| 131 | |
| 132 | {{{ |
| 133 | $ pip-2.7 install -r dependencies.txt |
| 134 | }}} |
| 135 | |
| 136 | Este comando sólo habrá que usarlo una vez ya que es un proceso de instalación y una vez hecho no habrá que repetirlo. |
| 137 | |
| 138 | ==== Instalación de SQLAlquemy ==== |
| 139 | |
| 140 | En el servidor es necesario que exista una base de datos que usarán los dos servicios. Por defecto es SQLAlquemy, pero se puede cambiar la configuración en el fichero server/web/config.py para que no sea así. Por defecto encontramos en este fichero algo así: |
| 141 | |
| 142 | {{{ |
| 143 | #DB = 'sqlite:///database.sqlite' |
| 144 | DB = 'postgresql://opengnsys:opengnsys@localhost/opengnsys' |
| 145 | }}} |
| 146 | |
| 147 | Para saber como configurar la base de datos usando mySQL, PostgreSQL, Oracle o cualquier otra base de datos que soporta SQLAlchemy echar un vistazo a [http://www.sqlalchemy.org/docs/05/dbengine.html#create-engine-url-arguments]. |
| 148 | |
| 149 | Vamos a configurar el SQLAlquemy para que funcione tal como viene por defecto en este fichero, aunque puede ser modificado para adaptarse a cualquier necesidad. Para ello hay que asegurarse de que el servicio está funcionando: |
| 150 | |
| 151 | {{{ |
| 152 | # /etc/init.d/postgres start |
| 153 | }}} |
| 154 | |
| 155 | |
| 156 | Ahora entramos como usuario postgres para realizar las operaciones, existen dos maneras según el sistema usado: |
| 157 | |
| 158 | {{{ |
| 159 | $ sudo -i -u postgres |
| 160 | }}} |
| 161 | {{{ |
| 162 | $ su root |
| 163 | $ su - postgres |
| 164 | }}} |
| 165 | |
| 166 | Nuestro prompt habrá cambiado para recordarnos que ahora somos el usuario postgres. Ahora procedemos a crear un usuario para la base de datos llamado "opengnsys". Cuando pregunte por la contraseña debemos poner también "opengnsys" para que funcione con la configuración por defecto. |
| 167 | |
| 168 | {{{ |
| 169 | $ createuser -D -R -S -P opengnsys |
| 170 | }}} |
| 171 | |
| 172 | Una vez creado procedemos a crear una base de datos también llamada "opengnsys" y que pertenezca al usuario creado anteriormente: |
| 173 | |
| 174 | {{{ |
| 175 | $ createdb -T template0 -E UTF8 opengnsys -O opengnsys |
| 176 | }}} |
| 177 | |
| 178 | Con esto ya tenemos configurado PostgreSQL. |
| 179 | |
| 180 | Nota: Si no arranca el servicio y en el fichero de log "/var/log/postgresql.log" aparece lo siguiente: |
| 181 | |
| 182 | {{{ |
| 183 | postgres cannot access the server configuration file "/var/lib/postgres/data/postgresql.conf": No such file or directory |
| 184 | }}} |
| 185 | |
| 186 | Probad a ejecutar como usuario postgres: |
| 187 | |
| 188 | {{{ |
| 189 | initdb -D /var/lib/postgres/data/ |
| 190 | }}} |
| 191 | |
| 192 | Y volver a intentar arrancar el servicio de nuevo. |
| 193 | |
| 194 | ==== Instalación de SQLite ==== |
| 195 | |
| 196 | Si optamos por no usar PostreSQL y queremos una opción más sencilla (y mucho menos escalable) podemos utilizar SQLite. Si cambiamos el fichero "server/web/config.py" de esta manera: |
| 197 | |
| 198 | {{{ |
| 199 | DB = 'sqlite:///database.sqlite' |
| 200 | #DB = 'postgresql://opengnsys:opengnsys@localhost/opengnsys' |
| 201 | }}} |
| 202 | |
| 203 | Usará una base de datos sqlite que no necesita configuración ni instalación adicional. Todos los datos se guardarán en el archivo "database.sqlite" que se generará automáticamente en el siguiente paso. |
| 204 | |
| 205 | ==== Creación de la base de datos ==== |
| 206 | |
| 207 | Simplemente accedemos al directorio "server/web/" y ejecutamos: |
| 208 | |
| 209 | {{{ |
| 210 | $ cd server/web/ |
| 211 | $ ./db.py |
| 212 | }}} |
| 213 | |
| 214 | Esto generará las tablas necesarias en la base de datos. |
| 215 | |
| 216 | ==== Generación de traducciones ==== |
| 217 | |
| 218 | Al igual que en el caso anterior vamos al directorio "server/web/" y ejecutamos lo siguiente: |
| 219 | |
| 220 | {{{ |
| 221 | $ cd server/web/ |
| 222 | $ ./i18n_make.sh |
| 223 | $ ./i18n_make_plugin.sh |
| 224 | }}} |
| 225 | |
| 226 | Esto generará los ficheros .mo a partir de los .po encontrados. |
| 227 | |