El primero paso es conectarnos a nuestro servidor mediante ssh desde la terminal.
Cuando accedemos al servidor procedemos instalar Apache.
root@server1:~# yum install httpd
Luego instalamos php, cuidado con la versión que instalamos ya que si es muy nueva muchas aplicaciones web podrían quedar obsoletas y no funcionar.
root@server1:~# yum apt-get install libapache2-mod-php5 php5-cli php5-common php5-cgi
Instalamos Mysql
root@server1:~# yum install mysql mysql-server
Para poder administrar Mysql podemos instalar phpmyadmin
root@server1:~# yum install phpmyadmin
Configurando y optimizando servicio del servidor
Lo primero que haremos es que apache arranque automáticamente con el sistema, sino deberíamos arrancarlo manualmente
root@server1:~# yum chkconfig --level 235 httpd on
Reiniciamos o iniciamos el servicio apache en forma manual (Restart o Start)
root@server1:~# yum /etc/init.d/httpd start
También le diremos a mysql que inice automáticamente e iniciamos el servicio
root@server1:~# yum chkconfig --level 235 mysqld on
root@server1:~# yum /etc/inti.d/mysqld start
Para probar si el servidor esta instalado y funciona podremos visitar la ip del servidor y debería responder la pagina de apache
Optimizando apache
Ocultar versión e información sensible al publico. Los usuario maliciosos pueden utilizar esta información para atacar tu servidor.
root@server1:~# nano /etc/httpd/conf/httpd.conf
Agregar esta directivas o cambiarlas por lo siguiente
ServerSignature Off
ServerTokens Prod
Desactivar exploración de directorios
Options -Indexes
Luego guardar los cambios y reiniciar Apache
root@server1:~# /etc/init.d/httpd restart
Configurar las siguientes variables de httpd.conf
root@server1:~# nano /etc/httpd/conf/httpd.conf
Timeout define, en segundos, el tiempo que el servidor esperará pararecibir y transmitir durante la comunicación. 60 y 300 segundos, Esto interfiere en el envío de archivos por formularios, peticiones TCP, GET, etc. Por ende hay que definirlo dependiendo el uso del servidor.
MaxClients establece un límite al total de los procesos del servidor o clientes conectados simultáneamente, que pueden ejecutar a la vez, dependiendo del uso varia el rendimiento del servidor.
KeepAliveTimeout establece el número de segundos que el servidor esperará tras haber dado servicio a una petición y cerrar la conexión, normalmente 10 a 15 segundos.
Optimizando y configurando MYSQL
Para optimizar y configurar mysql vamos a
root@server1:~# nano /etc/my.cnf
Algunas variables para optimizar y configurar son:
Crear un log donde se guarden las consultas que tarde más de 2 segundos para optimizarlas
log-slow-queries=/var/log/mysql-slow-queries.log
long_query_time = 2 (en segundos)
Desconectar a cualquier cliente inactivo en x segundos, asi se evitar que ocupe una conexión
wait_timeout=30
connect_timeout=10
También pueden configurarse el tamaño de cache y buffer de memoria que dependerá de las necesidades de utilización del servidor.
Optimizando php
Lo mas importante de php es optimizar php.ini, en este caso dependerá de las necesidades de tus aplicaciones
root@server1:~# nano /etc/php.ini
max_execution_time – Esto determina el tiempo que un script puede tomar en correr, si estás usando scripts que consumen muchos recursos tal vez te convenga ajustar esto de la manera más conveniente.
memory_limit – Si tu script usa mucha memoria para correr de manera efectiva, ya que algunos de los servicios de hosting compartido solo permiten 16 MB, si lo puedes configurar mejor ponerlo en 32 MB.
post_max_size – Si tienes un sitio donde los usuarios puede subir archivos al servidor, aquí puedes configurar el límite máximo del tamaño de los archivos que pueden subir, desde el metodo POST, para tareas de importar o subir archivos e imágenes.