You are on page 1of 27

Instalar Apache, MySQL, PHPMyAdmin desde Shell en CentOS (Linux)

Publicado por Rafael Rocha El 12 - septiembre - 2013 0 Comentarios Para CentOS sin paquetera pre-instalada

*****INSTALAR PAQUETERIA***** yum groupinstall Development Tools yum install openssl openssl-devel yum install pcre-devel jwhois

yum install net-snmp-devel libxml2 libxml2-devel bzip2-libs bzip2-devel libc-client libc-client-devel yum install openldap-devel

yum install krb5 krb5-devel krb5-libs pam-devel libicu-devel yum install krb5-appl-clients.x86_64 krb5-appl-servers.x86_64

ln -s /usr/lib64/libldap.so /usr/lib/libldap.so ln -s /usr/lib64/libldap_r.so /usr/lib/libldap_r.so

wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/beta/6/x86_64/ mhash-0.9.9.9-3.el6.x86_64.rpm

wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/beta/6/x86_64/l ibmcrypt-2.5.8-9.el6.x86_64.rpm wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/6/x86_64/libmc rypt-devel-2.5.8-9.el6.x86_64.rpm wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/beta/6/x86_64/ mcrypt-2.6.8-3.el6.x86_64.rpm

yum install mhash-0.9.9.9-3.el6.x86_64.rpm yum install libmcrypt-2.5.8-9.el6.x86_64.rpm yum install libmcrypt-devel-2.5.8-9.el6.x86_64.rpm yum install mcrypt-2.6.8-3.el6.x86_64.rpm ************************************** *****INSTALAR APACHE******** cd /usr/src wget http://apache.webxcreen.org//httpd/httpd-2.4.6.tar.gz wget http://apache.webxcreen.org//apr/apr-1.4.8.tar.gz wget http://apache.webxcreen.org//apr/apr-util-1.5.2.tar.gz tar xvfz httpd-2.4.6.tar.gz tar xvfz apr-1.4.8.tar.gz tar xvfz apr-util-1.5.2.tar.gz mv apr-1.4.8 /usr/src/httpd-2.4.6/srclib/apr mv apr-util-1.5.2 /usr/src/httpd-2.4.6/srclib/apr-util

cd /usr/src/httpd-2.4.6

./configure prefix=/etc/httpd disable-autoindex disable-asis disable-userdir enable-authnz-ldap enable-cache enable-headers enable-ldap enable-mem-cache with-mpm=prefork enable-rewrite enable-so enable-speling enable-ssl withgdbm with-included-apr with-ldap with-z

make make install ***********************************

*****CONFIGURAR IPTABLES PARA APACHE***** ####Si se tiene instalado iptables es necesario configurarlo nano /etc/sysconfig/iptables

####Agregar las siguientes lneas ANTES de los REJECT. ####El puerto 80 es para http. El 443 para SSL y solo es necesario abrirlo si se activa. -A INPUT -m state state NEW -m tcp -p tcp dport 80 -j ACCEPT -A INPUT -m state state NEW -m tcp -p tcp dport 443 -j ACCEPT

####Reiniciar servicio de iptables service iptables restart **********************************************************

*****SEGURIDAD PARA APACHE***** ####Crear un usuario para que apache se corra bajo ese usuario en particular groupadd apache useradd -d /etc/httpd/htdocs -g apache -s /bin/false apache

####Modificar el httpd.conf y cambiar el usuario y grupo agregando: User apache Group apache

####Reiniciar el servicio de apache y correr el siguiente comando para comprobar que se ha ####cambiado el usuario ps -ef | grep -i http | awk {print $1}

####Permitir que apache pueda escribir en tmp cd / setfacl -R -m u:apache:rwx tmp setfacl -R -m d:u:apache:rwx tmp

####Restringir el acceso al directorio raz y no permitir mostrar archivos cuando no hay index ####y no permitir el uso de .htaccess

####Para evitar que se muestren los archivos cuando no hay un index es necesario poner la ####opcin -Indexes o None. Para evitar el uso no autorizado de .htaccess y evitar que los ####usuarios sobre escriban las reglas del apache mediante los mismos es necesario poner ####AllowOverride None.Editar el archivo httpd.conf poniendo: <Directory /> Options None AllowOverride none Require all denied </Directory>

####Evitar que se de toda la informacin del Apache y el sistema operativo ####Modificar en el archivo httpd.conf la bandera ServerTokens y si no se encuentra ####agregarla con el siguiente valor: ServerTokens Prod ****************************************** *****HABILITAR SSL EN APACHE***** ####Modifcar el archivo httpd.conf ####Agregar o descomentar las siguientes lneas segn corresponda #### LoadModule ssl_module modules/mod_ssl.so #### LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

