PDF de programación - LAPP & SSL - Servidor de Producción Con Web.py

Imágen de pdf LAPP & SSL - Servidor de Producción Con Web.py

LAPP & SSL - Servidor de Producción Con Web.pygráfica de visualizaciones

Publicado el 2 de Marzo del 2021
95 visualizaciones desde el 2 de Marzo del 2021
119,8 KB
16 paginas
Creado hace 9a (23/08/2011)
LAPP & SSL - Servidor de Producción Con Web.py Vol 1

Jorge Alonso Toro Hoyos

15 de Agosto del 2011

Puede encontrar la versión actualizada en

http://jolthgs.wordpress.com/

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

LAPP & SSL - Servidor de Producción Con Web.py Vol 1.
by Jorge Toro

Copyright © 2011 Jorge Toro

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

Índice general

1 Introducción al Objetivo
2 Instalación desde las fuentes de PostgreSQL 9.0.4
3 Instalación de Apache
4 Configuración y soporte a mod_wsgi
5 Configuración Apache + SSL
6 Instalación y configuración de Web.py + Apache + PostgreSQL
7 Creación de APP

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

Prefacio

Objetivos
Los objetivos principales de este manual son el montaje de un servidor LAPP en GNU/Linux que
permita ejecutar en un ambiente de producción, aplicativos desarrollados en python que accedan a una
base de datos postgresql con replicación de datos.

La ejecución y la paquetería fue desarrollada y probada en un servidor Debian GNU/Linux 6.0.2
(squeeze). Sin embargo no existe ningún impedimento para que esto se pueda llevar a cabo en otras
distros.

Requisitos
Se supone que los lectores tienen algún conocimiento en GNU/Linux, CLI, bash, compilación, gestor
de paquetes, postgresql, ssl, ssh, programación en python y apache.
Errores
Si desea informar de algún error por favor ponerse en contacto con el creador jolthgs@gmail.com y
jolth@esdebian.org. Se agradece su ayuda.
Dependencias
Para cada apartado se indicará por separado cada una de las dependencias que sean necesarias para el
desarrollo del mismo.

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

1. Introducción a los Objetos

En este capítulo se detalla una breve introducción a cada una de las tecnologías usadas en
el desarrollo del manual y los objetivos a alcanzar.

GNU/Linux
Debian
PostgreSQL
Apache
SSL
mod_wsgi
Python
Web.py
Psycopg

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

2. Instalación desde las fuentes de PostgreSQL

9.0.4

Este capítulo presenta la instalación de postgreSQL y su configuración básica.

1. DEPENDENCIAS:

paquetes: gcc, make, zlib, readline, gettext, openssl
librerías: libssl-dev, libreadline6-dev, libpam0g-dev, libldap-dev, python-dev, libperl-dev

2. USUARIO DEL SISTEMA PARA PostgreSQL

Creamos nuestro usuario:
# adduser --home /usr/local/postgresql-9.0.4 postgres
ingresamos al user postgres:
# login postgres

3. VARIABLES DEL ENTORNO

$ echo "export PGDATA=$HOME/data" >> .profile
$ echo "export PGSRC=$HOME/src/postgresql-9.0.4" >> .profile
$ echo "export PGHOME=$HOME/pgsql" >> .profile
$ source .profile
$ echo "export PGLOG=$PGDATA/pg9.0.4.log" >> .profile
$ echo "export PGBIN=$PGHOME/bin" >> .profile
$ source .profile
$ echo "export PATH=$PATH:$PGBIN" >> .profile
$ source .profile

4. INSTALACION DE PostgreSQL 9.0.4

Creamos el directorio para las fuentes:
$ mkdir -p $PGSRC

Descargamos las fuentes:
$ cd $PGSRC
$ wget -c ftp://ftp5.us.postgresql.org/pub/PostgreSQL/source/v9.0.4/postgresql-
9.0.4.tar.gz

Desempaquetamos las fuentes:
$ gzip -dc postgresql-9.0.4.tar.gz | tar xvf -
$ cd postgresql-9.0.4/

Preparamos todo para la compilación:
$ ./configure --prefix=$PGHOME --enable-nls --with-python --with-perl --with-
openssl --with-pam --with-ldap

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

Compilamos:
$ make

Instalamos:
# make install

5. PUESTA EN MARCHA

# cd /usr/local/postgresql-9.0.4/
# chown -R postgres. pgsql/

Creamos el Cluster:
$ initdb --pgdata=$PGDATA --encoding=utf8 -U postgres
Los archivos de este cluster serán de propiedad del usuario «postgres».
Este usuario también debe ser quien ejecute el proceso servidor.
El cluster será inicializado con configuración local es_CO.UTF-8.
La configuración de búsqueda en texto ha sido definida a «spanish».

creando el directorio /usr/local/postgresql-9.0.4/data ... hecho
creando subdirectorios ... hecho
seleccionando el valor para max_connections ... 100
seleccionando el valor para shared_buffers ... 28MB
creando archivos de configuración ... hecho
creando base de datos template1 en /usr/local/postgresql-9.0.4/data/base/1 ...
hecho
inicializando pg_authid ... hecho
inicializando dependencias ... hecho
creando las vistas de sistema ... hecho
cargando las descripciones de los objetos del sistema ... hecho
creando conversiones ... hecho
creando directorios ... hecho
estableciendo privilegios en objetos predefinidos ... hecho
creando el esquema de información ... hecho
instalando el lenguaje PL/pgSQL ... hecho
haciendo vacuum a la base de datos template1 ... hecho
copiando template1 a template0 ... hecho
copiando template1 a postgres ... hecho

