Comment puis-je installer Apache2, php, mysql et le configurer avec des hôtes virtuels et préférablement le certificat SSL Let's Encrypt, puis installer Wordpress dessus?
Je suppose que vous avez une installation Ubuntu en cours d'exécution. Ceci est écrit avec 16.04 à l'esprit mais devrait fonctionner avec certaines adaptations sur d'autres versions.
Dans cette réponse, #
désigne un shell racine, tandis que $
désigne un utilisateur normal.
example.org est utilisé à titre d'exemple (D'oh) dans cette réponse et doit être modifié en fonction de votre installation.
$ 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.
A ce stade, vous devriez pouvoir accéder à http://example.org et voir une page par défaut:
Les hôtes virtuels sont des hôtes virtuels, utilisés pour servir différents contenus pour différents noms de domaine.
Commencez à éditer un nouveau fichier nommé /etc/Apache2/sites-available/01-example.org.conf
dans votre éditeur favori:
$ Sudo editor /etc/Apache2/sites-available/01-example.org.conf
Entrez 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>
Premièrement, nous définissons le ServerName primaire. C'est le domaine utilisé pour accéder au site. Un seul peut être défini par hôte. De plus, nous définissons un ServerAlias, au cas où quelqu'un entre www.example.org dans son navigateur. Cela garantit qu'Apache répond aux deux noms. Les deux noms doivent pointer sur votre serveur, soit dans DNS, soit dans /etc/hosts
pour les tests locaux.
N'importe quel nombre d'alias de serveur peuvent être spécifiés et ils ne doivent pas nécessairement contenir de parties du nom du serveur. Ainsi, ServerAlias example.com
serait valide.
J'ai placé le nouveau document dans /var/www/html/example.org
. C'est un emplacement autorisé à être servi par Apache dans Ubuntu. Si, par exemple, je le plaçais dans /srv/
, je devrais inclure une strophe Directory 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 le résultat * Ceci est un test ". Félicitations! Votre premier vhost est en cours d'exécution!
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 que 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 souhaitez rediriger, sélectionnez redirect si vous voulez uniquement https et non pas si vous voulez 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 http://example.com à nouveau - cela devrait changer pour montrer qu'il est sécurisé.
Félicitations, vous n'avez pas configuré Apache2 avec un certificat TLS valide garantissant le cryptage du trafic!
La prochaine étape consiste à installer une application. J'ai choisi WordPress comme exemple à installer.
Commencez par devenir root en entrant Sudo -i
. Ensuite, changez de répertoire sur votre racine Web et téléchargez, décompressez et changez la propriété en utilisateur 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 allez maintenant avoir une instance WordPress sur https://example.com/wordpress/ - allons-y.
L'assistant vous indique que vous avez besoin d'une table MySQL, d'un utilisateur et d'un mot de passe. Faisons-les!
Par défaut, Ubuntu utilisera l’authentification de 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 racine (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
Entrez le nom d'utilisateur wordpress_user
, le 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 WordPress ' instructions d'installation .
Pour ajouter plus de vhosts, commencez simplement par "Configurer un vhost".