Hola, recientemente he visto mucho material publicado por internet, pero solo a efectos de hacer un servidor a modo local, ya que solo se centran en hacerlo, pero luego, para que ellos puedan ver mi pagina web tienen que entrar de algun modo, y no se pueden saltar el firewall de mi router para acceder a la pagina, ademas de tener ip dinamica,,, y las ip locales entre mi ordenador y el router no son fijas y se asignan segun le de, es decir las 192.xx.xx.x..
Asi que he decidido hacer paso por paso mi pagina web he ire poniendo todas mis dudas aqui.
Bueno lo primero que he pensado es que mi servidor tiene que estar en un sitio como un hardware, porque es mio , no de google ni de ninguna nube, no utilizo amazon.
Asi que pensé que como es un hardware va chupar luz electrica, asi que tengo que buscar una cosa que consuma poco, asi que me compre un Odroid xu4 arquitectura arm exynox....
El problema de las cosas pequeñas es que no tienen mucha memora RAM, asi que probé a instalar una distribucion de linux ( que es el sistema operativo que creo que le va bien a este hardware) y le instale el ubuntu minimal, para que no consuma muchos recursos, pero el problema era que todo se hacia por modo consola , y me tuve que instlar el etcher para flasear la imagen del SO, y hacer las particiones todo modo consola y luego no sabia bash ni shell, y dije , formateo la memoria SD y vuelvo a empezar, si, el Odroid tiene una memoria SD no disco duro, y recomienda que sea de alta velocidad porque hace de disco duro.
No voy a poner el Apache, porque ira muy lento al ser pesado, asi que elegi Nginx, es decir un LEMP.
Entonces lo que hice fue irme a la pagina de hardkernel, descargarme el zip de la ubuntu 18.04.1-4.14 mate odorid20181203, hay otra version de kernel la 4.4 creo, pero no se muy bien en que se diferencia con la esta, pero lo que si averigué es que la version mate es la de escritorio, la minimal de consola.
Entonces lo que hice fue descomprimir lo descargado y tenia como 5GB de imagen, y tuve que descargarme Win32DiskImager-droidv1.3.zip , lo descomprimi y tuve que moder la carpeta a archivos de programa, por lo visto no se instala.
Este programa sirve para flasear la sd que tengo para meter la imagen del SO,
Abro el Win32DiskImager-droidv1.3 busco la imagen la cargo y luego la salida a mi usb que es donde tengo la sd, y le doy a write.
Desmonto la memoria y la pongo en el ordroid, y listo, la contraneña creo que es odroid, en el caso de la version ubuntu minimal es root, nunca me hace falta usar sudo esto sudo aquello.
Entonces abro una terminal y le digo sudo apt-get update
Todo esta actualizado.
Ahora empiezo a instalar del sevidor lemp, mi consola no tiene root, por lo tando tiempre sudo delante.
$ sudo add-apt-repository ppa:ondrej/php
cuando termina.. esta otra
$ sudo apt-get update && sudo apt-get install php7.1-fpm
cuanto termina esta otra para cambier la zona horara
$ sudo vi /etc/php/7.1/fpm/php.ini
(el vi es un infierno para mi , no se puede escribir, y encima tengo el teclado en modo americano( asi que en vez de utilizar vi , utilizo pluma que me viene en el SO, asi que escribo
$ sudo pluma /etc/php/7.1/fpm/php.ini
busco lo que esta comentado por defecto “date.timezone” y lo cambio de acuerdo a mi ubicación, inicialmente puede estar comentada por defecto, lo pongo , lo salvo con el editor pluma.
UNa vez acabo con php, empiezo con maria db, este no soportar la arquitectura ARM, asi que lo tengo que descargar de los repositorios ubuntu.
$ sudo apt-get update && sudo apt-get install mariadb-server mariadb-client php-mysql
Ahora modifico el idioma
$ sudo vi /etc/mysql/conf.d/mysql.cnf
pero utilizo pluma
$ sudo pluma /etc/mysql/conf.d/mysql.cnf
Elimino todo el contenido que aparece dentro , y pego el siguiente...
# MariaDB-specific config file.
# Read by /etc/mysql/my.cnf
[client]
# Default is Latin1, if you need UTF-8 set this
# (also in server section)
default-character-set = utf8mb4
[mysqld]
#
# * Character sets
#
# Default is Latin1, if you need UTF-8 set all this
# (also in client section)
#
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
Salvo el editor
Y luego reinicio el servicio pusiendo
$ sudo service mysql restart
Luego empiezo con nginx
$ sudo add-apt-repository ppa:nginx/stable
y luego, cuando termina...
$ sudo apt-get update && sudo apt-get install nginx
A partir de aqui me dije, para que voy a instlar yo PHP , si lo que tengo son html?, pero luego pense, bueno, igual me toca instalar algun contador de visitar php com un script o algo...
Asi que para que mi sevidor entienda el PHP le tengo que poner..
$ sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
$ sudo pluma /etc/nginx/sites-available/default
Se abre el editor y le pongo todo esto:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.php;
server_name _;
location / {
try_files $uri $uri/ =404;
}
# This option is important for using PHP.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
}
Le doy a save al editor
Reinicio poniendo
$ sudo service nginx reload
Compruebo en el bucador raro que viene por defector en el ubuntu mate desde mi ordroid la direccion local 127.0.0.1 y me sale la pagina por defecto que tengo en la carpeta..
var/www/html/ index. algoraro
Todo va bien, pero como hago para que ahora, mi router me asigne un ip fija 192.xx.xx.xx?
Esta web la puedo ver yo , y en el mejor de los casos, otro ordenador de mi red local , pero de fuera no.
Entonces.. resolviendo primero el tema de la ip local fija, abro la consola y le pongo..
$ ifconfig -a
$ sudo pluma /etc/network/interfaces
En ese archivo asigno una dirección IP fija a las interfaces de red en mi caso eth0
me sale...
# Configuración de dirección IP fija para el interfaz eth0
auto eth0
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
que significa...
address es la dirección IP que quieres ponerle a tu máquina.
netmask es la máscara de subred de esa dirección IP.
network es la red a la que pertenece esa dirección IP.
broadcast es la direción IP de difusión de esa red.
gateway es la dirección IP de la puerta de enlace predeterminada.
Generalmente es la dirección IP del equipo de la red o router por el que podemos salir al exterior o conectarnos a Internet. Por mi meteria la 192.168.1.1 pero ya hablare con mi padre, porque igual la tiene en su ordenador y me pega bronca.
Reinicio
$ sudo /etc/init.d/networking restart
me da problemas y no hace na, pruevo con el siguiente comando
$ sudo ifconfig eth0 down
y luego...
$ sudo ifconfig eth0 up
Compruebo que tengo conexion ..
$ ping 192.168.1.1 (para comprobar conectividad con yo)
$ ping google.com (para comprobar conexión a Internet)
supongo que ya tengo la ip local estatica, es decir fija.
Pero de aguas para afuera que?
$ sudo pluma /etc/resolv.conf
se pueden añadir tantos servidores DNS como desee utilizando repetidamente el comando nameserver direccion_ip, asi que utilizo la dirección IP 8.8.8.8 que es la dirección IP de un servidor DNS de Google.
es decir...
# Configuración de servidores DNS
nameserver 8.8.8.8
$ sudo /etc/init.d/networking restart
Con esto.. alguien puede ver lo que yo tengo en mi pagina web si alguien busca por internet usando el navegador google?
Aqui hay algo que me escama, me hace falta algo, estoy vacio por dentro...
Me hace falta un nombre, segun he visto se llama host virtual, y tengo que modificar lo que habia puesto anteriormente, es decir, pongo
$ sudo pluma /etc/nginx/sites-available/default
Se abre el editor y le pongo el nombre que quiera ( en este caso yomismo.net)
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.php;
server_name yomismo.net;
location / {
try_files $uri $uri/ =404;
}
# This option is important for using PHP.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
}
En otros sitios he visto que añaden algo mas expuesto en rojo..
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.php;
server_name yomismo.net;
location / {
try_files $uri $uri/ =404;
}
# This option is important for using PHP.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Creo que lo correcto seria crear uno totalmente nuevo y borrar el default, es decir, el de por defecto, por ejemplo.
sudo pluma /etc/nginx/sites-available/yomismo.net
server {
listen 80;
root /var/www/html;
index index.php index.html;
server_name yomismo.net;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Luego ...
sudo ln -s /etc/nginx/sites-available/yomismo.net /etc/nginx/sites-enabled/
Deshabilitamos... utilizando
sudo unlink /etc/nginx/sites-enabled/default
Realizan test de configuracion
sudo nginx -t
Para realizar los cambios necesarios habra que recargar con el siguiente comando
sudo systemctl reload nginx
Añadimos un fichero llamado «info.php», con una configuración que nos permitirá validar la instalación del servidor web
sudo pluma /var/www/html/info.php ( ahora ya no lo veo raro)
Con esta configuración....
<?php
phpinfo();
?>
Una vez hecho esto ya podemos consultar la información vía web, con la URL
http://yomismo.net/info.php
Dicen que ...
lo mejor es quitar el archivo que creó, ya que de hecho puede dar a los usuarios no autorizados algunas sugerencias sobre su configuración que pueden ayudarles a intentar entrar. Siempre puede regenerar este archivo si lo necesita más tarde.
Por ahora, elimine el archivo escribiendo:
sudo rm /var/www/html/info.php
No he instalado ningun script de seguridad, pero segun cuentan, creo que lo que tengo que hacer es poner es:
sudo mysql_secure_installation
(pero no era Maria DB?) en fin sigue..
Se le pedirá que introduzca la contraseña que estableció para la cuenta root de MySQL.
A continuación, se le preguntará si desea configurar el plugin de validación para contraseñas VALIDATE PASSWORD PLUGIN.
Advertencia: La activación de esta función es algo así como una cuestión de criterio. Si se habilita, las contraseñas que no coinciden con los criterios especificados serán rechazadas por MySQL con un error. Esto causará problemas si se utiliza una contraseña débil en conjunción con el software que configura automáticamente las credenciales de usuario de MySQL, como los paquetes de Ubuntu para phpMyAdmin. Es seguro dejar la validación desactivado, pero siempre se debe utilizar contraseñas únicas y fuertes para las credenciales de base de datos.
Ingrese y para sí, o cualquier otra cosa para continuar sin habilitar.
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:
Si ha habilitado la validación, le pedirá que seleccione un nivel de validación de contraseña. Tenga en cuenta que si introduzca 2, para el nivel más alto, recibirá errores al intentar establecer cualquier contraseña que no contiene números, letras mayúsculas, minúsculas y caracteres especiales, o que se basa en las palabras del diccionario comunes.
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Si ha habilitado la validación de contraseña, se muestra una fuerza de contraseña para la contraseña de root existente, y le preguntará si desea cambiar la contraseña. Si no está satisfecho con su contraseña actual, introduzca n para el "no" en la consola:
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Para el resto de las preguntas, hay que ingresar Y y después pulse Enter en cada pregunta. Esto eliminará algunos usuarios de ejemplo y la base de datos de prueba, desactivará las conexiones root remotas, y cargará estas nuevas reglas para que MySQL respete inmediatamente los cambios que hemos realizado
Esto ultimo lo tengo que mirar..
[Creo sinceramente que voy a tener que poner la version minimal para que corra mas deprisa, pero, no se como mover las carpetas html de mi usb externo a la carpeta var/www/html en modo consola, y luego me va tocar poner un contador php, bufff, la version minimla es todo consola.
Creo que voy a tener que desinstalar todas las aplicaciones que estan demas en la version mate
Vale creo que la ICAN es la que se encarga de asignar los dominios, por eso no me sirve mi dominio, es decir, si otro en honduras se crea un mismo dominio, seria un cachondeo, lo que se encarga este organismo es de asignar dominios para que no se repitan y hallan conflictos.
Entonces los del servidor DNS solo es anivel local imagino ( no entenderia porque es de google el 8.8.8.8 si es local????). O sea tengo que pagar si o si a google un dominio por 12 € al año? yomismo.net?
Se gun tengo entendido, los servidores de google o telefonica en mi caso, tienen que reconocer mi dominio, y esparcirlo por toda la internet, para que el buscador google lo asimile.
Porque lo que tengo entendido es que el DNS de google debe reconocer, cosa que tampoco entiendo, porque si lo pongo por la direccion https o http:www...... no paso por los buscadores de google, y por tanto no nesito a google para nada.
Por otro lado me ayudaria que un servidor se guardara mi pagina web, porque yo tengo 0.03MB/s de subida, y mi pagina ocupa 6MB, eso significa, que alguien, al conectarse directamente a mi servidor, se pasaria 60 segundos descargando para solo tener 1.8MB de mi pagina descargados.
Mi ISP es penoso, esta la fibra pero no la conectan, vamos por cable telefonico, solo tengo 8Mbps de bajada y 0.3Mbps de subida. Asco de Timofonica que pago 70€