Una pila FEMP, que és comparable a una pila LEMP a Linux, és una col·lecció de programari de codi obert que normalment s'instal·la conjuntament per permetre que un servidor FreeBSD allotgi llocs web i aplicacions web dinàmiques. FEMP és un acrònim que significa FreeBSD, Nginx, MySQL i PHP.
En aquesta guia, desplegarem elements d'una pila FEMP en una instància de FreeBSD 12.0 Vultr mitjançant pkg, el gestor de paquets FreeBSD.
Requisits
Abans de començar aquesta guia, necessitareu el següent:
- Un FreeBSD 12.0 VPS.
- Un usuari amb privilegis root o
sudousuari per fer canvis de configuració.
- Es recomana una familiaritat bàsica amb el sistema FreeBSD i la interfície de línia d'ordres.
Abans que comencis
Comproveu la versió de FreeBSD.
uname -ro # FreeBSD 12.0-RELEASE-p6
Assegureu-vos que el vostre sistema FreeBSD estigui actualitzat.
freebsd-update fetch install pkg update && pkg upgrade -y
Instal·leu els paquets necessaris.
pkg install -y sudo vim bash curl
Creeu un compte d'usuari nou amb el vostre nom d'usuari preferit. Fem servir johndoe.
adduser # Username: johndoe # Full name: John Doe # Uid (Leave empty for default): <Enter> # Login group [johndoe]: <Enter> # Login group is johndoe. Invite johndoe into other groups? []: wheel # Login class [default]: <Enter> # Shell (sh csh tcsh nologin) [sh]: bash # Home directory [/home/johndoe]: <Enter> # Home directory permissions (Leave empty for default): <Enter> # Use password-based authentication? [yes]: <Enter> # Use an empty password? (yes/no) [no]: <Enter> # Use a random password? (yes/no) [no]: <Enter> # Enter password: your_secure_password # Enter password again: your_secure_password # Lock out the account after creation? [no]: <Enter> # OK? (yes/no): yes # Add another user? (yes/no): no # Goodbye!
Executeu l' visudoordre i descomenteu la %wheel ALL=(ALL) ALLlínia, per permetre que els membres del wheelgrup executin qualsevol ordre.
visudo # Uncomment by removing hash (#) sign # %wheel ALL=(ALL) ALL
Ara, canvieu al vostre nou usuari creat amb su:
su - johndoe
NOTA: Substituïu-lo johndoepel vostre nom d'usuari.
Configura la zona horària:
sudo tzsetup
Instal·lació de la línia principal Nginx
Podeu instal·lar Nginx mitjançant el gestor de paquets de FreeBSD, pkg. Un gestor de paquets us permet instal·lar la majoria del programari sense esforç des d'un repositori mantingut per FreeBSD. Podeu obtenir més informació sobre com utilitzar-lo pkgaquí .
Per instal·lar la darrera línia principal Nginx, emeteu l'ordre següent:
sudo pkg install -y nginx-devel
Comproveu la versió:
nginx -v # nginx version: nginx/1.17.1
Aquesta ordre instal·larà la darrera versió principal, que es pot utilitzar de manera fiable en un servidor de producció. Si voleu instal·lar la darrera versió estable, només cal que utilitzeu nginxpaquet en comptes de nginx-devel.
Ara, activeu i inicieu Nginx:
sudo sysrc nginx_enable=yes sudo service nginx start
Per comprovar que Nginx s'ha iniciat, podeu executar l'ordre següent:
sudo service nginx status
Com a resultat, veureu alguna cosa semblant al següent:
# Output nginx is running as pid 17607.
Podeu verificar que Nginx s'ha instal·lat i funciona sense errors visitant l'adreça IP pública del vostre servidor al vostre navegador web. Navega a your_server_IP. Veureu l'opció predeterminada "Benvingut a nginx!" pàgina.
Instal·lant MySQL
De nou, podeu utilitzar-lo pkgper obtenir i instal·lar el vostre programari.
Instal·leu MySQL mitjançant pkg:
sudo pkg install -y mysql80-client mysql80-server
Comproveu la versió:
mysql --version # mysql Ver 8.0.16 for FreeBSD12.0 on amd64 (Source distribution)
Ara, activeu i inicieu MySQL:
sudo sysrc mysql_enable=yes sudo service mysql-server start
Per comprovar que MySQL s'ha iniciat, podeu executar l'ordre següent:
sudo service mysql-server status
Veureu alguna cosa semblant al següent:
# Output mysql is running as pid 19066.
Com a bona pràctica, hauríeu d'executar l' mysql_secure_installationscript de seguretat que eliminarà alguns valors predeterminats insegurs i limitarà lleugerament l'accés al vostre sistema de base de dades.
sudo mysql_secure_installation
Se us demanarà que establiu una contrasenya, seguida d'altres preguntes. Introduïu una contrasenya segura i, a continuació, per a la resta de preguntes, premeu ENTERper seleccionar els valors predeterminats.
Instal·lació de PHP 7.3
Per instal·lar PHP 7.3amb pkg, executeu aquesta comanda:
sudo pkg install -y php73
Comproveu la versió.
php --version # PHP 7.3.7 (cli) (built: Jul 18 2019 01:14:37) ( NTS ) # Copyright (c) 1997-2018 The PHP Group # Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
Enllaç suau php.ini-productiona php.ini.
sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Ara, activeu i inicieu PHP-FPM:
sudo sysrc php_fpm_enable=yes sudo service php-fpm start
Per comprovar que PHP-FPM s'ha iniciat, podeu executar l'ordre següent:
sudo service php-fpm status
Com a resultat, veureu alguna cosa semblant:
# Output php_fpm is running as pid 23005.
Instal·lació de mòduls PHP (opcional)
Per millorar la funcionalitat de PHP, podeu instal·lar opcionalment alguns mòduls addicionals.
Per veure'ls compilats actualment en mòduls PHP, podeu executar això:
php -m # [PHP Modules] # Core # date # libxml # mysqlnd # pcre # Reflection # SPL # standard # [Zend Modules]
Per cercar mòduls PHP disponibles, podeu utilitzar aquesta ordre:
pkg search ^php73-*
Els resultats seran principalment mòduls PHP 7.3 que podeu instal·lar:
# Output # php73-7.3.7 PHP Scripting Language # php73-Ice37-3.7.2 Modern alternative to object middleware such as CORBA/COM/DCOM/COM+ # php73-aphpbreakdown-2.2.2 Code-Analyzer for PHP for Compatibility Check-UP # php73-aphpunit-1.8 Testing framework for unit tests # php73-bcmath-7.3.7 The bcmath shared extension for php # php73-brotli-0.7.0 Brotli extension for PHP # php73-bsdconv-11.5.0 PHP wrapper for bsdconv # php73-bz2-7.3.7 The bz2 shared extension for php # php73-calendar-7.3.7 The calendar shared extension for php # php73-composer-1.8.6 Dependency Manager for PHP # php73-ctype-7.3.7 The ctype shared extension for php # php73-curl-7.3.7 The curl shared extension for php # . . .
Si, després d'investigar, decidiu que necessiteu instal·lar un paquet, podeu fer-ho mitjançant l' pkg installordre. La majoria de les aplicacions web PHP requeriran mòduls addicionals, així que és bo saber com cercar-los.
Configuració de Nginx per utilitzar el mòdul PHP
Abans d'utilitzar PHP, heu de configurar-lo perquè funcioni amb Nginx.
Executeu sudo vim /usr/local/etc/nginx/test.confi ompliu el fitxer amb el contingut següent:
server { listen 80; server_name SERVER_IP; # Replace with your IP or hostname root /usr/local/www/nginx-dist; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Deseu el fitxer i sortiu amb :+ W+Q
Ara hem d'incloure test.confal nginx.conffitxer principal . El fitxer de configuració principal de Nginx viu /usr/local/etc/nginxcom a nginx.conf.
Executeu sudo vim /usr/local/etc/nginx/nginx.confper obrir el fitxer de configuració principal a Vim i afegiu la línia següent al http {}bloc.
include test.conf;
Prova la configuració de Nginx:
sudo nginx -t
Com que heu fet canvis de configuració a Nginx, heu de tornar a carregar el servei perquè s'apliquin. En cas contrari, Nginx encara funcionarà amb la configuració anterior.
sudo service nginx reload
Prova de processament PHP
Per comprovar que el vostre sistema està configurat correctament per a PHP, podeu crear un script PHP molt bàsic. Anomenaràs aquest guió info.php. De manera predeterminada, roots'estableix en /usr/local/www/nginx-dist. Podeu crear el info.phpfitxer a aquesta ubicació:
sudo vim /usr/local/www/nginx-dist/info.php
Afegiu aquest codi a aquest fitxer:
<?php phpinfo(); ?>
Navegueu fins http://your_server_IP/ìnfo.phpi veureu la pàgina següent:

Després de la instal·lació i la configuració, hauríeu d'eliminar el info.phpfitxer per evitar revelar informació sobre el servidor al públic.
sudo rm /usr/local/www/nginx-dist/info.php
Conclusió
Enhorabona, heu instal·lat correctament una pila FEMP al vostre VPS FreeBSD 12.0. Ara teniu diverses opcions per saber què fer a continuació. Heu instal·lat una plataforma que us permetrà instal·lar la majoria de tipus de llocs web i programari web a sobre.