Instalacion LAMP

De Wiki Informatica Gobierno Regional
Revisión del 14:58 2 sep 2016 de Soporte Gobierno Regional de La Araucanía (discusión | contribs.) (Página creada con «= Instalación de los paquetes básicos = Para tener un servidor web completamente funcional se deben instalar los siguientes programas: * '''Apache (httpd)''': servidor...»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Instalación de los paquetes básicos[editar]

Para tener un servidor web completamente funcional se deben instalar los siguientes programas:

  • Apache (httpd): servidor web.
  • apachetop: monitor de los archivos de log de Apache.
  • awstats: programa para la generación de estadísticas de accesos web.
  • ImageMagick: programa para el tratamiento de imágenes.
  • MySQL: motor de base de datos.
  • PHP: lenguaje interpretado para la generación de páginas web dinámicas.
  • webalizer: programa para la generación de estadísticas de accesos web.

Además, se recomienda instalar las siguientes utilidades adicionales:

  • antiword: convierte documentos MS-Word a ASCII o Postscript.
  • ghostscript:intérprete y randerizador PostScript(TM).
  • lynx: navegador web en modo texto.
  • htmldoc: Paquete para conversion a documentos PDF.
  • python-pisa:
  • python-reportlab:
  • pyPdf:
  • python-setuptools:

La instalación se realiza de la siguiente forma:

yum install httpd apachetop mysql mysql-server \
php php-pear php-gd php-imap php-mysql php-mbstring php-pgsql php-soap php-xml php-pecl-apc \
php-xmlrpc php-intl php-mcrypt php-bcmath php-process php-ldap php-ZendFramework \
webalizer awstats perl-Geo-IP GeoIP ImageMagick ghostscript lynx htmldoc \
python-pisa python-reportlab pyPdf python-setuptools antiword php-pecl-http

Configuración de PHP[editar]

Para un correcto funcionamiento de las aplicaciones web (por ejemplo, TYPO3), se deben modificar algunos valores en la configuración de PHP. Para ello se debe editar el archivo /etc/php.ini y modificar los siguientes valores:

max_execution_time = 60
max_input_time = 90
post_max_size = 16M
upload_max_filesize = 16M
date.timezone = "America/Santiago"

NOTA: el parámetro date.timezone está comentado; se debe eliminar el caracter ";" al inicio de la línea.

Configuración de php-pecl-apc[editar]

Se debe editar el archivo /etc/php.d/apc.ini y modificar el valor de la variable apc.shm_size:

apc.shm_size=192M

Configuración de Apache[editar]

VirtualHost por omisión[editar]

Se debe crear el archivo /etc/httpd/conf.d/000-default.conf con el siguiente contenido

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@lazos.cl
    DocumentRoot /var/www/html
    ServerName nombreDelServidor.dominio
    ErrorLog logs/error_log
    CustomLog logs/access_log combined
</VirtualHost>

Activación del servicio[editar]

chkconfig --levels 235 httpd on

/etc/init.d/httpd start

Configuración de MySQL[editar]

Activación del servicio[editar]

chkconfig --levels 235 mysqld on

/etc/init.d/mysqld start

Configuración de la contraseña del administrador[editar]

Se debe utilizar la herramienta mysql_secure_installation y seguir los pasos indicados:

mysql_secure_installation

A continuación se deben responder las siguientes preguntas:

Enter current password for root (enter for none): Presionar ENTER sin escribir nada

...

Set root password? [Y/n] Y
New password: Ingresar la nueva contraseña de root para MySQL
Re-enter new password: Repetir la contraseña
Password updated successfully!

...

Remove anonymous users? [Y/n] Y

...

Disallow root login remotely? [Y/n] Y

...

Remove test database and access to it? [Y/n] Y

...

Reload privilege tables now? [Y/n] Y

...

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Configuración de webalizer[editar]

Se debe modificar el archivo /etc/httpd/conf.d/webalizer.conf y dejarlo de esta manera:

#
# This configuration file maps the webalizer log analysis
# results (generated daily) into the URL space.  By default
# these results are only accessible from the local host.
# 
Alias /usage /var/www/usage

<Location /usage>
#    Order deny,allow
    Order allow,deny
    Allow from all
#    Deny from all
#    Allow from 127.0.0.1
#    Allow from ::1
#    # Allow from .example.com
</Location>

Posteriormente se debe recargar la configuración de Apache:

/etc/init.d/httpd reload

Con esto ya es posible acceder al sistema en la siguiente URL: http://nombreDelServidor/usage

NOTA: con esta configuración, el acceso a Webalizer estará abierto al mundo, sin restricciones.

Configuración de awstats[editar]

Configuración de estadísticas[editar]

NOTA: se debe crear un archivo de configuración para cada nombre de dominio que se utilice en el servidor; es decir, un archivo para cada VirtualHost.

Se debe editar el archivo /etc/awstats/awstats.nombreDeDominio.conf y modificar los siguientes parámetros:

LogFile="/var/log/httpd/nombreDeDominio-access_log"
SiteDomain="nombreDeDominio"
HostAliases="REGEX[^.*fermio\.lazos\.cl$]" #lista de alias separados por espacio
DNSLookup=0
URLWithQuery=1
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat" # Se debe descomentar la línea

El paquete RPM de awstats incluye la configuración necesaria para que las estadísticas se actualicen automáticamente cada hora. Para realizar una actualización manual, se debe utilizar la siguiente instrucción:

/etc/cron.hourly/awstats

Estadísticas por día[editar]

Para poder tener una vista detallada de las estadísticas de acceso separadas por día, se debe instalar un plugin llamado awstats-day-by-day:

wget http://www.internetofficer.com/download/awstats-day-by-day.php \
--referer=http://www.internetofficer.com/download/awstats-day-by-day.php \
-O /tmp/awstats-day-by-day.zip

cd /usr/share/awstats/wwwroot/js/

unzip /tmp/awstats-day-by-day.zip

En el archivo /etc/httpd/conf.d/awstats.conf se debe agregar la siguiente línea (aproximadamente en la línea 18):

Alias /awstatsjs "/usr/share/awstats/wwwroot/js/"

En el archivo /etc/awstats/awstats.nombreDeDominio.conf se deben modificar los siguientes parámetros:

HTMLHeadSection="<script language=javascript src="/awstatsjs/day-by-day-head.js"></script>"
HTMLEndSection="<script language=javascript src="/awstatsjs/day-by-day-end.js"></script>"

Se debe copiar y modificar el script que realiza la actualización de los reportes de estadísticas:

cp /usr/share/awstats/tools/awstats_updateall.pl /usr/share/awstats/tools/awstats_updateall_daybyday.pl
vim /usr/share/awstats/tools/awstats_updateall_daybyday.pl
   (Modificar la línea 151)
   my $command="\"$AwstatsDir/$AwstatsProg\" -databasebreak=day -update -config=$domain";

Luego se debe agregar una tarea adicional (cron) para este script. Para ello se debe crearel archivo /etc/cron.hourly/awstats_daybyday con el siguiente contenido:

#!/bin/bash
exec /usr/share/awstats/tools/awstats_updateall_daybyday.pl now         -configdir="/etc/awstats"         -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
exit 0
chmod +x /etc/cron.hourly/awstats_daybyday

Finalmente se debe recargar la configuración de Apache:

/etc/init.d/httpd graceful

Configuración del acceso[editar]

Editar el archivo /etc/httpd/conf.d/awstats.conf y comentar (añadiendo el símbolo # al inicio) las siguientes líneas

#    Order allow,deny
#    Allow from 127.0.0.1

En el mismo archivo, se debe agregar la siguiente sección para proteger las estadísticas con usuario y contraseña:

<Files "awstats.pl">
    AuthUserFile /etc/awstats/.passwd
    AuthGroupFile /etc/awstats/.group
    AuthName "Area restringida"
    AuthType Basic
    require valid-user
</Files>

Posteriormente se deben configurar los usuarios permitidos de la siguiente forma:

htpasswd -c /etc/awstats/.passwd nombreDeUsuario

Esta herramienta solicitará que se ingrese dos veces la contraseña para dicho usuario.

NOTA: para agregar más usuarios, se debe utilizar la misma herramienta pero sin el parámetro -c, ya que de lo contrario se eliminarán los usuarios anteriores.

Finalmente se debe recargar la configuración de Apache:

/etc/init.d/httpd graceful

Con esto ya es posible acceder al sistema en la siguiente URL: http://nombreDelServidor/awstats/awstats.pl?config=nombreDeDominio

Configuración del cortafuegos[editar]

Para permitir el acceso al puerto 80 (HTTP), se debe agregar la siguiente línea en la sección correspondiente del archivo /etc/sysconfig/iptables:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Para permitir el acceso al puerto 443 (HTTPS), se debe agregar la siguiente línea:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

Para permitir el acceso al puerto 3306 (MySQL), se debe agregar la siguiente línea:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

Luego se debe reiniciar el cortafuegos:

service iptables restart

Referencias[editar]