Diferència entre revisions de la pàgina «OVH. VPS Essential jaumebalmes.net»
m (→Mòdul MySQL) |
|||
| Línia 500: | Línia 500: | ||
* Running on http://127.0.0.1:5000/ | * Running on http://127.0.0.1:5000/ | ||
</pre> | </pre> | ||
| + | [[Fitxer:Obrir port 5000 3.png | thumbnail]] | ||
I l'aplicació la podríem veure a: | I l'aplicació la podríem veure a: | ||
*http://127.0.0.1:5000/ | *http://127.0.0.1:5000/ | ||
Revisió del 17:36, 23 març 2022
Contingut
Compte d'usuari
- jquintana@jaumebalmes.net / k******I_k
VPS Essential
ESSENTIAL 10 € + IVA/mes Compromiso de 12 meses (-8%) **Compromiso de 24 meses (-15%) -> 8,50 € + IVA/mes 2 vCore 4 GB 80 GB SSD NVMe 500 Mb/s Ilimitado* Sólo distribución Ubuntu versió 21.10 Europa Occidental, Francia, Estrasburgo (SBG) Snapshot: NO Almacenamiento adicional: NO Backup automatizado: NO
Su VPS acaba de instalarse con el siguiente sistema operativo/distribución: Ubuntu 21.10 PARÁMETROS DE ACCESO: Dirección IPv4 del VPS: 5.196.26.105 Nombre del VPS: vps-89148e22.vps.ovh.net En el VPS se ha configurado la siguiente cuenta de administrador: Usuario: ubuntu Contraseña: 8********** PARA EMPEZAR: Si es la primera vez que se conecta a un VPS, le recomendamos que consulte la siguiente guía: http://www.ovh.es/g1260.como-conectarse-a-un-vps
Posta a punt
Passos previs
sudo apt-get install joe sudo apt-get install unzip
Instal·lar Apache
sudo apt-get install apache2
ja tenim el Apache instal·lat i funcionant
Instal·lar mysql
$ sudo apt-get install mysql-server $ sudo su # mysql -h localhost -u root mysql>
Per entrar al mysql sense haver de fer sudo, hem de fer:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'k*******'; mysql> FLUSH PRIVILEGES;
ara ja puc entrar al mysql amb l'usuari normal:
mysql> exit # exit $ mysql -h localhost -u root -pk******* mysql>
Important:
$ sudo apt-get install php php-cli php-mysql $ $ sudo apt-get install libapache2-mod-php
SSH sense demanar password
3 passos molt simples. Es tracta de generar una clau pública en el portàtil, i enviar-la al servidor, per tal de què confïi en el portàtil.
$ ssh-keygen -b 4096 -t rsa
Es generen dos fitxers: la clau privada i la clau pública:
- .ssh/id_rsa
- .ssh/id_rsa.pub
$ ssh-copy-id ubuntu@vps-89148e22.vps.ovh.net
i ara ja podem entrar:
$ ssh ubuntu@vps-89148e22.vps.ovh.net $ scp hola.txt ubuntu@vps-89148e22.vps.ovh.net:/home/ubuntu
NOTA: per tal de què funcioni el directori home de l'usuari només pot ser writable per ell mateix (permisos 755).
A Windows
En una instal·lació de Windows, les comandes ssh i scp ja estan instal·lades. Per tant, no cal instal·lar Putty (tot i que també es pot utilitzar si és la teva preferència).
Igual que a Linux:
ssh-keygen -b 4096 -t rsa
Es generen dos fitxers: la clau privada i la clau pública:
- .ssh/id_rsa
- .ssh/id_rsa.pub
Hem de copiar la clau pública al servidor. Com que la comanda ssh-copy-id no existeix a Windows, no passa res, ho farem manualment. Primer entrem al servidor:
$ ssh joan@vps-89148e22.vps.ovh.net $ mkdir .ssh $ nano .ssh/authorized_keys
I el que fem ara és copiar tot el contingut del fitxer local .ssh/id_rsa.pub a dins del fitxer authorized_keys que acabem de crear manualment. Això es pot fer de vàries maneres, però amb un copiar-enganxar també funciona.
El contingut que hem de copiar és similar a:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDhJDOxRW5PSIb1RRo...
I acaba amb el nom de la vostra màquina local.
Sortim de la sessió remota ($ exit) i ja podem tornar a entrar sense que ens demani el password:
$ ssh joan@vps-89148e22.vps.ovh.net
Instal·lar Docker
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Aquesta instrucció ja no funciona. El que ha funcionat és:
To install Docker for Kali 2020.1 debian amd64 run the following: curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/docker-ce-archive-keyring.gpg > /dev/null then: echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list sudo apt-get update sudo apt-get install docker-ce
i ja tinc instal·lat el docker. Per tal de no utilitzar sudo:
$ sudo groupadd docker (ja existeix) $ sudo usermod -aG docker $USER
I ja puc fer el primer contenidor de prova:
$ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:4c5f3db4f8a54eb1e017c385f683a2de6e06f75be442dc32698c9bbe6c861edd Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1e09e771f789 hello-world "/hello" 28 seconds ago Exited (0) 28 seconds ago boring_proskuriakova
Creació s'usuaris
Amb l'usauri ubuntu creem els usuaris. Per ex, per crear l'usuari joan:
sudo useradd -d /home/joan -s /bin/bash -m joan sudo passwd joan sudo mkdir /home/joan/html sudo su # sudo echo "Benvingut joan" > /home/joan/html/index.html sudo chown -R joan:joan /home/joan # exit sudo chmod -R 755 /home/joan
Editem el fitxer de configuració de l'Apache:
sudo nano /etc/apache2/sites-available/000-default.conf
Alias /joan "/home/joan/html/"
<Directory "/home/joan/html/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex index.html default.html index.php
</Directory>
sudo /etc/init.d/apache2 restart
i ja funciona:
Si volem que aquest usuari sigui del grup sudoers:
$ usermod -aG sudo joan
Ara que ja tenim l'usuari creat, aquest usuari ja pot fer ssh:
$ ssh joan@vps-89148e22.vps.ovh.net
Per tal de que l'usauri es pugui canviar el seu password:
joan$ passwd
Per tal de poder entrar per SSH sense que demani el password, veure més amunt.
Creació de bases de dades dels alumnes
Des del root:
CREATE DATABASE joan DEFAULT CHARACTER SET utf8; CREATE USER joan@localhost IDENTIFIED BY 'keiL2lai'; GRANT ALL ON joan.* TO joan@localhost WITH GRANT OPTION;
I ara l'usuari joan ja pot entrar a la base de dades joan:
$ ssh joan@vps-89148e22.vps.ovh.net joan$ mysql -h localhost -u joan -pkeiL2lai joan mysql>
I té permisos per fer allò que vulgui en aquesta bd.
Instal·lació de Node
$ sudo apt-get install nodejs $ nodejs --version v12.22.5 $ sudo apt-get install npm $ npm --version 7.5.2
No són les últimes versions. Per instal·lar les últimes versions:
1. First, clear the npm cache:
$ npm cache clean -f
2. Install n, Node's version manager:
$ sudo npm install -g n
3. With the n module installed, you can use it to:
$ sudo n latest
installing : node-v17.8.0
mkdir : /usr/local/n/versions/node/17.8.0
fetch : https://nodejs.org/dist/v17.8.0/node-v17.8.0-linux-x64.tar.xz
installed : v17.8.0 (with npm 8.5.5)
Tanco la consola i em torno a connectar:
$ node --version v17.8.0 $ npm --version 8.5.5
Mòdul node-mysql
$ sudo apt-get install node-mysql (no cal)
Millor la versió 2 del mòdul. Ho instal·lem globalment, i ho salvem (--save) per tal de què funcioni a la primera:
$ sudo npm install -g mysql2 $ sudo npm install mysql2 --save
Exemple mínim:
var mysql = require('mysql2');
var connection = mysql.createConnection({
host : 'localhost',
port : 3306,
database: 'joan',
user : 'joan',
password : '*******'
});
connection.query("select * from PROVA", function(err, rows){
if(err != null) {
res.end("Query error:" + err);
} else {
for (var i = 0; i < rows.length; i++) {
console.log(rows[i].nom);
};
}
});
connection.end();
$ node exemple_minim.js
Repàs bàsic de creació d'usuaris
Per veure la llista d'usuaris:
$ cat /etc/passwd $ less /etc/passwd
Si només volem printar els noms d'usuari:
$ awk -F: '{ print $1}' /etc/passwd
$ cut -d: -f1 /etc/passwd
The command below will list all normal users in our Linux system:
$ getent passwd {1000..60000}
$ sudo useradd -m username
(l'opció -m és per crear el directori home de l'usuari)
Per poder fer login necessitem donar-li un password:
$ sudo passwd username
Per eliminar l'usuari (i el seu directori home):
$ sudo userdel -r username
Creació d'un docker bàsic Apache-PHP
$ mkdir docker-apache $ cd docker-apache $ mkdir src/
$ joe src/taules_multiplicar.php
<?php
for ($taula=1; $taula <=10 ; $taula++){
echo 'Taula del '.$taula.'<br />';
for ($x=1; $x <=10 ; $x++){
echo '[ '.$taula.' * '.$x.' = '.$taula*$x.' ] ';
}
echo '<hr />';
}
?>
Creem el fitxer de configuració Dockerfile:
$ joe Dockerfile FROM php:7.4-apache COPY src/ /var/www/html EXPOSE 80
i creem el docker:
$ docker build -t apache-joan . Sending build context to Docker daemon 3.584kB Step 1/3 : FROM php:7.4-apache 7.4-apache: Pulling from lib ... Successfully built 0d0d3399bd52 Successfully tagged apache-joan:latest
Ja podem arrencar el docker:
$ docker run -p 8080:80 apache-joan
I ja funciona:
Millor arrencar el docker en mode deamon:
$ docker run -p 8080:80 -d apache-joan 7fd7257f5a77bfd8d39a837ec99a28082486bc30301ceb4ef4fe7e19dad88895
Efectivament està arrencat i funciona:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7fd7257f5a77 apache-joan "docker-php-entrypoi…" 56 seconds ago Up 56 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp vibrant_herschel
Per aturar-lo quan ja no el necessitem:
$ docker stop 7fd7257f5a77
Ja no el veiem fent docker ps, però sí que el veiem fent docker ps -a.
I per tornar-lo a arrencar:
$ docker start 7fd7257f5a77
Instal·lació Python
- python3 - interactive high-level object-oriented language (default python3 vers
- python3.9 - Interactive high-level object-oriented language (version 3.9)
No cal instal·lar Python, ja ve instal·lat per defecte:
$ python3 --version Python 3.9.7
Llibreries numèriques
- python3-numpy - Fast array facility to the Python 3 language
- python3-matplotlib - Python based plotting system in a style similar to Matlab (Python 3)
- python3-scipy - scientific tools for Python 3
- python3-sympy - Computer Algebra System (CAS) in Python (Python 3)
$ sudo apt-get install python3-numpy $ sudo apt-get install python3-matplotlib $ sudo apt-get install python3-scipy $ sudo apt-get install python3-sympy
Exemple:
import numpy as np
import sympy as sp
from sympy.abc import t
from sympy import exp
import matplotlib.pyplot as plt
from scipy import constants
print(constants.pi)
x = sp.symbols('x')
y = sp.Function('y')
# y'' + 3y' - 10y = 5t^2
print('Exemple: y\'\' + 3y\' - 10y = 5t^2')
y1 = sp.dsolve(y(t).diff(t,t) + 3*y(t).diff(t) - 10*y(t) - 5*t**2, y(t))
print(y1) # Eq(y(t), C1*exp(-5*t) + C2*exp(2*t) - t**2/2 - 3*t/10 - 19/100)
print("que és la solució que hem trobat a EDO2-45")
# y'' - y' - 6y = 10exp(3t)
print('\nExemple: y\'\' - y\' - 6y = 10*exp(3t)')
y1 = sp.dsolve(y(t).diff(t,t) - y(t).diff(t) - 6*y(t) - 10*exp(3*t), y(t))
print(y1) # Eq(y(t), C2*exp(-2*t) + (C1 + 2*t)*exp(3*t))
Mòdul MySQL
- python3-mysql.connector - pure Python implementation of MySQL Client/Server protocol (Python3)
$ sudo apt-get install python3-mysql.connector
Exemple mínim exemple_minim.py:
import mysql.connector
cnx = mysql.connector.connect(host='localhost',user='joan', password='******', database='joan')
cursor = cnx.cursor()
query = ("SELECT * FROM PROVA")
cursor.execute(query)
for (id, nom) in cursor:
print("{}, {}".format(id,nom))
cursor.close()
cnx.close()
$ python3 exemple_minim.py
Python Flask (Python per fer aplicacions web)
Instal·lem el mòdul:
- python3-flask - micro web framework based on Werkzeug and Jinja2 - Python 3.x
sudo apt-get install python3-flask
Seguint ell tutorial, el script mínim és:
script hello.py:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
I per tal d'arrencar el servei: <pre> $ export FLASK_APP=hello $ flask run * Running on http://127.0.0.1:5000/
I l'aplicació la podríem veure a:
(efectivament si fem $ wget http://127.0.0.1:5000/ funciona)
Però en el servidor hem de fer: $ flask run -h vps-89148e22.vps.ovh.net
i millor utilitzar la IP:
Però per tal de què funcioni s'ha d'obrir el port 5000 en el servidor OVH. Està documentat a:
Resumint:
- Hem d'anar a la secció IP.
- Crear Firewall
- Hem creat el Firewall, i d'entrada està desactivat.
- Ara hem d'anar a primer a Activar el Firewall; i després a Configurar el Firewall.
- Afegir una regla: 0 és la primera regla a aplicar; autoritzem el port 5000; TCP
En comptes d'utilitzar el nom de domini vps-89148e22.vps.ovh.net, utilitzem la IP: 5.196.26.105. I ja funciona:
Ara que veiem que funciona, tornem a treure la regla i desactivar el firewall.
creat per Joan Quintana Compte, març 2022