Mon, 2011/03/07 - 23:17

centos-5.5

Bueno hace mucho que quería publicar algo interesante respecto al mundo de Linux, no me considero ningún guru en Linux, de echo me considero un padawan en cualquier distribución. Esta vez empece a experimentar con CentOS es una distribución nueva para mi prácticamente ya que la conocía desde hace un par de años a tras pero nunca había instalado ninguna. Con mi corta experiencia voy a explicar paso a paso como configurar un servidor con CentOS.

Configuración de un webserver con CentOS 5.5 (PHP 5.2.17, Apache 2.2, MySQL 5.0, MongoDB).

Primero vamos a instalar algunas librerías que vamos a necesitar durante todo el proceso de nuestra instalación y configuración.

$ su -c 'yum grouplist | grep -i development '
$ su -c 'yum groupinfo "Development Tools" '
$ su -c 'yum groupinstall "Development Tools" '
$ su -c 'yum install libxml2-devel libcurl libxml2-devel openssl-devel bzip2-devel curl-devel libjpeg-devel libpng-devel freetype-devel gmp-devel libiconv iconv libxslt-devel libstdc++-devel libmcrypt libmcrypt-devel

Una vez tengamos instalados todas estas librerías podemos comenzar nuestro proceso de instalación.

 

Configuración para Apache 2.2 (httpd).

Instalamos el servidor apache.

$ su -c 'yum install httpd httpd-devel ' 

Ahora configuramos que el servicio se inicie en caso de realizar un "su -c 'reboot' "

$ su -c 'chkconfig --levels 235 httpd on'
$ su -c 'service httpd status'
$ su -c 'service httpd start'

Una vez puesto el punto de arranque podemos crear y configurar lo que serían nuestros VirtualHost.

$ cd /etc/httpd/conf.d/
$ su -c 'touch httpd-vhost.conf'
$ su -c 'vi httpd-vhost.conf'

En el fichero httpd-vhost.conf editamos los virtual host.

 

Algunos comandos útiles.

 

$ su -c 'setsebool -P httpd_enable_homedirs 1'
$ su -c 'setsebool -P http_unified 1'
$ su -c 'setsebool -P http_read_user_content 1'
$ su -c 'grep httpd /var/log/audit/audit.log | audit2allow -M mypol'
$ su -c 'semodule -i mypol.pp' $ su -c 'grep httpd /var/log/audit/audit.log | audit2allow -M mypol' $ su -c 'semodule -i mypol.pp '

 

Configuración para MySQL.

Para facilitar la instalación el MySQL buscamos el grupo de instalación.

$ su -c 'yum grouplist grep -i mysql'
$ su -c 'yum groupinfo "MySQL Database" '
$ su -c 'yum groupinstall "MySQL Database" '
$ su -c 'yum install mysql-devel'

Después de la instalación lo que suelo hacer es instalar la base de datos de usuarios.

$ su -c '/usr/bin/mysql_install_db --user=mysql' 

Luego iniciamos los servicios.

$ su -c 'service mysqld status'
$ su -c 'service mysqld start'
$ su -c 'chkconfig --levels 235 mysqld on'
$ su -c '/usr/bin/mysqladmon version'
$ su -c '/usr/bin/mysqlshow' $ su -c '/usr/bin/mysqlshow mysql'

En el siguiente paso cambiamos la contraseña del root de MySQL.

$ su -c 'mysql -u root' mysql> SELECT host, user FROM mysql.user; mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewSecretPassword'); 

Ahora podemos crear usuarios como por ejemplo:

mysql> GRANT ALL PRIVILEGES ON *.* TO ''@'localhost' IDENTIFIED BY '' WITH GRANT OPTION; 

 

Configuración PHP 5.2.17 (base 64)

Primero nos posicionamos en la carpeta que deseemos para descargar el source de PHP, para mi en /home/user/Downloads esta bien, no es un servidor de alta seguridad.

$ wget http://php.net/get/php-5.2.17.tar.gz/from/this/mirror $ tar -zxvf php-5.2.17.tar.gz $ cd php-5.2.17 

Una vez adentro de la carpeta de PHP realizamos la configuración.

$ su -c 'LDFLAGS=-L/usr/lib64/mysql ./configura \ 
--with-apxs2=/usr/sbin/apxs \
--with-mysql=/usr/bin/mysql \
--with-mysqli= \
--with-pdo-mysql \
--with-kerberos=/usr \
--with-zlib-dir=/usr \
--with-curl \
--with-openssl=/usr \
--with-xmlrpc \
--with-xsl=/usr \
--with-pear \
--with-iconv \
--with-gd \
--with-jpeg-dir=/opt/local \
--with-png-dir=/opt/local \
--with-freetype-dir=/opt/local \
--enable-cli \
--enable-exif \
--enable-ftp \
--enable-mbstring \
--enable-mbregex \
--enable-sockets
$ su -c 'LDFLAGS=-L/usr/lib64/mysql make'
$ su -c 'LDFLAGS=-L/usr/lib64/mysql make install'
$ su -c 'libtool --finish /dir/name '

Ahora copiamos el fichero php.ini en el directorio correcto.

$ su -c 'cp php.ini-recomend /usr/local/bin/php.ini ' 

Si continuamos en la carpeta de PHP en donde configuramos e instalamos podemos seguir con estos últimos pasos.

$ cd ext/mcrypt 
$ su -c 'phpize'
$ su -c 'aclocal'
$ su -c './configure'
$ su -c 'make && make install'

Agregamos en el php.ini la extensión.

$ su -c 'vi /usr/local/bin/php.ini ' extension=mcrypt.so 

Reiniciamos apache

$ su -c 'service httpd restart' 

 

Configuración para MongoDB (base 64)

Pueden seguir los pasos que se encuentran en https://www.mongodb.org/display/DOCS/CentOS+and+Fedora+Packages Para configurar PHP + MongoDB hacemos lo siguiente.

$ su -c 'pecl install mongo' 

extension=mongo.so into php.ini

$ su -c 'service httpd restart' 

Hasta aquí mi breve explicación de como configurar un servidor CentOS 5.5 con PHP, MySQL Apache y MongoDB. Espero que tengan suerte y no se les dificulte mucho la instalación.