#### Include conf/extra/httpd-ssl.conf nano /etc/httpd/conf/httpd.conf

####Si es necesario agregar o quitar opciones en el archivo httpd-ssl.conf, hacerlo. ####Predeterminadamente no es necesario hacer ningn cambio nano /etc/httpd/conf/extra/httpd-ssl.conf

cd /etc/httpd/conf/extra egrep server.crt|server.key httpd-ssl.conf

####Generar certificados, pedir una contrasea que hay que recordar ya que se ####utilizar cada vez que se inicie el Apache cd /usr/src openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt cp server.key /etc/httpd/conf cp server.crt /etc/httpd/conf

####Iniciar Apache. A la hora de iniciar el apache nos pedir la contrasea que se escogi para ####el key que se gener anteriormente

/etc/httpd/bin apachectl start

####Hacer que se pueda llamar directamente al servicio de apache echo pathmunge /etc/httpd/bin > /etc/profile.d/httpd.sh chmod +x /etc/profile.d/httpd.sh . /etc/profile ####Despues de esto se puede mandar llamar directamente a Apache donde sea que se est. ####Ejem: apachectl start ************************************** *****INSTALAR LIBICONV***** cd /usr/src wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz tar xvfz libiconv-1.14.tar.gz cd libiconv-1.14.tar.gz ./configure prefix=/usr/local make make install *********************************

*****INSTALAR LIBJPEG***** cd /usr/src

wget http://www.ijg.org/files/jpegsrc.v9.tar.gz tar xvfz jpegsrc.v9.tar.gz cd jpeg-9 ./configure CFLAGS=-O2 -fPIC prefix=/usr/local make make install **********************************

*****INSTALAR LIBPNG***** cd /usr/src wget http://softlayer-dal.dl.sourceforge.net/project/libpng/libpng16/1.6.3/libpng1.6.3.tar.gz tar xvfz libpng-1.6.3.tar.gz cd libpng-1.6.3 cp scripts/makefile.linux makefile make make install ********************************

*****INSTALAR CURL***** cd /usr/src wget http://curl.haxx.se/download/curl-7.32.0.tar.gz

tar xvfz curl-7.32.0.tar.gz cd curl-7.32.0 ./configure prefix=/usr/local make make install ***************************** *****INSTALAR FREETYPE***** cd /usr/src wget http://softlayer-dal.dl.sourceforge.net/project/freetype/freetype2/2.5.0/freetype2.5.0.1.tar.gz tar xvfz freetype-2.5.0.1.tar.gz cd freetype-2.5.0.1 ./configure prefix=/usr/local make make install ***********************************

*****INSTALAR IMAP***** cd /usr/src wget ftp://ftp.cac.washington.edu/mail/imap.tar.Z tar xvfz imap.tar.Z -C /usr/local cd /usr/local/imap-2007f

####editar src/osdep/unix/os_art.c y src/osdep/unix/os_sv2.c ####cambiar #define FD_SETSIZE 256 por #define FD_SETSIZE 32768