ATENCIÓN: activando autentificación «trust» para conexiones locales.
Puede cambiar esto editando pg_hba.conf o usando el parámetro -A
la próxima vez que ejecute initdb.

Completado. Puede iniciar el servidor de bases de datos usando:

postgres -D /usr/local/postgresql-9.0.4/data
o
pg_ctl -D /usr/local/postgresql-9.0.4/data -l archivo_de_registro start

Iniciamos el servidor postgres:
$ pg_ctl -D $PGDATA -l $PGLOG start

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

6. CONFIGURANDO POSTGRES.

$ psql template1
template1=# ALTER USER postgres WITH PASSWORD 'sergtsop';
template1=# \q

Editamos el fichero postgresql.conf:
$ vim data/postgresql.conf
buscamos y reemplazamos las siguientes variables:

listen_addresses = '*'
password_encryption = on

Editamos el fichero pg_hba.conf :
$ vim data/pg_hba.conf
reemplazamos todas las conexiones: trust, por md5.

Debe quedar algo como esto:
77 # TYPE DATABASE USER CIDR-ADDRESS METHOD
78
79 # "local" is for Unix domain socket connections only
80 local all all md5
81 # IPv4 local connections:
82 host all all 127.0.0.1/32 md5
83 # IPv6 local connections:
84 host all all ::1/128 md5

Reiniciamos nuestro servidor postgresql:
$ pg_ctl -D $PGDATA -l $PGLOG restart

Ingresamos al CLI de postgresql y probamos la conexión:
$ psql -U postgres -W postgres

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

3. Instalación de Apache

En este capítulo se detalla la instalación de Apache desde el gestor de paquetes de Debian y
la forma de instalarlo desde las fuentes.

# hostname -f
debian1.local

1. INSTALACION DESDE EL GESTOR DE PAQUETES

# aptitude install apache2 -y

# lynx localhost
o
# /etc/init.d/apache2 status

2. INSTALACION DESDE LAS FUENTES

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

4. Configuración y soporte a mod_wsgi

En este capítulo se detalla la configuración de Apache con mod_wsig.

1. INSTALACION DESDE EL GESTOR DE PAQUETES

# aptitude install libapache2-mod-wsgi python-flup

Habilitamos los módulos necesarios:
# a2enmod rewrite

Luego creamos nuestro directorio raíz:
# mkdir -p /srv/www/`hostname -f`/application/

Creamos la configuración de nuestra VirtualHost para Apache con soporte mod_wsgi:
# vim /etc/apache2/sites-available/debian1.local

<VirtualHost *:80>
ServerAdmin jolth@debian1.local
ServerName debian1.local
ServerAlias www.debian1.local
DocumentRoot /srv/www/debian1.local/public_html/
ErrorLog /srv/www/debian1.local/logs/error.log
CustomLog /srv/www/debian1.local/logs/access.log combined

WSGIScriptAlias / /srv/www/debian1.local/application
Alias /static /srv/www/debian1.local/public_html

<Directory /srv/www/debian1.local/application>
SetHandler wsgi-script
Options ExecCGI FollowSymLinks
</Directory>

# <Files code.py>
# SetHandler wsgi-script
# Options ExecCGI FollowSymLinks
# </Files>

AddType text/html .py

<Location />
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/static
RewriteCond %{REQUEST_URI} !^(/.*)+code.py/
RewriteRule ^(.*)$ code.py/$1 [PT]
</Location>
</VirtualHost>

Deshabilitamos el sitio por defecto y habilitamos nuestro sitio:
# a2ensite debian1.local
# a2dissite default

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

Creamos la estructura de directorios necesaria:
# mkdir /srv/www/debian1.local/public_html/
# mkdir /srv/www/debian1.local/logs/
# touch /srv/www/debian1.local/logs/error.log

Reiniciamos el servidor web:
# /etc/init.d/apache2 restart

Copyright © 2011 Jorge Toro http://jolthgs.wordpress.com/

5. Configuración Apache + SSL

En este capítulo se detalla cómo configurar apache con soporte SSL.

1. INSTALACION

# aptitude install openssl ssl-cert

Creamos el directorio para nuestras claves.
# mkdir /etc/apache2/ssl

Creamos nuestra clave publica y privada.
root@debian1:/srv/www/debian1.local/application/templates# openssl req -new -x509
-days 365 -nodes -out /etc/apache2/ssl/publico.pem -keyout
/etc/apache2/ssl/privado.pem
Generating a 1024 bit RSA private key
.++++++
..++++++
writing new private key to '/etc/apache2/ssl/privado.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CO
State or Province Name (full name) [Some-State]:Bogota
Locality Name (eg, city) []:Bogota
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:jolth
Email Address []:jolth@debian1.local
root@debian1:/srv/www/debian1.local/application/templates# /etc/i
  • Links de descarga
http://lwp-l.com/pdf18942

Comentarios de: LAPP & SSL - Servidor de Producción Con Web.py (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad