Des de fa anys tinc diversos projectes en màquines virtuals OpenBSD perquè és molt més còmode de mantindre, és molt robust, estable i modern per a treballar amb Nginx, MariaDB i distintes versions de PHP, entre altres coses.
La primera part, que no és l'objectiu d'aquest article, és la instal·lació d'OpenBSD 7.1 a una màquina virtual VirtualBox. Jo he fet una instal·lació completa prou estàndard agafant la configuració bridge de VirtualBox per a la xarxa, i així queda al final:
La única diferència que he fet del que fa la instal·lació per defecte està en la part del particionament. La màquina que tenia fins ara tenia el particionat per defecte d'OpenBSD, on el sistema li dona més espai al filesystem /home i la partició /var on està l'arrel d'Nginx amb tots els projectes web, estava ja al 95% d'espai ple. I havia pensat preparar-me una nova màquina de 100 GB per ho paticionaria manualment i nomès una única partici que munte el directori arrel "/", així tindré tot l'espai que vull per als meus projectes. I quda així:
Aleshores, ara mateix tinc dues màquines: la màquina OpenBSD antiga amb el filesystem /var al 95% i aquesta nova màquina OpenBSD amb 100 GB preparada:
I ara caldrà arrencar la màquina antiga perquè haurem de copiar fitxers de configuració, copiar els projectes web, exportar totes les bases de dades, etc. Aleshores la fiquem en marxa:
I ara em preguntava a mi mateix si no petaria el meu portàtil Lenovo Thinkpad x250, que sempre m'els compre de segona mà, i he volgut mirar la memòria i càrrega de les CPUs per analitzar si estava a punt d'explotar o no, i podem veure-ho amb la utilitat d'Ubuntu "Monitor del Sistema" i la veritat és que per a estar corrent un Ubuntu 22.04 i dues màquines virtuals OpenBSD al mateix temps, veig que un processador funcionen entre un 48% i un 64%, i la memòria al 85%, però res preocupant, sobre tot la part de càrrega de les CPUs.
I la memòria RAM és perquè li configure 4GB de RAM a cada màquina virtual, però en realitat una vegada configuraré el nou servidor ja no serà necessària la màquina antiga i l'apagaré, per tant alliberaré la meitat de RAM que veus actualment.
Ara, amb les dues màquines funcionant, començarem a preparar el nou servidor de desenvolupament. La idea és instal·lar un servidor web Nginx, un servidor de bases de dades MariaDB, amb totes les llibreries i configuracions necessàries per a, finalment, poder tenir projectes Drupal 9 funcionant sense problemes.
INSTAL·LACIÓ I CONFIGURACIÓ DEL SERVIDOR WEB
Instal·larem el servidor web ngin amb:
doas pkg_add -vi nginx
A continuació, instal·larem el PHP 7.4 de la següent manera (es pot instal·lar distintes versions de PHP i configurar projectes que apunten a distintes versions, però jo nomès necessite la 7.4):
doas pkg_add -vi php-7.4.29 php-curl-74.29 php-gd-7.4.29 php-pdo_mysql-7.4.29
Ara, si tot ha anat bé, llistarem el directori de mòduls i veurem que els tenim instal·lats perfectament:
# ls /usr/local/lib/php-7.4/modules/
curl.so gd.so opcache.so pdo_mysql.so
#
Haurem de configurar el fitxer de PHP i dir-li que active estos mòduls. Editarem /etc/php-7.4.ini i el deixarem així en la part de les extensions dels mòduls instal·lats:
;extension=bz2
extension=curl
;extension=ffi
;extension=ftp
;extension=fileinfo
extension=gd
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
;extension=mbstring
;extension=exif ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=shmop
Ara copiarem el fitxer de configuració de l'Nginx de la màquina antiga a la nova amb:
scp /etc/nginx/nginx.conf joan@maquina_nova:/tmp/.
Reiniciem el servei PHP i Nginx:
openbsd100$ doas /etc/rc.d/php74_fpm restart
php74_fpm(ok)
php74_fpm(ok)
openbsd100$ doas /etc/rc.d/nginx restart
nginx(ok)
nginx(ok)
INSTAL·LACIÓ I CONFIGURACIÓ DEL SERVIDOR DE BASES DE DADES
I instal·larem el servidor de bases de dades MariaDB amb:
doas pkg_add -vi maridb-server mariadb-client
I per acabar amb la configuració del servidor de bases de dades, et comentaré que de moment nomès podràs accedir des de la pròpia màquina on està instal·lat MariaDB, ja que per defecte hi ha un bloqueig dels accesos i MySQL/MariaDB nomès deixa fer consultes a les bases de dades des de la IP 127.0.0.1, aleshores haurem de modificar aquest bloqueig i obrir MariaDB per a que qualsevol persona des de qualsevol IP puga anar fullejant les pàgines del gestor de continguts Drupal albergat al MariaDB.
Editarem /etc/my.cnf i modifiquem el paràmetre que diu bind-address = 127.0.0.1 i deixarem:
bind-address = *
També en aquest fitxer /etc/my.cnf anem a donar-li més memòria al servei mysqld, i li donarem 64, enlloc de nomès 1Mb:
max_allowed_packet = 64M
I ara finalment per tenir enllestits tant els serveis de servidor web i de servidor de bases de dades, modificarem /etc/rc.conf.local per a que ens arranque els serveis:
nginx_flags=""
pkg_scripts=nginx php74_fpm mysqld
INSTAL·LACIÓ DE PROGRAMARI ADDICIONAL
Si ara reiniciem, podrem comprovar que ja està funcionant.
A continuació, instal·larem algunes utilitats addicionals:
doas pkg_add -vi neofetch curl wget lynx
Configurarem el doas propi d'OpenBSD per tal de poder executar aplicacions del superusuari sense necessitat de contrasenya. Aleshores, editarem /etc/doas.conf i afegirem:
permit :wheel
permit nopass joan
MIGRACIÓ DE PROJECTES WEB
Ara em passe tots els projectes web que tinc a /var/www en el servidor antic i m'ho passe comprimit al servidor nou al vol:
tar cvfz - * | ssh joan@192.168.1.135 "cat > /tmp/tot.tar.gz"
I ara, a la màquina nova descomprimiré amb:
mv /tmp/tot.tar.gz /var/www/.
cd /var/www
tar xvfz tot.tar.gz
Ara reiniciarem la màquina en aquest punt en el que ens trobem, i anem a configurar ja les bases de dades de Drupal. Aleshores, primer configurarem MariaDB i li assignarem contrasenya a l'administrador, que ser l'usuari qui crearà noves bases de dades, usuaris i còpies de segureitat. Aleshores, primer farem:
doas mysql_install_db
Installing MariaDB/MySQL system tables in '/var/mysql' ...
A continuació arranquem el servidor MariaDB amb:
doas rcctl start mysqld
mysqld(ok)
I ara li donarem una contrasenya a l'usuari administrador, tant des de la màquina com especificant el servidor:
doas mysqladmin --user=root password 'LA_TEUA_CONTRASENYA'
doas mysqladmin -h localhost --user=root password 'LA_TEUA_CONTRASENYA'
I ja podem començar a exportar les bases de dades en la màquina antiga, crear les bases de dades en la nova i importar-les. I una vegada acabem este procés, ja tindrem el sistema idèntic a la màquina anterior.
Exportem les bases de dades de la màquina antiga amb:
doas mysqldump -h localhost -u root -p base_1_db > base_1_db.sql
doas mysqldump -h localhost -u root -p base_2_db > base_2_db.sql
doas mysqldump -h localhost -u root -p base_3_db > base_3_db.sql
doas mysqldump -h localhost -u root -p base_4_db > base_4_db.sql
doas mysqldump -h localhost -u root -p base_5_db > base_5_db.sql
I ara, a la nova màquina de 100GB, crearem les bases de dades i l'usuari amb privilegis totals per a les taules de la base de dades de la segúent manera:
CREATE DATABASE base_1_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
#.
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON base_1_db.* TO 'el_teu_usuari'@'localhost' IDENTIFIED BY 'la_contrasenya';
#.
FLUSH PRIVILEGES;
ARTICLES RELACIONATS:
- Instal·lant Drupal 8 a una màquina virtualitzada VMM OpenBSD 6.6
- Com desenvolupar projectes Drupal des d'OpenBSD allojats a un servidor remot
- Configurant php72_fpm a OpenBSD 6.5 per a tenir Nginx i Drupal
- Configurant les 'Clean urls' de Drupal 8 amb Nginx a OpenBSD
- Configuració de la xarxa a OpenBSD