Ricerca nel sito web

Come installare lo stack Apache, MariaDB e PHP (FAMP) su FreeBSD


Questa guida descriverà come installare e configurare FBAMP nel sistema operativo FreeBSD, che è simile a uno stack LAMP su Linux. FBAMP è un acronimo che indica una raccolta di software basata sul sistema operativo FreeBSD, il server Apache HTTP, il server web open source più popolare in Internet, MariaDB< sistema di gestione di database relazionali (RDBMS), un fork del motore di database MySQL e lato server PHP.

Requisiti

  1. Una nuova installazione di FreeBSD
  2. Configurazioni iniziali di FreeBSD
  3. Accesso diretto alla console o SSH in caso di connessione remota a FreeBSD.
  4. Un indirizzo IP statico configurato su un'interfaccia di rete.

Passaggio 1: installa Apache su FreeBSD

1. Il primo servizio che installeremo è il server Apache HTTP. Per impostazione predefinita, FreeBSD offre più versioni con diversi moduli di lavoro runtime per il server web Apache.

Le versioni sono precompilate in un pacchetto binario e fornite dai repository FreeBSD PORTS. Per visualizzare tutti i file binari dei pacchetti Apache forniti da PORTS, immetti il comando seguente.

ls /usr/ports/www/ | grep apache

Puoi anche cercare i pacchetti Apache precompilati disponibili su FreeBSD immettendo il comando seguente.

pkg search apache2

2. Successivamente, installa la versione più recente del server HTTP Apache con tutti i moduli richiesti eseguendo il comando seguente.

pkg install apache24

3. Dopo che il server web Apache è stato installato sul sistema, emetti il seguente comando per abilitare il demone a livello di sistema in FreeBSD.

sysrc apache24_enable="yes"

Un metodo alternativo per abilitare il demone Apache sarebbe quello di modificare e aggiungere manualmente la riga apache24_enable="yes" nel file /etc/rc.conf come illustrato nello screenshot seguente.

4. Infine, per verificare se il server web funziona correttamente, avvia il demone Apache emettendo il comando seguente e visita la pagina web predefinita puntando un browser all'indirizzo IP del tuo server FQDN ( http://IP-orFQDN) come mostrato nello screenshot seguente.

service apache24 start

La directory webroot predefinita del server web Apache in FreeBSD 11.x si trova nel percorso di sistema /usr/local/www/apache24/data/. Lì troverai un piccolo file index.html che puoi modificare come preferisci.

Passaggio 2: installa PHP su FreeBSD

5. FreeBSD 11.x offre più versioni del linguaggio lato server interpretato PHP confezionato in binari precompilati. Per ottenere un elenco di tutti i pacchetti di versioni PHP disponibili forniti dai repository di FreeBSD Ports, immetti il seguente comando.

ls /usr/ports/lang/ | grep php

Un metodo alternativo per cercare tutte le versioni disponibili del pacchetto FreeBSD PHP è eseguire il comando seguente.

pkg search -o php

6. Per cercare tutti i binari disponibili forniti da FreeBSD per una specifica versione PHP (5 o 7 versioni attualmente) esegui i comandi seguenti. Utilizza less comando per restringere e navigare nell'output.

pkg search php5 |less
pkg search php7

7. Per essere più specifici su quali moduli fornisce una versione PHP personalizzata, esegui il seguente comando come descritto di seguito, che visualizza tutti i moduli disponibili per la versione PHP 7.1.

pkg search php71

8. In questa guida installeremo la versione PHP 7.1 per il nostro stack FBAMP. Emetti il seguente comando per installare PHP con alcuni dei moduli più importanti richiesti per una tipica installazione CMS.

pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 

9. Successivamente, dobbiamo creare il file di configurazione php.conf per il server web Apache in /usr/local/etc/apache24/Includes/ percorso di sistema con il seguente contenuto.

nano /usr/local/etc/apache24/Includes/php.conf