ln -s /usr/lib64/openssl/engines/ /usr/local/ssl ln -s /usr/include/ /usr/local/ssl/include make lnp SSLTYPE=unix EXTRACFLAGS=-fPIC mkdir lib mkdir include cp c-client/*.c lib/ cp c-client/*.h include/ cp c-client/c-client.a lib/libc-client.a ***************************** *****INSTALAR PHP***** cd /usr/src/ wget http://www.php.net/get/php-5.5.3.tar.gz/from/mx1.php.net/mirror tar xvfz php-5.5.3.tar.gz cd php-5.5.3

./configure enable-bcmath enable-calendar enable-dom enable-ftp enable-gdnative-ttf enable-intl enable-mbstring enable-pcntl enable-soap enable-sockets enable-sysvmsg enable-sysvsem enable-sysvshm enable-zip withapxs2=/etc/httpd/bin/apxs with-bz2 with-config-file-path=/etc/httpd/conf withcurl=/usr/local with-freetype-dir=/usr/local with-gd with-gettext withiconv=/usr/local with-imap=/usr/local/imap-2007f with-imap-ssl with-jpegdir=/usr/local with-ldap with-ldap-sasl with-mcrypt with-mysql with-mysqli with-mysql-sock=/var/lib/mysql/mysql.sock with-openssl with-pear with-pngdir=/usr/local with-snmp with-xmlrpc with-zlib with-zlib-dir

make make install cp php.ini-production /etc/httpd/conf/php.ini

####Modificar el httpd.conf de Apache y agregar, modificar o descomentar las siguientes lneas: LoadModule php5_module modules/libphp5.so DirectoryIndex index.html index.htm index.php AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps ####Reiniciar el servicio de Apache *******************************

*****Seguridad para PHP**** ####Evitar que se muestre la versin de PHP en las peticiones editando el archivo php.ini ####y cambiando la bandera expose_php de la siguiente manera: expose_php = Off *******************************

*****INSTALAR EXTENSION PECL PDFLIB***** cd /usr/src

wget http://www.pdflib.com/binaries/PDFlib/705/PDFlib-Lite-7.0.5p3.tar.gz tar xvfz PDFlib-Lite-7.0.5p3.tar.gz cd PDFlib-Lite-7.0.5p3 ./configure prefix=/usr/local make make install

pecl install pdflib ####Cuando pregunte el directorio proporcionar /usr/local ####Una vez terminado modificar el php.ini y agregar la extension extension=pdf.so ####Reiniciar Apache *****************************************************

*****INSTALAR EXTENSION LIBHARU***** wget http://ftp5.gwdg.de/pub/opensuse/repositories/home:/csbuild:/centosextra/CentOS_Cen tOS-6/x86_64/re2c-0.13.5-1.2.x86_64.rpm

rpm -ivh re2c-0.13.5-1.2.x86_64.rpm

####Descargar la libreria desde https://github.com/libharu/libharu/tarball/master ####Ir al directorio de descarga y descomprimir tar xvfz libharu-libharu-RELEASE_2_3_0RC2-61-g22e741e.tar -C /usr/src

cd /usr/src/libharu-libharu-22e741e ./buildconf.sh force ./configure prefix=/usr/local make make install

cd /usr/src wget http://pecl.php.net/get/haru-1.0.4.tgz tar xvfz haru-1.0.4.tgz cd haru-1.0.4 phpize

LDFLAGS=-L/usr/include ./configure with-zlib-dir=/usr/local with-pngdir=/usr/local with-haru=/usr/local enable-shared

make make install ####Una vez terminado modificar el php.ini y agregar la extension extension=haru.so ####Reiniciar Apache ************************************************* *****INSTALAR MYSQL***** yum remove mysql* mysql-* MYSQL-*

cd /usr/src

wget http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-shared-5.6.131.el6.x86_64.rpm wget http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.131.el6.x86_64.rpm wget http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-server-5.6.131.el6.x86_64.rpm wget http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-client-5.6.131.el6.x86_64.rpm wget http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-devel-5.6.131.el6.x86_64.rpm

yum install MySQL-shared-5.6.13-1.el6.x86_64.rpm yum install MySQL-shared-compat-5.6.13-1.el6.x86_64.rpm yum install MySQL-server-5.6.13-1.el6.x86_64.rpm yum install MySQL-client-5.6.13-1.el6.x86_64.rpm yum install MySQL-devel-5.6.13-1.el6.x86_64.rpm

####Ver el password actual corriendo el siguiente comando cat /root/.mysql_secret

####Iniciar el servicio service mysql start

####Cambiar el password actual, segn el ejemplo siguente. (Suponiendo que el password ####actual es abc y que el password nuevo es 123) mysqladmin -u root -pabc password 123

####Eliminar el archivo del password generado anteriormente rm -f /root/.mysql_secret ********************************* *****INSTALAR JOOMLA***** cd /etc/httpd/htdocs mkdir joomla cd joomla

wget http://downloads.joomlacode.org/frsrelease/8/3/4/83487/Joomla_3.1.5-StableFull_Package.zip

unzip Joomla_3.1.5-Stable-Full_Package.zip chown -R apache:apache /etc/httpd/htdocs/joomla

####Editar el archivo libraries/joomla/filter/input.php nano libraries/joomla/filter/input.php ####Cambiar las lineas:

####$source = preg_replace(/&#(\d+);/me, utf8_encode(chr(\\1)), $source); // decimal notation ####$source = preg_replace(/&#x([a-f0-9]+);/mei, utf8_encode(chr(0x\\1)), $source); // hex notation

####Por las siguientes lineas: ####$source = preg_replace_callback(/&#x(\d+);/mi, function($m){return utf8_encode(chr(0x.$m[1]));}, $source); // decimal notation ####$source = preg_replace_callback(/&#x([a-f0-9]+);/mi, function($m){return utf8_encode(chr(0x.$m[1]));}, $source); // hex notation

#####En consola. Crear usuario y base de datos. Sustituir Password por la contrasea que se #####elija. mysqladmin -u root -p create joomla mysql -u root -p CREATE USER joomlausr@'localhost IDENTIFIED BY Password; GRANT SELECT, INSERT, DELETE, UPDATE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON `joomla`.* TO joomlausr@localhost; flush privileges; quit;

####Abrir el explorador en la carpeta de joomla. Ejem: http://localhost/joomla

####Llenar los campos que se piden en el paso 1 y dar clic en siguiente.

####En la seccin dos especificar: -Usuario: joomlausr -Contrasea: Especificar la contrasea que se escogi en el paso anterior para joomlausr -Base de datos: joomla -Prefijo de las tablas: joom_ #####En la seccin tres y cuatro simplemente dar siguiente. #####En consola. Volver a cambiar permisos y quitar directorios de instalacin. chown -R root:root /etc/httpd/htdocs/joomla cd /etc/httpd/htdocs/joomla chmod 0755 $(find . -type d) chmod 0644 $(find . -type f) chmod 666 configuration.php chown -R apache:apache tmp plugins rm -rf installation rm -rf Joomla_3.1.5-Stable-Full_Package.zip

#####Instalar extensin de seguridad ####Ir a la url de administracin y hacer login http://localhost/administrator

####En el men superior seleccionar Extensions->Extension Manager. ####Seleccionar Install from URL y dar la ruta en install URL. Presionar Install http://download.siteground.com/joomla16/addons/jHackGuard.zip #####En el men superior seleccionar Extensions->Plugin-Manager #####Habilitar el plugin Security jHackGuard que se acaba de instalar

#####Poner seguridad extra a las carpetas de administracin. Indispensable para evitar hack. #####Editar configuracin de apache. nano /etc/httpd/conf/httpd.conf #####Agregar en la seccin de Directory lo siguiente: <Directory /etc/httpd/htdocs/joomla/administrator> AllowOverride All </Directory> <Directory /etc/httpd/htdocs/joomla/tmp> AllowOverride All </Directory> <Directory /etc/httpd/htdocs/joomla/plugins> AllowOverride All </Directory>

#####Crear archivos de polticas de acceso htaccess

cd /etc/httpd/htdocs/joomla/administrator nano .htaccess

#####Poner lo siguiente en el nuevo archivo htaccess que se est creando: AuthType Basic AuthName Restricted Files AuthUserFile /etc/httpd/htdocs/joomla/administrator/.htpasswd Require valid-user

#####Propagar el htaccess a las dems carpetas que lo requieren cp .htaccess /etc/httpd/htdocs/joomla/tmp cp .htaccess /etc/httpd/htdocs/joomla/plugins

#####Crear archivo de passwords htpasswd. Ser necesario proporcionar la contrasea que se #####utilizar para tener acceso. Sustituir USUARIO por el nombre de usuario que tendr #####acceso a dicha seccin.Ejem: htpasswd -c .htpasswd 4dm1n1str4d0r htpasswd -c .htpasswd USUARIO

#####Reiniciar servicio de apache apachectl restart ************************************

*****INSTALAR MOODLE***** cd /etc/httpd/htdocs wget http://superb-dca2.dl.sourceforge.net/project/moodle/Moodle/stable25/moodle2.5.2.tgz tar xvfz moodle-2.5.2.tgz chown -R apache:apache /etc/httpd/htdocs/moodle

cd /etc/httpd mkdir moodledata setfacl -R -m u:apache:rwx moodledata setfacl -R -m d:u:apache:rwx moodledata

#####En consola. Crear usuario y base de datos. Sustituir Password por la contrasea que se #####elija. mysqladmin -u root -p create moodle mysql -u root -p ALTER DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; CREATE USER moodleusr@'localhost IDENTIFIED BY Password; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON `moodle`.* TO moodleusr@localhost; flush privileges; quit;

####Abrir el explorador en la carpeta de moodle. Ejem: http://localhost/moodle ####Dar siguiente hasta la seccin de Ajustes de base de datos. Ahi poner lo siguiente: -Nombre de la base de datos = moodle -Usuario de la base de datos = moodleusr -Contrasea de la base de datos = Contrasea del paso anterior para moodleusr -Prefijo de tablas = mood_ -Socket Unix = Palomear esta opcin

#####Dar siguiente/continuar hasta la pgina de configuracin del administrador. #####Llenar los formularios siguiente con los datos que correspondan hasta quedar #####en la pantalla principal del moodle con la sesin de administrador abierta. #####En consola. Volver a cambiar permisos y quitar directorios de instalacin. chown -R root:root /etc/httpd/htdocs/moodle cd /etc/httpd/htdocs/moodle chmod 0755 $(find . -type d) chmod 0644 $(find . -type f)

cd /etc/httpd/htdocs/ rm -rf moodle-2.5.2.tgz

************************************

*****INSTALAR PHPMYADMIN***** cd /etc/httpd/htdocs

wget http://superbdca2.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.0.6/phpMyAdmin-4.0.6all-languages.zip

unzip phpMyAdmin-4.0.6-all-languages.zip mv phpMyAdmin-4.0.6-all-languages pma

cd pma mkdir config setfacl -R -m u:apache:rwx config setfacl -R -m d:u:apache:rwx config

####Ejecutar script examples/create_tables.sql mysql -p < create_tables.sql

####Ingresar a MySQL y crear un usuario pma. Sustituir Password por la contrasea que se ####elija

mysql -p CREATE USER pma@'localhost IDENTIFIED BY Password; GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO pma@localhost; flush privileges; quit; ####Generar una clave para el blowfish (se usar posteriormente) openssl rand -base64 32 ####Ingresar a la ruta de instalacin del phpmyadmin en /setup y configurar. Ejem: http://localhost/pma/setup Crear un nuevo servidor seleccionando la opcin New server de la seccin Overview. El la pestaa Basic settings cambiar las siguientes banderas: -Verbose name of this server = Poner el nombre del servidor

El la pestaa Authentication cambiar las siguientes banderas: -Authentication type = cookie

El la pestaa Server configuration cambiar las siguientes banderas: -Allow root login = Palomear esta opcin

El la pestaa Configuration storage cambiar las siguientes banderas: -Database name = phpmyadmin

-Control user = pma -Control user password = Password que se eligi en el paso anterior para el usuario pma -Bookmark table = Poner predeterminado pma__bookmark -Relation table = Poner predeterminado pma__relation -User preferences storage table = Poner predeterminado pma__userconfig -Display columns table = Poner predeterminado pma__table_info -Column information table = Poner predeterminado pma__column_info -SQL query history table = Poner predeterminado pma__history -Recently used table = Poner predeterminado pma__recent -UI preferences table = Poner predeterminado pma__table_uiprefs -SQL query tracking table = Poner predeterminado pma__tracking -PDF schema: table coordinates = Poner predeterminado pma__table_coords -PDF schema: pages table = Poner predeterminado pma__pdf_pages -Designer table = Poner predeterminado pma__designer_coords

####Dar click en save en la parte inferior ####Ir a la seccin Features en la cejilla Security. Cambiar las banderas: Blowfish secret = Poner la clave que se gener con openssl en el paso anterior Force SSL connection = Palomear esta opcin

####En la cejilla Developer. Cambiar las banderas:

Enable the Developer tab in settings = Palomear esta opcin.

####Dar click en save en la parte inferior

####Ir a la seccin SQL queries en la cejilla SQL Validator. Cambiar las banderas: Enable SQL Validator = Palomear esta opcin

####Dar click en save en la parte inferior

####Ir a la seccin Main panel en la cejilla Startup. Cambiar las banderas: Show phpinfo() link = Palomear esta opcin

####Ir a la seccin Overview en la caja Configuration file dar clic en Save

####En consola. Copiar el archivo config/config.inc.php al directorio principal. ####Borrar el directorio config cd /etc/httpd/htdocs/pma/config cp config.inc.php ../ cd .. rm -rf config

####Eliminar archivo de instalacion

cd /etc/httpd/htdocs rm -rf phpMyAdmin-4.0.6-all-languages.zip

#####Poner seguridad extra a la carpeta. Indispensable para evitar hack. #####Editar configuracin de apache. nano /etc/httpd/conf/httpd.conf #####Agregar en la seccin de Directory lo siguiente: <Directory /etc/httpd/htdocs/pma> Options FollowSymLinks DirectoryIndex index.php AllowOverride All </Directory> #####Crear archivos de polticas de acceso htaccess cd /etc/httpd/htdocs/pma/ nano .htaccess #####Poner lo siguiente en el nuevo archivo htaccess que se est creando: AuthType Basic AuthName Restricted Files AuthUserFile /etc/httpd/htdocs/pma/.htpasswd Require valid-user

#####Crear archivo de passwords htpasswd. Ser necesario proporcionar la contrasea que se #####utilizar para tener acceso. Sustituir USUARIO por el nombre de usuario que tendr #####acceso a dicha seccin.Ejem: htpasswd -c .htpasswd 4dm1n1str4d0r htpasswd -c .htpasswd USUARIO

#####Reiniciar servicio de apache apachectl restart **************************************


http://www.programadorweb.com.mx/ide/linux/instalar-apache-mysql-phpmyadmin-desdeshell-en-centos-linux/

You might also like