GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Apache 2 ?

Comment puis-je installer Apache2, php, mysql et le configurer avec des hôtes virtuels et de préférence un certificat SSL Let's Encrypt, puis procéder à l'installation de WordPress ?

Réponse acceptée :

Je suppose que vous avez une installation Ubuntu en cours d'exécution. Ceci est écrit avec 16.04 à l'esprit mais devrait également fonctionner avec quelques adaptations sur d'autres versions.

Dans ces réponses, # désigne un shell racine, tandis que $ désigne un shell utilisateur normal.

example.org est utilisé comme exemple (D'oh) dans cette réponse et doit être modifié en fonction de votre installation.

Installer Apache2, PHP, MariaDB, etc.

$ sudo apt install apache2 libapache2-mod-php mariadb-server php-mysql

Cela installera Apache2, PHP, MariaDB et certaines dépendances, en plus des liaisons PHP pour accéder à mysql.

À ce stade, vous devriez pouvoir accéder à http://example.org et voir une page par défaut :

Configurer un serveur virtuel

Les Vhosts sont des hôtes virtuels, qui sont utilisés pour servir différents contenus pour différents noms de domaine.

Commencez à éditer un nouveau fichier appelé /etc/apache2/sites-available/01-example.org.conf dans votre éditeur préféré :

$ sudo editor /etc/apache2/sites-available/01-example.org.conf 

Saisissez la configuration suivante :

<VirtualHost *:80>
        ServerName example.org
        ServerAlias www.example.org
        ServerAdmin [email protected]
        DocumentRoot /var/www/html/example.org/
        ErrorLog ${APACHE_LOG_DIR}/example.org.error.log
        CustomLog ${APACHE_LOG_DIR}/example.org.access.log combined
</VirtualHost>

Tout d'abord, nous définissons le ServerName principal. Il s'agit du domaine utilisé pour accéder au site. Un seul peut être défini par vhost. De plus, nous définissons un ServerAlias, au cas où quelqu'un entrerait www.example.org dans son navigateur. Cela garantit qu'Apache répond aux deux noms. Les deux noms doivent pointer vers votre serveur, soit dans DNS, soit dans /etc/hosts pour les tests locaux.

N'importe quel nombre d'alias de serveur peut être spécifié, et ils ne doivent pas nécessairement contenir des parties de ServerName. Ainsi, ServerAlias example.com serait valide.

Créer le nouveau DocumentRoot

J'ai placé le nouveau documentroot dans /var/www/html/example.org . Il s'agit d'un emplacement autorisé à être desservi par Apache dans Ubuntu. Si, par exemple, je l'ai placé dans /srv/ , je devrais inclure une strophe de répertoire pour cela. Pour l'instant, créez la racine Web, remplissez-la avec du contenu et activez la nouvelle configuration :

$ sudo mkdir /var/www/html/example.org
$ echo "This is a test" | sudo tee /var/www/html/example.org/index.html
$ sudo a2ensite 01-example.org.conf
$ sudo service apache2 reload

Si vous visitez maintenant http://example.org, vous devriez voir la sortie *Ceci est un test ». Toutes nos félicitations! Votre premier vhost est en cours d'exécution !

Installez les certificats Letsencrypt et récupérez

Pour recevoir des certificats de Let's Encrypt, nous avons besoin d'un client. Le paquet Letsencrypt inclus avec 16.04 est ancien, nous avons donc besoin d'un ppa pour cela.

$ echo "deb http://ppa.launchpad.net/certbot/certbot/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/01-certbot.list
$ sudo add-apt-key -k keyserver.ubuntu.com 8C47BE8E75BCA694
$ sudo apt update && sudo apt install certbot python3-certbot-apache 

Exécutez certbot en tant qu'utilisateur root :

$ sudo certbot

Sélectionnez le domaine pour lequel vous souhaitez obtenir un certificat et suivez les instructions à l'écran de certbot. Lorsqu'on vous demande si vous voulez rediriger, sélectionnez rediriger si vous voulez uniquement https, et pas de redirection si vous voulez à la fois http et https. Aujourd'hui, il n'y a presque aucune raison de ne pas rediriger.

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): 

Essayez de visiter à nouveau http://example.com - cela devrait changer pour montrer qu'il est sécurisé.

Connexe :Comment améliorer la vitesse de démarrage dans Ubuntu ?

Félicitations, vous n'avez pas configuré apache2 avec un certificat TLS valide garantissant le chiffrement du trafic !

Installer WordPress

L'étape suivante consiste à installer une application. J'ai choisi WordPress comme exemple à installer.

Devenez d'abord root en entrant sudo -i . Ensuite, changez de répertoire pour votre racine Web, puis téléchargez, décompressez et changez de propriétaire pour l'utilisateur d'Apache :

$ sudo -i
# cd /var/www/html/example.org/
# wget https://wordpress.org/latest.tar.gz
# tar -zxf latest.tar.gz && rm latest.tar.gz
# chown -R www-data.www-data wordpress/

Vous aurez maintenant une instance WordPress sur https://example.com/wordpress/ – allons-y.

L'assistant vous indique que vous avez besoin d'une table, d'un utilisateur et d'un mot de passe MySQL. Faisons-les !

Par défaut, Ubuntu utilisera l'authentification par socket unix pour MariaDB. Ainsi, pour vous connecter à MariaDB en tant que root, vous devez utiliser

sudo mysql -u root

ou exécutez la commande dans un shell root (par exemple sudo -i ). Cela vous connectera sans entrer de mot de passe

# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 32
Server version: 10.0.33-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE wordpress_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON `wordpress_db`.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'passw0rd';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> exit

Remplissez le nom d'utilisateur wordpress_user , nom de la base de données wordpress_db et le mot de passe passw0rd dans la configuration de WordPress. C'est fondamentalement ça; le reste consiste à suivre les directives d'installation de WordPress.

Pour ajouter plus de vhosts, commencez simplement par "Configurer un vhost".

Autres lectures

  • Modules Apache :désactivation et activation
  • Exécuter certbot de cron pour renouveler automatiquement les certificats
  • Guide pour mod_rewrite, un module Apache couramment utilisé
  • Autorisations de fichier pour /var/www/html
  • Guide d'utilisation de Certbot

Ubuntu
  1. Comment installer et configurer ModSecurity sur Apache

  2. Comment installer Apache sur CentOS 8

  3. Comment installer Apache Maven sur Ubuntu 18.04 et 16.04

  4. Comment installer et configurer mysql 8 sur Ubuntu 20.04

  5. Comment installer et configurer PHP et Apache (pile LAMP) sur Ubuntu 20.04

Comment installer Mod_Security Apache sur Ubuntu 14.04

Comment installer Apache sur Linux Mint 19

Comment installer Apache sur Ubuntu 20.04 LTS

Comment installer Apache Server et configurer des hôtes virtuels sur Ubuntu 22.04

Comment installer ModSecurity Apache sur Ubuntu 20.04

Comment installer Apache sur Ubuntu 22.04