Aggiungi le seguenti righe al file php.conf.

<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

10. Per verificare se il gateway PHP funziona come previsto con il server web Apache, crea un file PHP info.php in /usr/local/www/ apache24/data/system, che è il percorso root del documento Web predefinito del server Web Apache.

echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

Riavvia il demone Apache per applicare le modifiche.

service apache24 restart

Successivamente, visita il seguente URI in un browser per visualizzare il riepilogo PHP.

http://IP-or-FQDN/info.php 

11. Per attivare il file di configurazione ini PHP per la produzione, eseguire i comandi seguenti. Puoi modificare il file di produzione php.ini per cambiare diverse impostazioni PHP nel tuo stack FBAMP.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Passaggio 3: installa MariaDB su FreeBSD

12. L'ultimo componente mancante per il nostro stack FBAMP è il server database MySQL. FreeBSD 11.x offre più di 1000 pacchetti per diversi database.

Per visualizzare quali componenti sono disponibili per i database MariaDB o MySQL, immetti i seguenti comandi. In questa guida installeremo il database MariaDB su MySQL (che ora è di proprietà e sviluppato attivamente da Oracle).

ls -al /usr/ports/databases/ | grep mariadb
pkg search -o mariadb
ls -al /usr/ports/databases/ | grep mysql
pkg search -o mysql5

13. In questa guida installeremo l'ultima versione del server database MariaDB in FreeBSD, che attualmente è rappresentata dal rilascio del pacchetto binario mariadb102.

Esegui il seguente comando per installare il server e client MariaDB e il modulo PHP 7.1 richiesto per accedere al database tramite il gateway del server Apache.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Successivamente, abilita il server MariaDB a livello di sistema e avvia il demone del database eseguendo i seguenti comandi.

sysrc mysql_enable="yes" 
service mysql-server start

15. Per proteggere il database esegui mysql_secure_installation scrip. Utilizza l'estratto di output dello script seguente per rafforzare MariaDB.

/usr/local/bin/mysql_secure_installation
Uscita del campione

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

16. Per impostazione predefinita, il demone MariaDB ascolta le connessioni di rete esterne all'host locale sulla porta 3306/TCP. Esegui il comando netstat, lsof o sockstat per ottenere lo stato del socket MariaDB. Questa configurazione è pericolosa ed espone il servizio ad attacchi di rete esterni.

lsof -i4 -i6
sockstat -4 -6

17. Se non hai bisogno dell'accesso remoto a MariaDB, assicurati che il demone MariaDB ascolti solo localhost, emettendo il comando seguente. Successivamente, riavvia il servizio MariaDB per applicare le modifiche.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart
or
/usr/local/etc/rc.d/mysql-server restart

18. Ancora una volta, esegui il comando netstat, lsof o sockstat per elencare i socket di rete MariaDB. Il socket dovrebbe ora collegarsi e restare in ascolto su localhost, come illustrato nell'immagine seguente.

lsof -i4 | grep mysql
netstat -an | grep 3306
sockstat -4 | grep 3306

19. Per testare la connettività del database MariaDB dalla console, eseguire il seguente comando. Inserisci la password root di MySQL nel prompt e un elenco di database predefiniti dovrebbe essere visualizzato nella schermata della console come illustrato nell'immagine seguente.

mysql -u root -p -e "show databases"

È tutto! Hai installato con successo il server web Apache con il database MariaDB e l'interprete PHP in FreeBSD. Ora puoi iniziare a distribuire un sito Web WordPress in pochissimo tempo.

Nel prossimo tutorial discuteremo alcuni argomenti avanzati di FPBAMP, ad esempio come abilitare e creare host virtuali Apache, abilitare il modulo di riscrittura richiesto dal file .htaccess per funzionare correttamente e come proteggere le connessioni Apache utilizzando un Certificato autofirmato o certificato gratuito offerto dall'entità Let's Encrypt.