B
BryCom
Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
A base de unas cuantas peticiones que me hicieron después de hacer el otro tutorial me dispuse a crear el mismo esta vez actualizado por completo para hacer estas gestiones en CentOS 6 por que como ya sabemos CentOS 7 es un sistema muy reciente que no muchos en la actualidad lo están usando en base a personas que ya tienen el 6 instalado desde hace tiempo.
Para los que no han leído el tutorial anterior acá se los dejo con el titulo:
Instalando Nginx, PHP-FPM, Vsftpd, BIND, MariaDB (MySQL) y phpMyAdmin en Centos 7 x64
http://forobeta.com/tutoriales/3789...-mariadb-mysql-y-phpmyadmin-centos-7-x64.html
Diferencia hay mucha en base a comandos que vamos a utilizar y por eso he de hacer este.
* Montaremos nuestro Sitio Web o nuestros en base de lo que dice el titulo, por ultimo invito a las personas que disponen de su experiencia y ganas de compartirla del que si encuentra algo mal escrito en el tutorial pueda tener la amabilidad de compartir la corrección y evitar controversias, debates y malos pensamientos de las demás personas con tal de hacer pensar que uno es mejor que otro.
* Si a medidas vayas procediendo con la guía te encuentras con errores aun así vayas al pie de la letra no dudes en comentar el tema o enviarme un mensaje privado y yo con gusto respondo con la solución y una explicación si es posible a la mayor brevedad.
* Si tienes dudas o preguntas el tema abierto para comentarios y los mensajes privados por igual para responder a todas.
Nota general:
- Todo lo que sea paréntesis entre comillas " " no se debe tomar en cuenta en los comandos!
Para comenzar con este gran tutorial voy a pedirles que por favor presten muchísima atención y dedicación total de su tiempo para evitar saltarse algún paso, para evitar hacer algo mal, evitar errores entre otras cosas que puedan pasar.
1. Conectando al VPS/Dedicado
Vamos a acceder ya sea desde una consola de su proveedor y/o desde un cliente SSH al servidor, en mi caso yo como estoy utilizando Ubuntu (Linux) pues solo me basto con abrir el "Terminal" y escribir "ssh 0.0.0.0" (en donde están los ceros reemplazar por la IP del servidor) logeado desde root claro y luego escribir la contraseña para así conectar la sección.
Nota: Hay proveedores que por defecto ya el puerto SSH es diferente por lo que para conectar al SSH si esta usando un sistema basado en Linux para conectarse al SSH desde el terminal logeado con root deberá de establecer manualmente un puerto de la siguiente manera "ssh 0.0.0.0 -p 22". cambiar los ceros por el IP del servidor y el 22 por el puerto SSH pre establecido. Otros pueden hacer login haciendo del uso del programa llamado Putty para Windows u Linux.
Para hacer mas fácil & rápido el tutorial solo pondré los comandos pero desde acá del principio les explico que en cada comando iniciando por "yum" es un enter que tiene que hacer y esperar a que termine de procesar, por igual los comandos comenzando por "service" y finalmente los que comienzan por "nano" son comandos en los que vamos a editar archivos así que prestar mucha atención.
Con el comando nano editando archivos para buscar siempre deberemos de presionar "CTRL + W", luego escribir lo que vamos a buscar en un cuadrito que aparece en la consola abajo y luego presionamos ENTER, y para guardar "CTRL + O" y luego ENTER.
Comenzamos...
2. Eliminando cosas innecesarias
- Primero vamos a limpiar un poco algunos componentes que posiblemente estén ya instalados aunque no se preocupen que esto es para instalarlos en orden mas adelante y no saltar un paso o causar una falla por la existencia de alguno.
- Ahora vamos a poner "yum grouplist", y vamos a eliminar todos los complementos instalados en la lista de grupo, lo eliminamos poniendo yum groupremove "EJEMPLO" (los entre comillas para este comando son validos).
3. Actualizamos el Sistema Operativo
- Primero instalamos los repositorios Epel, Wget y Nano.
- Luego actualiza el Sistema y los Paquetes.
4. Establecemos un Hostname al Servidor
- Establecemos un Hostname de la siguiente manera.
- Editamos el archivo Network.
- Agregamos las líneas, y cambiamos, ejemplo por el Hostname.
- Al terminar guardamos y salimos presionando "CTRL + X".
5. Consultamos el Hostname
6. Instalamos PERL, BIND, Nginx, MariaDB y PHP-FPM
- Para instalar MariaDB en CentOS 6 deberemos de hacer este paso obligatorio, vamos a crear el .repo y poner unas lineas.
- Pegaremos.
- Ahora si, comenzamos la instalación de todo.
7. Ejecutar & Config Auto Nginx y Named
- Como nota ten en cuenta que el ultimo servicio named en el primer inicio demora en subir, si ves que después de 5-10 minutos no te da opción para poder continuar has un "CTRL + C" o un "CTRL + X" para abortar y continuar.
8. Ejecutar & Config Auto MariaDB
9. Configuramos MariaDB (MySQL)
- Vamos a seleccionar una contraseña raíz para MariaDB, es muy importante hacer una que sea muy segura aparte de todo esto vamos también a configurar correctamente MariaDB para que este lista para alojar futuras bases de datos.
- Enter current password for root (enter for none): UNICAMENTE PRECIONA ENTER
- Set root password? [Y/n] ESCRIBE Y, LUEGO PRECIONA ENTER
- New password: PON UNA BIEN SEGURA UNICAMENTE DE NUMEROS Y LETRAS MINUSCULAS
- Remove anonymous users? [Y/n] ESCRIBE Y, LUEGO PRECIONA ENTER
- Disallow root login remotely? [Y/n] POR SEGURIDAD, ESCRIBE Y, LUEGO PRECIONA ENTER
- Remove test database and access to it? [Y/n] ESCRIBE Y, LUEGO PRECIONA ENTER
- Reload privilege tables now? [Y/n] ESCRIBE Y, LUEGO PRECIONA ENTER
10. Configurar el PHP.ini
- Ahora editaremos el siguiente archivo.
- Luego presionamos "CTRL + W" y buscamos ";cgi.fix_pathinfo=1", borramos el ";", luego el 1 cambiarlo por 0.
- Buscamos ";date.timezone =", borramos el ";" en el inicio (des comentar), y al final agregan su zona horaria preferida, para el que no conoce el formato de las zonas horarias para el php.ini, puede buscarlas en PHP: América - Manual, un ejemplo de mi zona horaria seria el siguiente.
- Tener en cuenta que esto es adicional... Ósea que puede saltar este paso de la zona horaria. Para el que ya conoce el PHP.ini, acá puede también configurar la Memoria del PHP, y la capacidad de subida de archivos entre otras cosas.
- Al terminar guardamos y salimos presionando "CTRL + X".
11. Configurando el PHP-FPM
- Buscamos "apache Choosed to be able to access some dir as httpd" y donde dice "user = apache y group = apache" por nginx.
- Al terminar guardamos y salimos presionando "CTRL + X".
- Finalmente vamos a corregir el Owner de las Secciones del PHP, un error muy común que existen en estos tipos de instalaciones.
- Concluimos.
12. Configurando Nginx
- Eliminamos este archivo innecesario.
- Creamos un usuario adicional, cambia "usuario" por algún nombre o nick sin espacios ni caracteres especial de ningún tipo.
- Establece una contraseña al usuario que estableciste.
- Ahora vamos a configurar las raíces del Sitio Web para echarlo a andar con estos pasos finales, mas que nada requiero de su total atención por que acá vamos a dirigir la conexión de su Sitio Web con el Servidor.
- Comenzamos a editar.
- Agregamos. Y luego cambiaremos donde dice "server_name ns.emeplo.com;" por el Hostname del servidor, donde dice "return 301 $scheme://www.ejemplo.com;" por el sitio web que vamos a alojar. Tener en cuenta solo modificar donde dice ejemplo. Cambiaremos también donde dice únicamente ns1 y ns2 por los dns del servidor. Y al final "/home/usuario" reemplazarlo por el usuario que creamos hace unos momentos.
- Al final de lo que hemos puesto vamos a agregar lo siguiente.
- Y vamos a cambiar donde dice ejemplo por nuestro Sitio Web y donde dice usuario por el usuario que creamos hace un momento teniendo en cuenta el server_name, root, error_log, error_page, include, el otro root que va despues del "location ~ \.php$ {" y del otro error_page.
- Guardamos todo y continuamos.
13. Configurando HOSTS
- Editaremos el archivo hosts del sistema por que es muy importante hacerlo si no pues el sitio web no va a trabajar, y tampoco los DNS.
- Después de 127.0.0.1 localhost o simplemente después de 127.0.0.1, agregaremos en el siguiente orden.
- Cambiaremos los 0.0.0.0 por el IP principal del servidor y ejemplo por el Sitio Web en el mismo orden.
- Debería de quedar en el siguiente orden.
Ojo, cuidado con borrar algo del archivo hosts!
- Finalmente guardamos y reiniciamos el BIND.
14. Configurando BIND
- Pegamos lo siguiente, recuerden cambiar los 0.0.0.0 por el IP principal del servidor. Y los ejemplos por el Sitio Web, principalmente cambiando el primero "ns.ejemplo.com" por el Hostname del servidor.
- Guardamos y continuamos.
15. Creando las Zonas DNS
- Para mas rápido solo pondré los ejemplos de como debe de ir cada Zona DNS, las zonas DNS son las que uno básicamente editaba en un servidor con un panel ya sea para configurar los Registros MX, los records y todo eso del que se darán cuenta a continuación.
nano /var/named/ns.ejemplo.com.db
Ejemplo:
nano /var/named/ns1.ejemplo.com.db
Ejemplo:
nano /var/named/ns2.ejemplo.com.db
Ejemplo:
nano /var/named/ejemplo.com.db
Ejemplo:
- Una vez que tengamos todas las zonas correctamente creadas y configuradas recordando únicamente cambiar los 0.0.0.0 y ejemplo, también correo por su correo en el formato en el que esta pues vamos a proceder a reiniciar BIND.
16. Instalando componentes del PHP y del Sistema
17. Finalmente concluyendo con Vsftpd
- Ahora crearemos el nuevo archivo de config.
- Y pegamos lo siguiente.
- Ahora reiniciamos y ya tendremos el FTP corriendo bajo el puerto 4040 (se puede cambiar).
- Y listo hemos finalizado!
Conclusion:
Hemos instalado por completo y hemos configurado de manera correcta los DNS de nuestro Sitio Web y el Hostname del Servidor, el Servidor DNS para que el Sitio Web funcione, el motor Nginx para correr los HTML, PHP, en general las aplicaciones web, MariaDB para correr las bases de datos y Vsftpd para correr el ftp y poder subir nuestros archivos por ftp.
Ahora:
Aun nos falta por instalar algo y es para manejar las bases de datos desde el navegador y no por comandos que con esto vamos a concluir el tema y ya podremos comenzar a subir los archivos del sitio web por ftp y a crear las bases de datos para poner a funcionar cualquier sitio web.
También vamos a asegurar nuestro puerto SSH para evitar problemas de seguridad.
Instalando phpMyAdmin:
- Haciendo un Symlink para acceder desde el navegador. Recuerden cambiar donde dice usuario por el suyo.
- Si quieres por seguridad cambiar el por ejemplo ejemplo.com/phpMyAdmin, por muy altos motivos de seguridad.
- Cambias usuario por el usuario y ejemplo por la dirección por la cual vas a entrar.
Ejemplo:
- Y se vería en el navegador así.
- Solo yo se que ese es el enlace para acceder al phpMyAdmin por motivos de seguridad.
- Ahora reiniciamos el PHP-FPM
- Por seguridad borramos la carpeta setup
- Y borramos el siguiente archivo no necesario.
- Damos permisos necesarios a la siguiente carpeta.
- Y listo!, tenemos phpMyAdmin instalado correctamente.
- Para acceder al phpMyAdmin es usando el usuario root y la contraseña del root del Servidor algo que debemos tomar en cuenta. Ahora para concluir vamos a asegurar el SSH para evitar problemas de seguridad aunque no lo vamos a asegurar con KEYS si no con la forma básica.
- Pegamos.
- Cambiamos "Port 4444" el 4444 por el nuevo puerto SSH, ya no vamos a seguir accediendo por el puerto inseguro 22.
- Una vez guardado los cambios.
* Ya tenemos nuestro Sitio Web trabajando sin haber pagado un centavo en compra de un panel de control :encouragement:
Muchísimas gracias por su atención,
Un saludo y pasen buenas.
Edito 09/12/2014 a las 14:57
- Al entrar a tu dominio, si aparece Error 404, pues corre el siguiente comando y listo.
Y problema solucionado!
Para los que no han leído el tutorial anterior acá se los dejo con el titulo:
Instalando Nginx, PHP-FPM, Vsftpd, BIND, MariaDB (MySQL) y phpMyAdmin en Centos 7 x64
http://forobeta.com/tutoriales/3789...-mariadb-mysql-y-phpmyadmin-centos-7-x64.html
Diferencia hay mucha en base a comandos que vamos a utilizar y por eso he de hacer este.
* Montaremos nuestro Sitio Web o nuestros en base de lo que dice el titulo, por ultimo invito a las personas que disponen de su experiencia y ganas de compartirla del que si encuentra algo mal escrito en el tutorial pueda tener la amabilidad de compartir la corrección y evitar controversias, debates y malos pensamientos de las demás personas con tal de hacer pensar que uno es mejor que otro.
* Si a medidas vayas procediendo con la guía te encuentras con errores aun así vayas al pie de la letra no dudes en comentar el tema o enviarme un mensaje privado y yo con gusto respondo con la solución y una explicación si es posible a la mayor brevedad.
* Si tienes dudas o preguntas el tema abierto para comentarios y los mensajes privados por igual para responder a todas.
Nota general:
- Todo lo que sea paréntesis entre comillas " " no se debe tomar en cuenta en los comandos!
Para comenzar con este gran tutorial voy a pedirles que por favor presten muchísima atención y dedicación total de su tiempo para evitar saltarse algún paso, para evitar hacer algo mal, evitar errores entre otras cosas que puedan pasar.
1. Conectando al VPS/Dedicado
Vamos a acceder ya sea desde una consola de su proveedor y/o desde un cliente SSH al servidor, en mi caso yo como estoy utilizando Ubuntu (Linux) pues solo me basto con abrir el "Terminal" y escribir "ssh 0.0.0.0" (en donde están los ceros reemplazar por la IP del servidor) logeado desde root claro y luego escribir la contraseña para así conectar la sección.
Nota: Hay proveedores que por defecto ya el puerto SSH es diferente por lo que para conectar al SSH si esta usando un sistema basado en Linux para conectarse al SSH desde el terminal logeado con root deberá de establecer manualmente un puerto de la siguiente manera "ssh 0.0.0.0 -p 22". cambiar los ceros por el IP del servidor y el 22 por el puerto SSH pre establecido. Otros pueden hacer login haciendo del uso del programa llamado Putty para Windows u Linux.
Para hacer mas fácil & rápido el tutorial solo pondré los comandos pero desde acá del principio les explico que en cada comando iniciando por "yum" es un enter que tiene que hacer y esperar a que termine de procesar, por igual los comandos comenzando por "service" y finalmente los que comienzan por "nano" son comandos en los que vamos a editar archivos así que prestar mucha atención.
Con el comando nano editando archivos para buscar siempre deberemos de presionar "CTRL + W", luego escribir lo que vamos a buscar en un cuadrito que aparece en la consola abajo y luego presionamos ENTER, y para guardar "CTRL + O" y luego ENTER.
Comenzamos...
2. Eliminando cosas innecesarias
- Primero vamos a limpiar un poco algunos componentes que posiblemente estén ya instalados aunque no se preocupen que esto es para instalarlos en orden mas adelante y no saltar un paso o causar una falla por la existencia de alguno.
Insertar CODE, HTML o PHP:
yum remove http* httpd* php* mysql* mysqld* bind* mail* sendmail* postfix* dovecot* selinux* firewall* -y
- Ahora vamos a poner "yum grouplist", y vamos a eliminar todos los complementos instalados en la lista de grupo, lo eliminamos poniendo yum groupremove "EJEMPLO" (los entre comillas para este comando son validos).
3. Actualizamos el Sistema Operativo
- Primero instalamos los repositorios Epel, Wget y Nano.
Insertar CODE, HTML o PHP:
yum install wget nano epel-release -y
- Luego actualiza el Sistema y los Paquetes.
Insertar CODE, HTML o PHP:
yum upgrade -y
4. Establecemos un Hostname al Servidor
- Establecemos un Hostname de la siguiente manera.
Insertar CODE, HTML o PHP:
echo 'ns.ejemplo.com' > /etc/hostname
hostname ns.ejemplo.com
- Editamos el archivo Network.
Insertar CODE, HTML o PHP:
yum install nano -y
nano /etc/sysconfig/network
- Agregamos las líneas, y cambiamos, ejemplo por el Hostname.
Insertar CODE, HTML o PHP:
NETWORKING=yes
HOSTNAME=ns.ejemplo.com
- Al terminar guardamos y salimos presionando "CTRL + X".
Insertar CODE, HTML o PHP:
service network restart
5. Consultamos el Hostname
Insertar CODE, HTML o PHP:
hostname
6. Instalamos PERL, BIND, Nginx, MariaDB y PHP-FPM
- Para instalar MariaDB en CentOS 6 deberemos de hacer este paso obligatorio, vamos a crear el .repo y poner unas lineas.
Insertar CODE, HTML o PHP:
nano /etc/yum.repos.d/MariaDB.repo
- Pegaremos.
Insertar CODE, HTML o PHP:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
- Ahora si, comenzamos la instalación de todo.
Insertar CODE, HTML o PHP:
yum upgrade -y
Insertar CODE, HTML o PHP:
yum install perl bind nginx php php-mysql php-fpm MariaDB-server MariaDB-client -y
7. Ejecutar & Config Auto Nginx y Named
Insertar CODE, HTML o PHP:
chkconfig nginx on
chkconfig named on
service nginx start
service named start
- Como nota ten en cuenta que el ultimo servicio named en el primer inicio demora en subir, si ves que después de 5-10 minutos no te da opción para poder continuar has un "CTRL + C" o un "CTRL + X" para abortar y continuar.
8. Ejecutar & Config Auto MariaDB
Insertar CODE, HTML o PHP:
chkconfig mysql on
service mysql start
9. Configuramos MariaDB (MySQL)
- Vamos a seleccionar una contraseña raíz para MariaDB, es muy importante hacer una que sea muy segura aparte de todo esto vamos también a configurar correctamente MariaDB para que este lista para alojar futuras bases de datos.
Insertar CODE, HTML o PHP:
mysql_secure_installation
- Enter current password for root (enter for none): UNICAMENTE PRECIONA ENTER
- Set root password? [Y/n] ESCRIBE Y, LUEGO PRECIONA ENTER
- New password: PON UNA BIEN SEGURA UNICAMENTE DE NUMEROS Y LETRAS MINUSCULAS
- Remove anonymous users? [Y/n] ESCRIBE Y, LUEGO PRECIONA ENTER
- Disallow root login remotely? [Y/n] POR SEGURIDAD, ESCRIBE Y, LUEGO PRECIONA ENTER
- Remove test database and access to it? [Y/n] ESCRIBE Y, LUEGO PRECIONA ENTER
- Reload privilege tables now? [Y/n] ESCRIBE Y, LUEGO PRECIONA ENTER
Insertar CODE, HTML o PHP:
service mysql restart
10. Configurar el PHP.ini
- Ahora editaremos el siguiente archivo.
Insertar CODE, HTML o PHP:
nano /etc/php.ini
- Luego presionamos "CTRL + W" y buscamos ";cgi.fix_pathinfo=1", borramos el ";", luego el 1 cambiarlo por 0.
- Buscamos ";date.timezone =", borramos el ";" en el inicio (des comentar), y al final agregan su zona horaria preferida, para el que no conoce el formato de las zonas horarias para el php.ini, puede buscarlas en PHP: América - Manual, un ejemplo de mi zona horaria seria el siguiente.
Insertar CODE, HTML o PHP:
date.timezone = America/Santo_domingo
- Tener en cuenta que esto es adicional... Ósea que puede saltar este paso de la zona horaria. Para el que ya conoce el PHP.ini, acá puede también configurar la Memoria del PHP, y la capacidad de subida de archivos entre otras cosas.
- Al terminar guardamos y salimos presionando "CTRL + X".
11. Configurando el PHP-FPM
Insertar CODE, HTML o PHP:
nano /etc/php-fpm.d/www.conf
- Buscamos "apache Choosed to be able to access some dir as httpd" y donde dice "user = apache y group = apache" por nginx.
Insertar CODE, HTML o PHP:
user = nginx
group = nginx
- Al terminar guardamos y salimos presionando "CTRL + X".
- Finalmente vamos a corregir el Owner de las Secciones del PHP, un error muy común que existen en estos tipos de instalaciones.
Insertar CODE, HTML o PHP:
chown -R nginx:nginx /var/lib/php/session
- Concluimos.
Insertar CODE, HTML o PHP:
chkconfig php-fpm on
service php-fpm start
12. Configurando Nginx
- Eliminamos este archivo innecesario.
Insertar CODE, HTML o PHP:
rm -rf /etc/nginx/nginx.conf.default
- Creamos un usuario adicional, cambia "usuario" por algún nombre o nick sin espacios ni caracteres especial de ningún tipo.
Insertar CODE, HTML o PHP:
useradd -m USUARIO -s /sbin/nologin
- Establece una contraseña al usuario que estableciste.
Insertar CODE, HTML o PHP:
passwd usuario (ponlo primero y luego enter)
- Ahora vamos a configurar las raíces del Sitio Web para echarlo a andar con estos pasos finales, mas que nada requiero de su total atención por que acá vamos a dirigir la conexión de su Sitio Web con el Servidor.
- Comenzamos a editar.
Insertar CODE, HTML o PHP:
rm -rf /etc/nginx/nginx.conf
nano /etc/nginx/nginx.conf
- Agregamos. Y luego cambiaremos donde dice "server_name ns.emeplo.com;" por el Hostname del servidor, donde dice "return 301 $scheme://www.ejemplo.com;" por el sitio web que vamos a alojar. Tener en cuenta solo modificar donde dice ejemplo. Cambiaremos también donde dice únicamente ns1 y ns2 por los dns del servidor. Y al final "/home/usuario" reemplazarlo por el usuario que creamos hace unos momentos.
Insertar CODE, HTML o PHP:
user nginx;
worker_processes 16;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
keepalive_timeout 15;
gzip on;
client_max_body_size 100M;
server_names_hash_bucket_size 64;
server {
listen 80;
listen 443 ssl;
server_name *.ejemplo.com ns.ejemplo.com ns1.ejemplo.com ns2.ejemplo.com localhost;
ssl off;
return 301 $scheme://www.ejemplo.com;
location / {
root /home/usuario;
}
}
- Al final de lo que hemos puesto vamos a agregar lo siguiente.
- Y vamos a cambiar donde dice ejemplo por nuestro Sitio Web y donde dice usuario por el usuario que creamos hace un momento teniendo en cuenta el server_name, root, error_log, error_page, include, el otro root que va despues del "location ~ \.php$ {" y del otro error_page.
Insertar CODE, HTML o PHP:
server {
listen 80;
listen 443 ssl;
server_name www.ejemplo.com ejemplo.com;
ssl off;
location / {
root /home/usuario;
index index.php index.html index.htm;
error_page 404 $scheme://www.ejemplo.com;
#include /home/usuario/*.conf;
}
location ~ \.php$ {
root /home/usuario;
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
error_page 404 $scheme://www.ejemplo.com;
}
}
}
- Guardamos todo y continuamos.
Insertar CODE, HTML o PHP:
service nginx restart
13. Configurando HOSTS
- Editaremos el archivo hosts del sistema por que es muy importante hacerlo si no pues el sitio web no va a trabajar, y tampoco los DNS.
Insertar CODE, HTML o PHP:
nano /etc/hosts
- Después de 127.0.0.1 localhost o simplemente después de 127.0.0.1, agregaremos en el siguiente orden.
Insertar CODE, HTML o PHP:
0.0.0.0 ejemplo.com
0.0.0.0 ns1.ejemplo.com
0.0.0.0 ns2.ejemplo.com
- Cambiaremos los 0.0.0.0 por el IP principal del servidor y ejemplo por el Sitio Web en el mismo orden.
- Debería de quedar en el siguiente orden.
Insertar CODE, HTML o PHP:
127.0.1.1 ns.ejemplo.com ns.ejemplo.com
127.0.0.1 localhost
0.0.0.0 ejemplo.com
0.0.0.0 ns1.ejemplo.com
0.0.0.0 ns2.ejemplo.com
Ojo, cuidado con borrar algo del archivo hosts!
- Finalmente guardamos y reiniciamos el BIND.
Insertar CODE, HTML o PHP:
service named restart
14. Configurando BIND
Insertar CODE, HTML o PHP:
rm -rf /etc/named.conf
nano /etc/named.conf
- Pegamos lo siguiente, recuerden cambiar los 0.0.0.0 por el IP principal del servidor. Y los ejemplos por el Sitio Web, principalmente cambiando el primero "ns.ejemplo.com" por el Hostname del servidor.
Insertar CODE, HTML o PHP:
options {
listen-on port 53 { 127.0.0.1; 0.0.0.0; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
allow-query { any; };
allow-transfer { none; };
version none;
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "ns.ejemplo.com" IN {
type master;
file "ns.ejemplo.com.db";
allow-update { none; };
};
zone "ns1.ejemplo.com" IN {
type master;
file "ns1.ejemplo.com.db";
allow-update { none; };
};
zone "ns2.ejemplo.com" IN {
type master;
file "ns2.ejemplo.com.db";
allow-update { none; };
};
zone "ejemplo.com" IN {
type master;
file "ejemplo.com.db";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
- Guardamos y continuamos.
15. Creando las Zonas DNS
- Para mas rápido solo pondré los ejemplos de como debe de ir cada Zona DNS, las zonas DNS son las que uno básicamente editaba en un servidor con un panel ya sea para configurar los Registros MX, los records y todo eso del que se darán cuenta a continuación.
nano /var/named/ns.ejemplo.com.db
Ejemplo:
Insertar CODE, HTML o PHP:
$TTL 30
@ 30 IN SOA ns1.ejemplo.com. correo.gmail.com. (
2014120104;
2000;
300;
1209600;
300);
ns.ejemplo.com. 30 IN NS ns1.ejemplo.com.
ns.ejemplo.com. 30 IN NS ns2.ejemplo.com.
ns.ejemplo.com. 30 IN A 0.0.0.0
ns.ejemplo.com. IN MX 0 ns.ejemplo.com.
ns.ejemplo.com. IN TXT "v=spf1 +a +mx +ip4:0.0.0.0 ~all"
ns.ejemplo.com. IN TXT "v=DMARC1; p=none; rua=mailto:correo@gmail.com"
nano /var/named/ns1.ejemplo.com.db
Ejemplo:
Insertar CODE, HTML o PHP:
$TTL 30
@ 30 IN SOA ns1.ejemplo.com. correo.gmail.com. (
2014120104;
2000;
300;
1209600;
300);
ns1.ejemplo.com. 30 IN NS ns1.ejemplo.com.
ns1.ejemplo.com. 30 IN NS ns2.ejemplo.com.
ns1.ejemplo.com. 30 IN A 0.0.0.0
ns1.ejemplo.com. IN MX 0 ns.ejemplo.com.
ns1.ejemplo.com. IN TXT "v=spf1 +a +mx +ip4:0.0.0.0 ~all"
ns1.ejemplo.com. IN TXT "v=DMARC1; p=none; rua=mailto:correo@gmail.com"
nano /var/named/ns2.ejemplo.com.db
Ejemplo:
Insertar CODE, HTML o PHP:
$TTL 30
@ 30 IN SOA ns1.ejemplo.com. correo.gmail.com. (
2014120104;
2000;
300;
1209600;
300);
ns2.ejemplo.com. 30 IN NS ns1.ejemplo.com.
ns2.ejemplo.com. 30 IN NS ns2.ejemplo.com.
ns2.ejemplo.com. 30 IN A 0.0.0.0
ns2.ejemplo.com. IN MX 0 ns.ejemplo.com.
ns2.ejemplo.com. IN TXT "v=spf1 +a +mx +ip4:0.0.0.0 ~all"
ns2.ejemplo.com. IN TXT "v=DMARC1; p=none; rua=mailto:correo@gmail.com"
nano /var/named/ejemplo.com.db
Ejemplo:
Insertar CODE, HTML o PHP:
$TTL 30
@ 30 IN SOA ns1.ejemplo.com. correo.gmail.com. (
2014120104;
2000;
300;
1209600;
300);
ejemplo.com. 30 IN NS ns1.ejemplo.com.
ejemplo.com. 30 IN NS ns2.ejemplo.com.
ejemplo.com. 30 IN A 0.0.0.0
ejemplo.com. IN MX 0 ns.ejemplo.com.
www 30 IN A 0.0.0.0
ejemplo.com. IN TXT "v=spf1 +a +mx +ip4:0.0.0.0 ~all"
ejemplo.com. IN TXT "v=DMARC1; p=none; rua=mailto:correo@gmail.com"
- Una vez que tengamos todas las zonas correctamente creadas y configuradas recordando únicamente cambiar los 0.0.0.0 y ejemplo, también correo por su correo en el formato en el que esta pues vamos a proceder a reiniciar BIND.
Insertar CODE, HTML o PHP:
service named restart
16. Instalando componentes del PHP y del Sistema
Insertar CODE, HTML o PHP:
yum install php-xml php-xmlrpc php-pdo php-gd gd zip unzip php-zip php-unzip php-soap php-cli php-imap php-ldap php-odbc php-pecl-apc php-magickwand php-mbstring php-mcrypt php-snmp php-tidy -y
17. Finalmente concluyendo con Vsftpd
Insertar CODE, HTML o PHP:
yum upgrade -y
yum install vsftpd -y
rm -rf /etc/vsftpd/vsftpd.conf
- Ahora crearemos el nuevo archivo de config.
Insertar CODE, HTML o PHP:
nano /etc/vsftpd/vsftpd.conf
- Y pegamos lo siguiente.
Insertar CODE, HTML o PHP:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=NO
connect_from_port_20=NO
xferlog_std_format=NO
idle_session_timeout=120
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Funcionando
ls_recurse_enable=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
ssl_enable=NO
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
require_ssl_reuse=NO
pasv_enable=YES
listen_port=4040
- Ahora reiniciamos y ya tendremos el FTP corriendo bajo el puerto 4040 (se puede cambiar).
Insertar CODE, HTML o PHP:
service vsftpd start
chkconfig vsftpd on
- Y listo hemos finalizado!
Conclusion:
Hemos instalado por completo y hemos configurado de manera correcta los DNS de nuestro Sitio Web y el Hostname del Servidor, el Servidor DNS para que el Sitio Web funcione, el motor Nginx para correr los HTML, PHP, en general las aplicaciones web, MariaDB para correr las bases de datos y Vsftpd para correr el ftp y poder subir nuestros archivos por ftp.
Ahora:
Aun nos falta por instalar algo y es para manejar las bases de datos desde el navegador y no por comandos que con esto vamos a concluir el tema y ya podremos comenzar a subir los archivos del sitio web por ftp y a crear las bases de datos para poner a funcionar cualquier sitio web.
También vamos a asegurar nuestro puerto SSH para evitar problemas de seguridad.
Instalando phpMyAdmin:
Insertar CODE, HTML o PHP:
yum install phpmyadmin -y
- Haciendo un Symlink para acceder desde el navegador. Recuerden cambiar donde dice usuario por el suyo.
Insertar CODE, HTML o PHP:
ln -s /usr/share/phpMyAdmin /home/usuario
- Si quieres por seguridad cambiar el por ejemplo ejemplo.com/phpMyAdmin, por muy altos motivos de seguridad.
Insertar CODE, HTML o PHP:
cd /home/usuario
mv phpMyAdmin EJEMPLO
- Cambias usuario por el usuario y ejemplo por la dirección por la cual vas a entrar.
Ejemplo:
Insertar CODE, HTML o PHP:
cd /home/usuario
mv phpMyAdmin phpmadm4040
- Y se vería en el navegador así.
Insertar CODE, HTML o PHP:
ejemplo.com/phpmadm4040
- Solo yo se que ese es el enlace para acceder al phpMyAdmin por motivos de seguridad.
- Ahora reiniciamos el PHP-FPM
Insertar CODE, HTML o PHP:
service php-fpm restart
- Por seguridad borramos la carpeta setup
Insertar CODE, HTML o PHP:
rm -rf /usr/share/phpMyAdmin/setup
- Y borramos el siguiente archivo no necesario.
Insertar CODE, HTML o PHP:
rm -rf /etc/httpd/conf.d/phpMyAdmin.conf
- Damos permisos necesarios a la siguiente carpeta.
Insertar CODE, HTML o PHP:
chmod 777 -R /etc/phpMyAdmin
chmod 777 -R /usr/share/phpMyAdmin
cd /etc/phpMyAdmin
chmod 775 config.inc.php
- Y listo!, tenemos phpMyAdmin instalado correctamente.
- Para acceder al phpMyAdmin es usando el usuario root y la contraseña del root del Servidor algo que debemos tomar en cuenta. Ahora para concluir vamos a asegurar el SSH para evitar problemas de seguridad aunque no lo vamos a asegurar con KEYS si no con la forma básica.
Insertar CODE, HTML o PHP:
rm -rf /etc/ssh/sshd_config
nano /etc/ssh/sshd_config
- Pegamos.
Insertar CODE, HTML o PHP:
Port 4444
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials yes
UsePAM yes
X11Forwarding yes
UseDNS no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
- Cambiamos "Port 4444" el 4444 por el nuevo puerto SSH, ya no vamos a seguir accediendo por el puerto inseguro 22.
- Una vez guardado los cambios.
Insertar CODE, HTML o PHP:
service sshd restart
* Ya tenemos nuestro Sitio Web trabajando sin haber pagado un centavo en compra de un panel de control :encouragement:
Muchísimas gracias por su atención,
Un saludo y pasen buenas.
Edito 09/12/2014 a las 14:57
- Al entrar a tu dominio, si aparece Error 404, pues corre el siguiente comando y listo.
chmod 755 -R /home
Y problema solucionado!
Última edición: