Instalar Dependencias
sudo apt-get update
apt-get install nginx php8.1-fpm mariadb-server php8.1 php8.1-common php8.1-mbstring php8.1-xmlrpc php8.1-soap php8.1-mysql php8.1-gd php8.1-xml php8.1-curl php8.1-cli php8.1-zip php8.1-tokenizer wget unzip curl git -y
Atencion, al estar usando PHP hay que tener en cuenta que se debe cambiar la version de los paquetes haciendo un search and replace, reemplazando 8.1 por la nueva version X.X
Instalar Composer
sudo curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Preparar el Entorno
cd /var/www/html/
rm *
chown www-data:www-data /var/www/html/
Instalar Flarum
sudo -u www-data composer create-project flarum/flarum . --stability=beta
Crear Base de Datos
Loguearse al Mysql/Mariadb
usuario@flarum:~$ sudo mysql
MariaDB [(none)]>
Crear DB y el Usuario
CREATE DATABASE flarum_db;
CREATE USER 'flarum_user'@'localhost' IDENTIFIED BY 'COMPLETAR_CONTRASEÑA';
GRANT ALL PRIVILEGES ON flarum_db. * TO 'flarum_user'@'localhost';
FLUSH PRIVILEGES;
exit;
Se debe generar una contraseña y reemplazar COMPLETAR_CONTRASEÑA, tambien es muy recomendable cambiar el usuario y el nombre de la base de datos del tutorial, son datos publicos no deben usarse en un entorno productivo. (flarum_user & flarum_db)
Configurar Virtual Host Nginx
Despublicar el sitio default
rm /etc/nginx/sites-enabled/default
Crear archivo nuevo
touch /etc/nginx/sites-available/flarum
Contenido del archivo:
server {
listen 80;
listen [::]:80;
root /var/www/html/public/ ;
index index.php index.html index.htm;
server_name sitioejemplo.com;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\. {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
log_not_found off;
access_log off;
allow all;
}
include /var/www/html/.nginx.conf;
}
NOTA: El archivo de ejemplo de nginx habilita unicamente el puerto 80 sin SSL, es muy recomendable aplicar certificados internos tambien en las redes internas dado que es recomendado que todo el trafico este cifrado, tambien se debera reconfigurar una redireccion para los ingresos por el puerto 80
Habilitar Virtual Host en Nginx
ln -s /etc/nginx/sites-available/matiasba /etc/nginx/sites-enabled/
Probar y Reiniciar Nginx
usuario@flarum:~$ sudo nginx -t
usuario@flarum:~$ sudo service nginx restart
Anexo 1, Fix permisos carpetas SELinux
Si tiene problemas con el usuario www-data no puede crear carpetas dentro del proyecto, no haga la locura de poner 777 😏, es un problema de SELINUX y se soluciona agregando permisos para la carpeta /var/www/html
chcon -R -t httpd_sys_rw_content_t include /var/www/html
Anexo 2 Modulos
Dado que el usuario que instalo el sistema es el www-data, siempre que se requiera realizar acciones con composer se debe usar exclusivamente el usuario www-data, para correr comandos como otro usuario puede usar sudo -u www-data COMADO
cd /var/www/html/
sudo -u www-data composer require fof/oauth
sudo -u www-data composer require fof/drafts:"*"
sudo -u www-data composer require fof/user-bio:"*"~
sudo -u www-data composer require fof/user-bio:"*"
sudo -u www-data composer require fof/links
sudo -u www-data composer require fof/pages
sudo -u www-data composer require fof/profile-image-crop:"*"
sudo -u www-data composer require fof/nightmode:"*"
sudo -u www-data composer require fof/nightmode:"*"
sudo -u www-data composer require fof/socialprofile
sudo -u www-data composer require flarum-lang/spanish
sudo -u www-data composer require fof/masquerade
Para ver todas las extensiones https://discuss.flarum.org/t/extensions
Trucos manuales
Agregar al footer general para al recargar la pagina se vuelva a ver el "welcome box" si fue cerrado
<script>window.localStorage.removeItem('welcomeHidden');</script>
Actualizar
Desde el directorio root del webservice
sudo -u www-data composer update --prefer-dist --no-plugins --no-dev -a --with-all-dependencies
sudo -u www-data php flarum migrate
sudo -u www-data php flarum cache:clear