Flarum Forum installeren met Nginx en LE SSL op CentOS 8
Flarum is gratis, open-source en next-generation forum software die het je gemakkelijker maakt om een succesvolle online gemeenschap te beginnen en te laten groeien. Het is eenvoudige, lichtgewicht, snelle en mobiel-vriendelijke software gebaseerd op PHP. Het komt met een rijke reeks functies waaronder, Elegante gebruikersinterface, Interface met twee vensters, Oneindig scrollen, Zwevende componist, Volledig responsief en nog veel meer.
In deze handleiding leggen we uit hoe je het Flarum forum op CentOS 8 server kunt installeren.
Vereisten
- Een server die CentOS 8 draait.
- Een geldige domeinnaam gericht met het IP van je server
- Een root wachtwoord is op de server ingesteld.
Aan de slag
Voor je begint, moet je EPEL en Remi repository in je systeem installeren. Installeer eerst de EPEL repository met het volgende commando:
dnf install epel-release -y
Download en installeer vervolgens de Remi repository met het volgende commando:
wget http://rpms.remirepo.net/enterprise/remi-release-8.rpm
rpm -Uvh remi-release-8.rpm
Installeer Nginx, MariaDB en PHP
Installeer eerst de Nginx webserver en de MariaDB server met het volgende commando:
dnf install nginx mariadb-server -y
Als beide pakketten geïnstalleerd zijn, moet je de php:remi-7.3 module inschakelen om PHP 7.3 te installeren. Je kunt het inschakelen met het volgende commando:
dnf module enable php:remi-7.3
Installeer vervolgens PHP met andere vereiste afhankelijkheden met het volgende commando:
dnf install php php-fpm php-common php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml -y
Als alle pakketten geïnstalleerd zijn, start je de Nginx, MariaDB en PHP-FPM dienst en schakel je ze in om te starten na herstart van het systeem met het volgende commando:
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpm
Als je klaar bent, kun je verder gaan met de volgende stap.
Configureer de MariaDB Database
MariaDB is standaard niet beveiligd. Je kunt het beveiligen met het volgende script:
mysql_secure_installation
Beantwoord alle vragen zoals hieronder aangegeven:
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Als je klaar bent, log je in op MariaDB shell met het volgende commando:
mysql -u root -p
Geef je root wachtwoord als daarom wordt gevraagd en maak dan een database en gebruiker voor Flarum met het volgende commando:
MariaDB [(none)]> CREATE DATABASE flarumdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES on flarumdb.* to 'flarum'@'localhost' identified by 'password';
Spoel vervolgens de privileges door en verlaat de MariaDB shell met het volgende commando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Als je klaar bent, kun je verder gaan met de volgende stap.
Configureer PHP-FPM voor Nginx
Vervolgens moet je PHP-FPM instellen om met Nginx te werken. Je kunt dat doen door het bestand www.conf te bewerken:
nano /etc/php-fpm.d/www.conf
Verander de gebruikers- en groepsnaam van apache in nginx, zoals hieronder:
user = nginx group = nginx listen.owner = nginx listen.group = nginx
Zoek vervolgens de volgende regel:
;listen = /run/php-fpm/www.sock
En vervang het door de volgende regel:
listen = 127.0.0.1:9000
Sla het bestand op en sluit het als je klaar bent. Herstart dan de PHP-FPM dienst om de veranderingen toe te passen:
systemctl restart php-fpm
Installeer Flarum
Voor je Flarum installeert, moet je Composer in je systeem installeren.
Je kunt het installeren met het volgende commando:
curl -sS https://getcomposer.org/installer | php
Eenmaal geïnstalleerd zou je de volgende uitvoer moeten krijgen:
All settings correct for using Composer Downloading... Composer (version 1.9.2) successfully installed to: /root/composer.phar Use it: php composer.phar
Verplaats vervolgens het binaire bestand Composer naar de map /usr/local/bin en geef de juiste toestemming:
mv composer.phar /usr/local/bin/composer
chmod 755 /usr/local/bin/composer
Verander vervolgens de directory in de Nginx document root en maak een Flarum project met het volgende commando:
cd /var/www/html
composer create-project flarum/flarum . --stability=beta
Geef vervolgens de juiste permissies op de Nginx web root directory met het volgende commando:
chown -R nginx:nginx /var/www/html
chmod -R 755 /var/www/html
chown -R nginx:nginx /var/lib/php
Als je klaar bent, kun je verder gaan met de volgende stap.
Configureer Nginx voor Flarum
Vervolgens moet je een Nginx virtual host configuratiebestand voor Nginx maken. Je kunt het aanmaken met het volgende commando:
nano /etc/nginx/conf.d/flarum.conf
Voeg de volgende regels toe:
server { listen 80; server_name flarum.example.com; # note that these lines are originally from the "location /" block root /var/www/html/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location /api { try_files $uri $uri/ /api.php?$query_string; } location /admin { try_files $uri $uri/ /admin.php?$query_string; } location /flarum { deny all; return 404; } location ~ \.php$ { 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; } location ~* \.html$ { expires -1; } location ~* \.(css|js|gif|jpe?g|png)$ { expires 1M; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } gzip on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 6; gzip_proxied any; gzip_types application/atom+xml application/javascript application/json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css #text/html -- text/html is gzipped by default by nginx text/plain text/xml; gzip_buffers 16 8k; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; }
Sla het bestand op en sluit het als je klaar bent. Vervolgens moet je de hash_bucket grootte vergroten in het bestand nginx.conf.
Je kunt dat doen door het bestand /etc/nginx/nginx.conf te bewerken:
nano /etc/nginx/nginx.conf
Voeg de volgende regel exact boven de laatste regel toe:
server_names_hash_bucket_size 64;
Sla het bestand op en sluit het. Controleer Nginx dan op een syntaxisfout met het volgende commando:
nginx -t
Je zou de volgende uitvoer moeten zien:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Herstart tenslotte de Nginx en PHP-FPM dienst om de veranderingen toe te passen:
systemctl restart php-fpm
systemctl restart nginx
Configureer SELinux en Firewall
Eerst moet je een firewall regel maken om HTTP en HTTPS diensten uit externe netwerken toe te laten. Je kunt dit toestaan met het volgende commando:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Standaard is SELinux ingeschakeld in CentOS 8. Je zult dus SELinux moeten configureren om Flarum correct te laten werken. Je kunt SELinux instellen met het volgende commando:
setsebool httpd_can_network_connect on -P
Als je klaar bent, kun je verder gaan met de volgende stap.
Toegang tot Flarum Web UI
Open nu je web browser en typ de URL http://flarum.example.com. Je wordt doorgestuurd naar de volgende pagina:
Geef je forumnaam, database gegevens, admin gebruikersnaam, wachtwoord op en klik op de knop Installeer Flarum. Als de installatie met succes voltooid is, zou je op de volgende pagina het Flarum dashboard moeten zien:
Beveilig Flarum met Let’s Encrypt SSL
Flarum is nu geïnstalleerd en geconfigureerd. Het is tijd om het te beveiligen met Let’s Encrypt gratis SSL.
Om dat te doen moet je de certbot client op je server downloaden. Je kunt de juiste toestemming downloaden en instellen door het volgende commando uit te voeren:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Voer nu het volgende commando uit om een SSL certificaat voor je flarum website te verkrijgen en te installeren.
certbot-auto --nginx -d flarum.example.com
Het bovenstaande commando installeert eerst alle vereiste afhankelijkheden op je server. Eenmaal geïnstalleerd wordt je gevraagd een e-mailadres op te geven en de servicevoorwaarden te accepteren, zoals hieronder:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for flarum.example.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/flarum.conf
Vervolgens moet je kiezen of je HTTP verkeer al dan niet naar HTTPS wilt omleiden, zoals hieronder:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Typ 2 en druk op Enter om verder te gaan. Als de installatie voltooid is, zou je de volgende uitvoer moeten zien:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/flarum.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://flarum.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=flarum.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/flarum.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/flarum.example.com/privkey.pem Your cert will expire on 2020-03-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Dat is het! Je kunt nu je Flarum website bezoeken met de beveiligde URL https://flarum.example.com.