Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Apachen Centos

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 10

Servidor Apache CentOS 6

Introducción.
El servidor HTTP Apache es un servidor web HTTP de código abierto, para plataformas Unix
(BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo
HTTP/1.12 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente
en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se
debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no
agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de
EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y
"civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache
consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. En inglés, a patchy
server (un servidor "parcheado") suena igual que Apache Server.

Instalación.
Tecleamos la siguiente orden en la terminal del sistema operativo:

yum -y install httpd

Si se desea que Apache incluya soporte para PHP/MySQL, Perl, Python y SSL/TLS, ejecutamos lo
siguiente:

yum -y install php php-mysql mod_perl mod_wsgi mod_ssl mod_python

Una vez instalado, podemos poner el servicio HTTPD activo de forma permanente con la orden

chkconfig httpd on

Ni que decir tiene que tenemos que abrir el puerto 80 del cortafuegos.

Para iniciar el servicio por primera vez, ejecute lo siguiente:

service httpd start


Directorios Virtuales.
Si, por ejemplo, quisiéramos añadir el alias para un directorio localizado en /var/datos/fotos/ y el
cual queremos visualizar como el directorio /fotos/ en Apache, lo primero será crear el directorio:

mkdir -p /var/datos/fotos/

Cambiamos los contextos de SELinux de este directorio, con la finalidad de que tenga rol de objeto
(object_r), creado por usuario de sistema (system_u) y tipo httpd_sys_content_t:

chcon -u system_u /var/datos/fotos/


chcon -r object_r /var/datos/fotos/
chcon -t httpd_sys_content_t /var/datos/fotos/

Creamos el siguiente fichero de configuración

gedit /etc/httpd/conf.d/ejemplos.conf

Añadimos el siguiente contenido:

Alias /fotos /var/datos/fotos/


<Directory "/var/datos/fotos/">
Options Indexes
</Directory>

Guardamos el archivo, cambiamos el propietario y los permisos del directorio /var/datos/fotos/

chmod 777 /var/datos/fotos/


chown angel:angel /var/datos/fotos/

Recargamos el servicio

service httpd reload

Abrimos un navegador (127.0.0.1/fotos) y comprobamos que funciona, con el siguiente resultado:


Tenemos este resultado porque no hay una página index.html. En el caso de que la hubiera (para
hacer un index.html a modo de prueba no hay más que escribir unas escuetas líneas en la terminal
como echo Hola mundo > index.html y chmod 777 index.html dentro del directorio del sitio web)
será la página principal del sitio, sustituyendo la página anteriormente impuesta.

Limitar el acceso por usuario y contraseña.


Primero creamos el directorio /var/www/privado/

mkdir -p /var/www/privado

Generamos el archivo /etc/httpd/conf.d/autenticar.conf.

gedit /etc/httpd/conf.d/autenticar.conf &

Añadimos el siguiente contenido.

Alias /privado /var/www/privado


<Directory "/var/www/privado">
Options Indexes
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Recargamos el servicio httpd.

service httpd reload

Creamos el archivo /var/www/privado/.htaccess.


gedit /var/www/privado/.htaccess &

Añadimos las siguientes líneas al archivo.

AuthName "Sólo usuarios autorizados"


AuthType Basic
Require valid-user
AuthUserFile /var/www/claves

Generamos el archivo de claves dentro de /var/www/claves.

touch /var/www/claves

Cambiamos los permisos de claves y su propietario.

chmod 600 /var/www/claves


chown apache:apache /var/www/claves

Ahora, desde el terminal, escribimos el mandato htpasswd junto con la ruta de directorio y el
usuario para crearle la clave.

htpasswd /var/www/claves angel


Entramos en el navegador en la dirección 127.0.0.1/privado y saldrá el cuadro de petición de
usuario y contraseña.

Redirección de directorios.
Genere el archivo denominado /etc/httpd/conf.d/redireccion.conf

gedit /etc/httpd/conf.d/ejemplo-redireccion.conf &

Añadimos la siguiente línea.

Redirect 301 /arandasri http://www.arandasri.blogspot.com/

Recargamos el servicio httpd

service httpd reload

Entramos al navegador a la dirección http://127.0.0.1/arandasri para comprobar que nos


redirecciona a la página deseada.
Tipos de MIME.

Genere un archivo que denominado /etc/httpd/conf.d/mimes.conf

gedit /etc/httpd/conf.d/mimes.conf

Añadimos el siguiente contenido.

AddType application/ogg .ogg


AddDescription "Ogg Vorbis Audio" .ogg
AddIcon /icons/sound2.png .ogg

Recargue el servicio httpd

service httpd reload

Para comprobar un sonido desde la página, podemos copiar uno del propio sistema Ubuntu, y
descargarlo dentro de una de las carpetas del sitio web.

cp /usr/share/sounds/ubuntu/stereo/phone-incoming-call.ogg /var/datos/fotos/sonar.ogg

Entramos a la dirección donde está ubicado el archivo .ogg desde el navegador y este es el
resultado: http://127.0.0.1/fotos/sonar.ogg
Generando firma digital y certificado.
Como usuario root, entramos al siguiente directorio.

cd /etc/pki/tls

Escribimos la siguiente orden en el terminal y a continuación nos pedirá una parafrase.

openssl genrsa -des3 -out private/dominio.tld.key 2048

Para que no nos pida tener que poner la parafrase cada vez, introducimos la siguiente orden.

openssl rsa -in private/dominio.tld.key -out private/dominio.tld.pem

Escribimos la siguiente orden y nos pedirá una serie de datos.

openssl req -new -key private/dominio.tld.key -out certs/dominio.tld.csr

openssl x509 -req -days 730 -in certs/dominio.tld.csr -signkey private/dominio.tld.key -out
certs/dominio.tld.crt

Accedemos al archivo /etc/httpd/conf.d/ssl.conf

gedit /etc/httpd/conf.d/ssl.conf

Buscamos y cambiamos estas líneas.

SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

Por estos otros.

SSLCertificateFile /etc/pki/tls/certs/dominio.tld.crt
SSLCertificateKeyFile /etc/pki/tls/private/dominio.tld.pem

Reiniciamos los servicios httpd

service httpd restart

Debemos tener en cuenta que debemos tener el HTTPS abierto en el cortafuegos (Puerto 443)
Abrimos nuestro navegador favorito e introducimos como dirección https://127.0.0.1/fotos y
aparecerá lo siguiente.

También funciona con nuestro dominio.

Ahora tenemos nuestro propio certificado local.

Configuración de Apache para múltiples dominios.


El primer paso consiste en crear la estructura de directorios para el anfitrión virtual.

mkdir -p /var/www/red20b.local/{cgi-bin,html,logs,etc}

Creamos el archivo /etc/httpd/conf.d/dominio.conf:

gedit /etc/httpd/conf.d/dominio.conf

Y le aplicamos las siguientes líneas al archivo.

<VirtualHost *:80>
ServerAdmin angel_aranda86@hotmail.com
DocumentRoot /var/www/red20b.local/html
ServerName www.red20b.local
ServerAlias red20b.local
Redirect 301 / https://www.red20b.local/
CustomLog logs/red20b.local-access_log combined
Errorlog logs/red20b.local-error_log
</VirtualHost>
Reiniciamos el servicio Apache.

service httpd restart

Y comprobamos que funciona en el navegador.

Para hacer hosting a un usuario, lo que tenemos que hacer es poner el DocumentRoot en
/home/usuario/, que es donde tiene alojado su pagina web.

mkdir -p /home/usuario/{cgi-bin,html,logs,etc}

Y especificar el dominio dentro de dominio.conf

<VirtualHost *:80>
ServerAdmin usuario@dominio.com
DocumentRoot /home/usuario/html
ServerName www.dominio.com
ServerAlias dominio.com
Redirect 301 / https://www.dominio.com/
CustomLog logs/dominio.com-access_log combined
Errorlog logs/dominio.com-error_log
</VirtualHost>

Soporte CGI.

Si queremos añadir que se reconociera la extensión *.cgi como un guión CGI (Common Gateway
Interface), solo bastará añadir un fichero que denominaremos, arbitrariamente,
/etc/httpd/conf.d/cgi.conf con el siguiente contenido:

AddHandler cgi-script .cgi

Creamos el fichero /var/www/cgi-bin/tiempo.cgi.


gedit /var/www/cgi-bin/tiempo.cgi &

Dentro de este fichero metemos el siguiente contenido.

#!/usr/bin/perl
print "content-type: text/htmlnn";
print scalar localtime;
print "n";

Deberemos de cambiar el permiso del archivo anterior

chmod 755 /var/www/cgi-bin/tiempo.cgi

Abrimos el navegador y entramos en la dirección 127.0.0.1/cgi-bin/tiempo.cgi

Sección Paginade

Creamos el fichero /etc/httpd/conf.d/aliases.conf

gedit /etc/httpd/conf.d/aliases.conf &

Y escribimos las siguientes líneas.

Alias /paginade /home/


<Directory /home/>
Option Indexes Includes FollowSymLinks
AllowOverride all
Allow from all
</Directory>

Una vez guardado, escribimos en la terminal.

setsebool -P httpd_enable_homedirs 1

Cambiamos los permisos de los home

chmod 755 /home/*

Reiniciamos el servicio

service httpd restart


Entramos en un navegador y escribimos en la barra de dirección.

127.0.0.1/paginade

Y este es el resultado.

Você também pode gostar