ubuntu server 18.04Apache és el servidor web més popular, mentre que Nginx és més nou. A partir del 2018, Apache s'utilitza en el 47% dels servidors web i Nginx no queda molt enrere amb un 37%. Pot ser que en 2020, si continuen les tendències, Nginx siga el més popular. Tingueu en compte que si utilitzeu Nginx, hi ha bastants diferències en la configuració dels Hosts virtuals. A més, Nginx no interpreta els fitxers .htaccess de la manera que fa Apache. Si esteu acostumats a treballar amb servidors basats en Apache, aneu amb compte amb això. Si teniu pensat fer ús del servidor Apache, esteu en el lloc adequat.

Ubuntu Server 18.04 LTS s'està executant a través d'amfitrions de VPS com DigitalOcean i AWS. En aquesta guia instal·larem una LAMP Stack o Lamp-Server (Apache, MySQL, PHP) i configurarem un servidor web.

El terme LAMP és un acrònim que s'origina a finals del 2000 a Alemanya per descriure la plataforma, sobre la qual funcionen les aplicacions web creades utilitzant la següent combinació d'eines:

  • Linux, el sistema operatiu.
  • Apache, el servidor web.
  • MySQL, el servidor de bases de dades.
  • Perl, PHP, o Python, llenguatges de programació.

L'altra opció que sovint apareix en la publicitat dels proveïdors d'hospedatge web és WAMP, que és la plataforma equivalent a Windows.

 

Instal·lar Lamp-Server

Per instal·lar fàcilment la pila Lamp Server, podeu utilitzar tasksel que podeu instal·lar obrint un terminal (ctrl+alt+t) i fer-ho amb l'ordre'sudo apt-get install tasksel' (al meu cas jo ja el tinc instal·lat per defecte):

sudo apt-get install tasksel

Per sabre que grups de paquets podem instal·lar haurem d'executar el següent (a la llista veurem la lletra 'u' com a grup de paquets disponibles i la lletra 'i' com a grup de paquets instal·lats):

joan@server-roig:~$ tasksel --list-tasks

Després d'això es fa la crida de 'tasksel' amb els drets de sudo:

sudo tasksel

Nota: El que us mostrarà una finestra, mou el selector a l'entrada 'LAMP server' i premem l'espai per marcar-lo, a continuació premeu la pestanya per ressaltar el camp <ok> i premeu Enter . Això comença el procés d'instal·lació.

Segons assenyala Rinzwind, les tasques no són necessàriament necessàries per fer la instal·lació del servidor-lamp, també podeu fer-ho simplement introduint: 'sudo apt-get install lamp-server^', El '^' és essencial ací. També amb 'sudo tasksel install lamp-server':

joan@server-roig:~$ sudo tasksel install lamp-server

Nota: Durant la instal·lació haurà instal·lat la base de dades (MySQL), a diferència d'altres versions d'Ubuntu, ací no demanara la contrasenya del súper usuari (root) per accedir al servidor de bases de dades MySQL.

Ara des d'un altre ordinador que tinguem connectat a la nostra xarxa d'àrea local, comprovem, que el nostre servidor web funciona, utilitzant un navegador i introduint la IP fixa del nostre servidor web, en el cas d'aquesta guia 'http://192.168.1.3/' i veurem, la pàgina per defecte (arxiu index.html) que ens ofereix el servidor web Apache per assegurar-nos que tot anat bé.

Al nostre disc dur, aquesta pàgina per defecte es troba a '/var/www/html/', açò vol dir que tot el que siga dins d'aquest directori, pot ser vist via web amb només posar la nostra IP fixa.

 

Instal·lant Apache, MySQL, PHP - (LAMP Stack)

Si ho prefereixen, poden instal·lar la combinació d'eines de la Pila LAMP o Lamp-Server, una a una per separat:

1.- Instal·leu l'Apache

Començarem actualitzant les llistes de paquets i instal·larem Apache. A continuació tenim dos comandaments separats per &&, el primer comandament actualitzarà les llistes de paquets per garantir que obtingueu l'última versió i dependències d'Apache, el segon comandament descarregarà i instal·larà Apache. Premeu S i ENTER quan se us demani que continueu.

joan@server-roig:~$ sudo apt update && sudo apt install apache2

La instal·lació pot trigar uns quants minuts. Un cop instal·lat, continueu al pas 2 per configurar el tallafoc.

 

