Días atrás, os explicaba como instalar un servidor web en vuestra maquina de desarrollo bajo windows. Como poco a poco Linux penetra en nuestro mundo, hoy os comento como instalar un servidor web en vuestra maquina Linux: LAMP.
Primero de todo la necesidad. Si queréis empezar a dar pasos en el desarrollo web, necesitareis un servidor para poder ir probando. Si solo utilizáis HTML , CSS y JS, podéis ver vuestras paginas recién hechas con un simple explorador, pero. si estáis adentrándoos en los desarrollos webs dinámicos, que es lo mas normal en estos días, necesitáis un servidor, un lenguaje que interprete vuestros deseos y una base de datos.
En este articulo, vamos a presentar la instalación de LAMP:
- Linux, el sistema operativo;
- Apache, el servidor web;
- MySQL/MariaDB, el gestor de bases de datos;
- Perl, PHP, o Python, los lenguajes de programación.
Como indica el acrónimo, de trata de un conjunto de programas :el servidor web Apache, la base de datos MySQL, y el interprete de PHP. Todo estos componentes que existen en la mayoría de distribuciones Linux, nos permiten dispones de una maquina para probar nuestros desarrollos y su instalación, veremos que es muy sencilla.
Instalando Apache
Para instalar el servidor web Apache nos basta con teclear la orden correspondiente, siempre como usuario administrador
En Centos/Red Hat/…
:# yum install httpd
En Debian/Ubuntu/….
:# sudo aptitude install apache2
Lo siguiente es ir contestando a las preguntas que pueda hacer el proceso de instalación, y al final podéis recibir algún mensaje de error como que Apache no puede determinar el nombre de dominio, o errores de permisos, que iremos corrigiendo a continuación.
A pesar de todo, apache esta instalado y funcionando, si estais con una máquina Centos, debereis arrancarlo con:
sudo service start httpd
y si quieres que tu servidor web Apache arranque cada vez que tu maquina se inicie,
sudo chkconfig httpd on
. En otros entornos, el arranque al inicio lo realiza automáticamente.
Si ahora abrís un explorador web y tecleais «localhost» o 127.0.0.1 veréis aparecer la pagina por defecto de Apache, y si la leeis, ya os dice de donde sacara la información normalmente de «/var/www/html» …pero luego volveremos. Si esa maquina en donde estáis instalando, esta en la red, también podéis acceder desde cualquier otra de vuestra red tecleando únicamente la dirección IP que le corresponda, y que la podéis averiguar con:
:# ifconfig eth0 | grep inet | awk '{ print $2 }'
o
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
que te indicaran la dirección IP asignada a tu tarjeta.
Si estas detrás de un router, y deseas conocer tu dirección en Internet, lo podrías hacer con:
curl http://icanhazip.com
Aunque para que tu maquina se pudiera ver desde internet, deberías redirigir el trafico entrante por el puerto 80 y/o 443 a tu dirección IP interna,….pero no seas impaciente, porque todavía queda mucho por hacer.
Instalando MySql (Ubuntu/Debian/…)
Para instalar nuestra base de datos, deberemos lanzar desde terminal:
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
En donde indicamos que deseamos instalar ademas del motor de la BD, las librerías para apache y php5.
Durante la instalación, nos solicitara la contraseña del usuario «root» en MySQL, y que será el que tendrá el control sobre la instalación, por lo que la contraseña debería ser fuerte.
Y como siempre, su repetición para asegurarnos que la hemos escrito bien
Cuando haya finalizado la instalación, podemos activarla con:
sudo mysql_install_db
Que nos dará distintos mensajes acerca de la instalación, y de como gestionarla.
Nos queda por asegurar la instalación, que lo haremos con:
sudo /usr/bin/mysql_secure_installation
El sistema nos hará una serie de preguntas, os adjunto la imagen con mis respuestas, de cualquier forma, todo esto lo podremos cambiar en cualquier momento en «/etc/mysql/my.cnf» que es el fichero de configuración de mysql.
Instalando MariaDB (Centos/Red Hat/….)
Mientras preparaba el articulo, me encontré un comentario acerca de instalar la base de datos MariaDB, en vez de MySQL, cosa que parece que se esta poniendo de moda, debido a la preocupación creciente que existe desde que Oracle compró a Sun en 2012, y paso a controlar MySQL, y como esto no es mas que un curso, en donde debemos aprender todos, me he decidido a instalar, en la version de Centos, MariaDb
De forma, que siguiendo las instrucciones facilitadas en la propia pagina de mariadb, lo que vamos a hacer es crear ya un repositorio, y para eso, en nuestra terminal tecleamos:
# nano /etc/yum.repos.d/MariaDB.repo
y dentro del fichero introducimos para Centos 6 de 64 bits:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
y lo guardamos, a continuación ya podemos proceder a la instalación con:
sudo yum install MariaDB-server MariaDB-client
Cuando finaliza la instalación, podemos escribir:
sudo /etc/init.d/mysql start
Si queremos que nuestra base de datos arranque al inicio, escribimos:
# chkconfig mysql on
y, como se hace con nuestro viejo mysql, aseguramos la instalacion utilizando el script que nos proporcionan, y que repasa los puntos mas debiles que a nosotros se nos olvida
# mysql_secure_installation
La instalación de PHP
Como siguiente paso, independientemente de la base de datos escogida, nos queda por instalar el interprete de PHP, y para ello deberemos escribir en la linea de comandos:
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
En donde indicamos que deseamos instalar PHP y algunas librerías que necesitamos.
Cuando finalice el proceso de instalación, y antes de que se nos olvide, como vamos a empezar a escribir paginas php, seria conveniente que nuestro apache utilizara por defecto una pagina index.php en primer lugar. Para ello, abrimos :
sudo nano /etc/apache2/mods-enabled/dir.conf
y veremos esto:
Ahora, debemos mover el index.php del sitio en que se encuentra, a primer lugar, para que sea el primer intento. debería quedar como:
DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
Podemos cerrar el fichero. Mas tarde reiniciaremos Apache
A partir de este punto, deberíamos determinar que módulos de php necesitamos, para irlos instalando, para ver cuales hay disponibles, solo hace falta que hagáis
apt-cache search php5-
y os saldrá una lista como esta:
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dev - Files for PHP5 module development
php5-json - JSON module for php5
php5-readline - Readline module for php5
php5-cgi - Lenguaje de guiones embebidos en HTML para servidores (binario CGI)
php5-cli - intérprete de órdenes para el lenguaje de guión php5
php5-dbg - Símbolos de depuración para PHP5
php5-gd - Módulo GD para php5
php5-gmp - Módulo GMP para php5
php5-ldap - Módulo LDAP para php5
php5-mysql - Módulo MySQL para php5
php5-odbc - Módulo ODBC para php5
php5-pgsql - Módulo PostgreSQL para php5
php5-pspell - Módulo pspell para php5
php5-recode - Módulo recode para php5
php5-snmp - Módulo SNMP para php5
php5-sqlite - Módulo SQLite para php5
php5-tidy - Módulo tidy para php5
php5-xmlrpc - Módulo XML-RPC para php5
php5-xsl - Módulo XSL para php5
libphp5-embed - HTML-embedded scripting language (Embedded SAPI library)
php5-adodb - Extension optimising the ADOdb database abstraction library
php5-apcu - APC User Cache for PHP 5
php5-enchant - Enchant module for php5
php5-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
php5-gdcm - Grassroots DICOM PHP5 bindings
php5-gearman - PHP wrapper to libgearman
php5-gnupg - wrapper around the gpgme library
php5-interbase - interbase/firebird module for php5
php5-intl - internationalisation module for php5
php5-lasso - Library for Liberty Alliance and SAML protocols - PHP 5 bindings
php5-librdf - PHP5 language bindings for the Redland RDF library
php5-mapscript - php5-cgi module for MapServer
php5-memcache - memcache extension module for PHP5
php5-memcached - memcached extension module for PHP5, uses libmemcached
php5-midgard2 - Midgard2 Content Repository - PHP5 language bindings and module
php5-mongo - MongoDB database driver
php5-msgpack - PHP extension for interfacing with MessagePack
php5-mysqlnd - MySQL module for php5 (Native Driver)
php5-mysqlnd-ms - MySQL replication and load balancing module for PHP
php5-oauth - OAuth 1.0 consumer and provider extension
php5-pinba - Pinba module for PHP 5
php5-radius - PECL radius module for PHP 5
php5-redis - PHP extension for interfacing with Redis
php5-remctl - PECL module for Kerberos-authenticated command execution
php5-rrd - PHP bindings to rrd tool system
php5-sasl - Cyrus SASL Extension
php5-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP 5
php5-svn - PHP Bindings for the Subversion Revision control system
php5-tokyo-tyrant - PHP interface to Tokyo Cabinet's network interface, Tokyo Tyrant
php5-vtkgdcm - Grassroots DICOM VTK PHP bindings
php5-xcache - Fast, stable PHP opcode cacher
php5-xhprof - Hierarchical Profiler for PHP5
php5-exactimage - fast image manipulation library (PHP bindings)
php5-geoip - Módulo GeoIP para php5
php5-imagick - Módulo ImageMagick para php5
php5-imap - Módulo IMAP para php5
php5-mcrypt - Módulo MCrypt para php5
php5-ming - Módulo Ming para php5
php5-ps - módulo ps para PHP 5
php5-sybase - Módulo de servidor Sybase/MS SQL para php5
php5-xdebug - Módulo Xdebug para PHP 5
De cualquier forma, para empezar a trabajar con PHP ya esta todo preparado, de forma que ya instalaremos mas módulos cuando los necesitemos.
Ahora, para comprobar que todo esta funcionando, escribimos en nuestra consola:
sudo nano /var/www/info.php
o abrimos nuestro editor de texto favorito y en el fichero «/var/www/info.php» escribimos:
<?phpinfo();
?>
y lo guardamos, ya solo nos queda abrir nuestro explorador de internet y escribir:
http://localhost/info.php
y si todo ha ido bien, nos aparecerá una pagina con la informacion de instalacion de PHP, ahora ya podemos empezar a programar
Instalando phpMyAdmin
Sin embargo, cuando llegue el momento de crear bases de datos o trabajar con ellas, nos ira muy bien disponer de este paquete que nos permite gestionarlas via web.
Para instalarlo, deberemos utilizar el repositorio EPEL, por lo que primero de todo lo deberemos configurar
# rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm
Con esto añadiremos los datos del repositorio en /etc/yum.repos.d
A continuacion, actualizaremos la base de datos de programas con:
# yum check-update
y ahora a instalar phpMyAdmin
# yum install phpMyAdmin
Cuando finalice, reiniciamos Apache
# service httpd restart
y comprobamos que todo ha ido bien tecleando en un navegador
http://localhost/phpmyadmin
Relacionado
Descubre más desde Recursos para formacion
Suscríbete y recibe las últimas entradas en tu correo electrónico.
4 comentarios