2. Configurar el tallafoc (fireway)

Es recomana configurar un fireway al servidor per a una major seguretat. Començarem afegint una regla de tallafoc per a SSH, perquè si esteu configurant el vostre servidor de manera remota, és possible que ús desconnecte quan activeu el tallafoc. És possible que ja hàgeu fet això a la configuració del servidor inicial, però no hi ha cap problema en afegint-lo de nou, per si de cas. Si la regla ja existeix, la comanda només saltarà:

joan@server-roig:~$ sudo ufw allow OpenSSH


Ara podem afegir les regles del tallafocs per a Apache:

joan@server-roig:~$ sudo ufw allow in "Apache Full"

Ara habiliteu el firewall si encara no ho està:

joan@server-roig:~$ sudo ufw enable

Premeu 's' si veieu un missatge com aquest, "El comandament pot interrompre les connexions ssh existents".

Si el tallafoc s'ha activat correctament, hauríeu de veure "El tallafoc està actiu i activat a l'inici del sistema".

També podeu consultar l'estat de tallafocs actual amb:

joan@server-roig:~$ sudo ufw status
Estado: activo

Hasta                     Acción        Desde
-----                        ------           -----
OpenSSH               ALLOW      Anywhere                 
Apache Full            ALLOW      Anywhere                 
OpenSSH (v6)        ALLOW      Anywhere (v6)            
Apache Full (v6)     ALLOW      Anywhere (v6)        

A sobre, podem veure que el servidor de seguretat està actiu i té dues regles per servei. Aquest és el nou protocol d'Internet, que es va introduir per tractar el problema de l'esgotament de l'adreça IPv4 a llarg termini.

 

3. Prova Apache

Per veure si Apache està instal·lat correctament, podem comprovar l'estat actual del servei Apache.

joan@server-roig:~$ sudo service apache2 status
apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Sat 2019-01-12 14:09:22 CET; 1 day 3h ago
  Process: 18530 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
  Process: 837 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 909 (apache2)
    Tasks: 11 (limit: 3529)
   CGroup: /system.slice/apache2.service
           ├─  909 /usr/sbin/apache2 -k start
           ├─18538 /usr/sbin/apache2 -k start
           ├─18539 /usr/sbin/apache2 -k start
           ├─18541 /usr/sbin/apache2 -k start
           ├─18543 /usr/sbin/apache2 -k start
           ├─19235 /usr/sbin/apache2 -k start
           ├─24624 /usr/sbin/apache2 -k start
           ├─28680 /usr/sbin/apache2 -k start
           ├─28683 /usr/sbin/apache2 -k start
           ├─28712 /usr/sbin/apache2 -k start
           └─29003 /usr/sbin/apache2 -k start

ene 12 14:09:21 server-roig systemd[1]: Starting The Apache HTTP Server...
ene 12 14:09:22 server-roig systemd[1]: Started The Apache HTTP Server.
ene 13 06:25:10 server-roig systemd[1]: Reloading The Apache HTTP Server.
ene 13 06:25:10 server-roig systemd[1]: Reloaded The Apache HTTP Server.

Si està en funcionament, hauríeu de veure un estat actiu en verd. Si obteniu l'error sobre un nom de domini complet, podeu ignorar-lo. És possible que hàgiu de prémer q per sortir de l'estat del servidor.

Ara que el servei d'Apache està en funcionament, hauríeu de poder veure la pàgina web d'Apatxe de proves a través del vostre navegador web. Introduïu l'adreça IP del vostre servidor a la barra d'adreces del navegador.

Si no coneixeu la vostra IP, podeu consultar-la executant la següent ordre:

joan@server-roig:~$ sudo ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'
192.168.1.3
joan@server-roig:~$

Estàs tot configurat! Podeu trobar la pàgina d'acollida predeterminada d'Apache a la carpeta '/var/www/html'. Per editar aquest fitxer:

$ sudo nano /var/www/html/index.html

Premeu CTRL + X per sortir de l'editor de text nano.

El vostre servidor web d'Apache està llest! Ara podeu afegir els vostres propis fitxers i imatges en el directori /var/www/html quan vulgueu.

 

4. Instal·leu MySQL

Començarem actualitzant els repositoris i instal·lant el paquet MySQL amb apt. APT (Advanced Package Tool) és l'eina de línia d'ordres utilitzada en Ubuntu 18.04 per interactuar amb el sistema d'embalatge.

Podeu veure a continuació que tenim dues comandes combinades en una amb &&.

joan@server-roig:~$ sudo apt update && sudo apt install mysql-server

Premeu 's' i ENTER quan se us demane instal·lar el paquet MySQL.

Una vegada que l'instal·lador del paquet ha acabat, podem comprovar si el servei MySQL funciona.

joan@server-roig:~$ sudo service mysql status
mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-01-12 14:09:27 CET; 1 day 3h ago
  Process: 913 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, status=0/SUCCESS)
  Process: 826 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 915 (mysqld)
    Tasks: 29 (limit: 3529)
   CGroup: /system.slice/mysql.service
           └─915 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

ene 12 14:09:21 server-roig systemd[1]: Starting MySQL Community Server...
ene 12 14:09:27 server-roig systemd[1]: Started MySQL Community Server.

 

5. Configura la seguretat de MySQL

Ara hauríeu d'executar mysql_secure_installation per configurar la seguretat del vostre servidor MySQL.

$ sudo mysql_secure_installation

Si heu creat una contrasenya de root al pas 1, és possible que se us demani que la introduïu ací. En cas contrari se us demanarà que la creeu. Se us demanarà si voleu configurar el connector Validate Password. No és realment necessari, tret que vulgueu fer complir polítiques estrictes de contrasenya per alguna raó:

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

Premeu ENTER si no voleu configurar el connector de validació de la contrasenya.

Please set the password for root here.

New password:

Re-enter new password:

Si no heu creat una contrasenya de root, ara heu de crear-ne una. Genereu una contrasenya segura i introduïu-la. Tingueu en compte que quan introduïu contrasenyes a Linux, res mostrarà mentre escriviu (sense estrelles ni punts).

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) :

Premeu 'y' i ENTER per treure usuaris anònims.

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? (Press y|Y for Yes, any other key for No) :

Premeu 'y' i ENTER per prohibir l'inici de sessió de root de forma remota. Això evitarà que els robots i els hackers intentin endevinar la contrasenya del root.

By default, MySQL 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? (Press y|Y for Yes, any other key for No) :

Premeu 'y' i ENTER per eliminar la base de dades de prova.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) :

Premeu y i ENTER per tornar a carregar les taules de privilegis.

Tot fet! Heu instal·lat i configurat MySQL!

 

6. Instal·leu PHP

Començarem actualitzant els repositoris i instal·lant el paquet PHP amb apt . També instal·larem dos paquets més libapache2-mod-php i php-mysql, que permetran que PHP es comuniqui amb la base de dades MySQL.

joan@server-roig:~$ sudo apt update && sudo apt install php libapache2-mod-php php-mysql

Premeu 'S' i ENTER quan se us demani instal·lar el paquet PHP.

 

7. Prova PHP

Un cop finalitzada la instal·lació del paquet, podem provar PHP a la línia d'ordres.

joan@server-roig:~$ php -version

Si PHP s'ha instal·lat correctament, hauríeu de veure alguna cosa semblant a continuació:

PHP 7.2.3-1ubuntu1 (cli) (built: Mar 14 2018 22:03:58) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.3-1ubuntu1, Copyright (c) 1999-2018, by Zend Technologies

Genial Ara, anem a provar PHP. Creeu un nou fitxer anomenat info.php al directori arrel del document. L'arrel defecte a l'Ubuntu 18.04 és a '/var/www/html/': En aquest exemple, crearem un nou fitxer a /var/www/html/:

$ sudo nano /var/www/html/info.php

Una vegada que l'editor nano s'ha obert, enganxeu-lo al següent codi PHP (Si feu servir PuTTY, feu clic al botó dret del ratolí per enganxar):

<?php
phpinfo();

Desa el fitxer i surt. (Premeu 'CTRL+X', premeu 's' i, a continuació, premeu 'ENTER'). Ara podem carregar aquest fitxer al navegador, anant a http://example.com/info.php o http://your_ip/info.php.

Nota: Si no coneixeu la vostra IP, la podeu esbrinar amb: $ sudo ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'

A continuació, podem veure que la pàgina d'informació de PHP funciona correctament.

Un cop confirmat que PHP està funcionant correctament, és important eliminar info.php ja que conté informació que podria ser útil per als pirates informàtics:

$ sudo rm /var/www/html/info.php

Felicitacions Heu instal·lat i configurat correctament un LAMP Stack per a l'Ubuntu 18.04.