[CENTOS] [2020 WEBdev] Tutoriel pour héberger Wordpress avec SSL pour 1 yen tout en comprenant le mécanisme [Partie 1]

La deuxième partie est en cours de rédaction. La première partie est non SSL, mais c'est un tutoriel pour héberger Wordpress gratuitement

J'avais l'intention de le terminer court, mais ma carrière s'est allongée (Chaban)

Je viens de commencer le développement WEB. Lorsque la première page WEB est terminée, faites glisser et déposez «index.html» dans le navigateur et laissez vos amis partager l'URL et la voir ... IMG_0086.png

** Quoi? σ (・ ω ・ ,, `)? ** **


** ~ 3 jours plus tard ~ ** "Eh bien, dois-je signer un domaine avec un serveur pour le rendre accessible au public?"

** ~ 1 semaine plus tard ~ ** "J'ai pu héberger mon premier site Web!"

** ~ 1 mois plus tard ~ ** "Il est normal de créer de nombreux sites et de faire ressembler la page principale à un site de synthèse, mais il est difficile de modifier le code HTML à chaque mise à jour." "Je pense que vous devriez utiliser Wordpress."

** ~ 2 mois plus tard ~ ** "Wordpress est incroyable!" "Commençons à bloguer. Maintenant, vous pouvez rejoindre les rangs des affiliés!"

** ~ 3 mois plus tard ~ ** "C'est plus difficile que je ne l'imaginais d'écrire un blog." (Terminé par une tête rasée de trois jours) "Peut-être que le codage est meilleur pour moi que l'écriture de contenu." Créez votre propre thème WP qui vous permet de gérer vos travaux précédents. Chaque jour, je ne fais et publie que des œuvres qui ne peuvent pas être aidées là-bas.

** ~ 4 mois plus tard ~ ** "D'une manière ou d'une autre, j'ai payé environ 10 000 yens au total pour le serveur et le domaine. Je n'ai aucun profit, mais ..." "Tu ne peux pas rester comme ça" Au lieu de coder avec vos propres intérêts et plaisirs, commencez à réfléchir à la manière de rendre quelque chose de précieux du point de vue de l'utilisateur.

** ~ 5 mois plus tard ~ ** Bien qu'il y ait eu un léger changement mental, l'envie de pouvoir exploiter gratuitement le site actuel pour le moment est gagnée. "Hate. AWS, GCP. Non, même si cela s'appelle PaaS."

** ~ 6 mois plus tard ~ ** "D'accord, les paramètres Apache et SSL étaient difficiles, mais j'ai réussi à passer à un itinéraire totalement gratuit!"

** ~ 7 mois plus tard ~ ** Quelques jours après le faux examen, il écrit la célèbre Qiita.


En gros, c'est comme ça maintenant. (Très bâclé) Au fait, pendant ce temps, j'ai pris beaucoup de détours tels que l'apprentissage automatique et le scraping avec des rails, laravel ou python.

Eh bien, enfin, entrons dans le sujet principal.

Comme vous pouvez le voir dans les feuilles de thé ci-dessus, dans le passé, j'avais un fort désir d'ouvrir le site Web que j'ai écrit pour la première fois au public, alors j'ai loué un serveur Web et ouvert le site au public, même si je faisais des allers-retours. Cependant, je pense qu'il y a beaucoup de débutants qui abandonnent principalement à cause de l'argent ou du temps.

Je ne me soucie pas tellement des spécifications, donc je pense qu'il y a pas mal de gens qui sont impliqués dans le développement WEB qui veulent un espace sur le WEB qui puisse être partagé entre moi et plusieurs autres.

Pour de tels besoins, même le plan de serveur de location le moins cher peut être hors spécifications, et il sera douloureux si les frais de serveur sont consommés même s'il n'y a pas de profit.

Je suis moi-même encore un débutant en infrastructure, mais après essais et erreurs, j'ai proposé une méthode «presque gratuite», alors j'aimerais profiter de cette occasion pour la partager.

IMG_0087.png

Vue d'ensemble

Tout d'abord, je vais expliquer le flux global. Tout d'abord, en utilisant Google Cloud Platform, au moins jusqu'à ce que vous puissiez voir l'écran initial de Wordpress dans la première partie. Après cela, nous allons acquérir un domaine original en option, et introduire l'amélioration de la sécurité et l'introduction d'outils pratiques dans la deuxième partie.

Il s'agit d'un tutoriel écrit autour de l'hébergement d'un site Wordpress, mais plus généralement, il peut également être utilisé comme un simple serveur Web avec un environnement d'exécution PHP.

En fait, dans le cas des développeurs, je pense que Worpdress à lui seul ne suffira pas, donc je vais couvrir jusqu'à obtenir un sous-domaine et héberger le site principal de Wordpress et d'autres projets sur un serveur.

Si vous souhaitez avoir un serveur WEB pour le développement personnel, vous pouvez simplement utiliser la première partie, et si cela devient un site qui se développera dans le futur, vous pouvez faire la deuxième partie et augmenter ultérieurement l'infrastructure selon les besoins. Devenir.

Il n'y a qu'un seul frais pour acquérir le domaine dans la deuxième partie, mais comme il est d'environ 1 à 1500 yens par an, c'est beaucoup moins cher que de louer un serveur WEB et de le faire normalement.

Connaissances préalables minimales

Si vous êtes arrivé à cet article, vous allez probablement bien, mais je n'expliquerai pas ce qui suit, donc si vous avez des questions, veuillez les consulter. ..

Même si vous n'avez jamais touché à des PaaS tels qu'AWS et GCP, si vous créez l'environnement conformément à l'article pour le moment, vous pourrez comprendre à quoi il ressemble. J'ai l'intention d'éliminer le manque d'explication et les termes difficiles, mais si vous ne comprenez pas quelque chose, vous pouvez simplement copier et coller la commande. Je pense qu'il vaut mieux essayer ce genre de chose pour le moment et le comprendre plus tard avec moins de stress.

Veuillez noter que l'explication peut prêter à confusion pour les utilisateurs intermédiaires / avancés.

Avantages / inconvénients de cet environnement (point de vue du développeur)

Ce sont les avantages et les inconvénients de cet environnement par rapport à l'utilisation d'un serveur de location ordinaire.

mérite Démérite
Très bon marché avec les spécifications les plus basses Réponse lente (vulnérable à un accès soudain)
Peut être réglé librement Il existe de nombreux éléments difficiles pour les débutants
Vous pouvez profiter de la sensation "J'utilise la technologie moderne et je suis cool" Trop polyvalent et sujet à confusion
Étudier Cela peut prendre du temps à rester bloqué si c'est la première fois

De plus, tant que vous pouvez le faire gratuitement, ce sera un environnement avec des spécifications faibles, mais si vous le chargez, vous pouvez évoluer de manière plus flexible qu'un serveur de location, donc même si ce sera un gros projet à l'avenir, vous pouvez l'utiliser comme étape initiale. Ce n'est pas du tout un problème.

C'est en fait plus facile

Je le ferai dans la première moitié, mais lors de la création d'une instance avec Compute Engine de GCP, c'est pratique [une image qui a déjà été configurée sur le serveur, Wordpress, SSL](https://console.cloud.google.com/ Vous pouvez également utiliser marketplace / details / bitnami-launchpad / wordpresspro? Hl = ja & project = even-timing-282316 & rif_reserved).

J'ai utilisé ces choses une fois, et même si elles sont optimisées, je les utilise depuis à cause de la mise en page compliquée des répertoires et de la peur de les utiliser sans savoir comment elles fonctionnent. ne pas. (C'est pénible de lire le document (beat))

De plus, je pense qu'il sera plus étudiant de créer ces environnements à partir de zéro.

Flux de la première partie

--Créez une nouvelle instance de VM à l'aide de GCP (CentOS7) --Fixer l'adresse IP

Jusqu'ici

Le problème demeure.

Flux de la deuxième partie

Jusqu'à présent, l'environnement Wordpress est suffisant s'il est vu / géré par un individu (ou plusieurs personnes). L'accès simultané peut être toléré par 10 personnes ou moins et moins de 10 000 VP par mois, mais la réponse sera en principe plus lente qu'un serveur de location général. Cependant, si l'accès augmente, mettez à niveau Compute Engine. (Mettez à niveau Cloud Storage lorsque les ressources telles que les images et les vidéos augmentent.) Ce sera un environnement évolutif.

Je voudrais dire que ce travail peut être fait en quelques heures, mais je pense que c'est complètement différent pour les débutants comme moi dans la première moitié de la farce et ceux qui ont touché linux dans une certaine mesure, donc la déclaration est claire. Je veux l'éviter. Même si vous êtes un débutant complet, ce n'est pas grave si vous essayez de l'imiter au début, et j'espère que cela vous donnera l'occasion de commencer à étudier les infrastructures à partir d'ici.

Passons au "Hello World!" De Wordpress!

ÉTAPE 0 Créez un compte Google (facultatif)

Créer un compte Google Bien sûr, vous pouvez utiliser l'existant. step0-1.png

Au fait, j'en ai créé un nouveau pour cet article. (Configurons l'authentification en deux étapes !!!)

ÉTAPE 1 Inscrivons-nous à GCP

Accédez à Google Cloud Platform (GCP) pour activer votre version d'essai gratuite step1-1.png

L'inscription nécessite des informations telles que votre adresse et votre carte de crédit, mais vous n'avez pas à vous soucier d'être facturé à votre insu et vous pouvez être assuré que vous disposez d'un délai de grâce de 300 $.

Comme AWS et Azure, GCP s'appelle PaaS, qui est un service qui vous permet de louer différents types de machines sur le cloud et de vraiment faire diverses choses (). Parmi eux, nous utiliserons une machine virtuelle appelée Google Compute Engine (GCE), qui dispose d'une fonction informatique à usage général, et la transformerons en serveur WEB.

Je voudrais vous demander d'en savoir plus sur chacun, mais si vous êtes un débutant complètement ignorant et que vous êtes "compris" à propos de PaaS, vous êtes un génie. Pour le moment, essayez-le sans en connaître le sens, et comme vous le faites, vous serez en mesure de le comprendre, alors vous pouvez continuer. (Je suis désolé pour la leçon.)

Puis renommez le projet.

La valeur par défaut est "Mon premier projet", alors changez-le en un nom concis et descriptif dans ** Menu de navigation> IAM et administration> Paramètres ** en haut à gauche. step1-2.png

ÉTAPE 2 Créez une instance GCE

Accédez à l'écran d'instanciation avec ** Menu de navigation> Compute Engine **. step2-1.png Démarrez le paramètre initial de l'instance à partir de "Créer"

step2-2.png Veuillez cliquer comme suit

article Remarques
Nom Faites-en quelque chose dont vous vous souviendrez car vous l'utiliserez souvent plus tard.
Région [us-west/central/east]N'importe quelCependant nous-Hors east4 ※us-west1 est géographiquement le plus proche du Japon
zone De manière appropriée

Configuration de la machine

article valeur
séries N1
Type de machine f1-micro

Descendre et de "Modifier" sur le disque de démarrage step2-3.png

article valeur
OS CentOS
version CentOS7
Type de disque de démarrage Disque persistant standard (HDD)
Taille 30 (GB)

Il s'agit d'une instance avec les spécifications maximales pouvant être définies dans le cadre Always Free.

Le montant estimé à droite indique «5,08 $ / mois», mais ne vous inquiétez pas.

Si vous pouvez voir que l'instance (machine virtuelle) s'exécute comme ceci, cela réussit. step2-4.png

Cependant, cette adresse IP externe (l'adresse pour accéder à l'instance de l'extérieur) changera à chaque redémarrage, donc l'étape suivante consiste à la corriger.

ÉTAPE3 Passons d'une IP dynamique (éphémère) à une IP statique

** Menu de navigation> Réseau VPC> Adresse IP externe ** Modifiez l'adresse IP externe de l'instance que vous venez de créer de «éphémère» à «statique»

step3-1.png

step3-2.png Le nom est approprié.

Le redémarrage de l'instance ne changera pas l'adresse IP.

ÉTAPE 4 Connexion SSH à partir de la machine locale

Ici, connectez-vous à la machine VM créée sur le cloud avec le terminal de l'ordinateur que vous utilisez actuellement.

En fait, vous pouvez ouvrir l'écran de la console avec un navigateur et y faire fonctionner, mais il peut être utilisé pendant une longue période, il est donc pratique de pouvoir se connecter à partir du terminal local.

La machine locale est supposée être un Mac. Je pense que la connexion SSH que je vais faire à partir de maintenant peut se faire avec la même commande sous Windows, mais si vous ne pouvez pas le faire, veuillez vérifier avec «Fenêtres de connexion GCE SSH».

Maintenant, ouvrez un terminal local et utilisez la commande suivante pour générer la clé requise pour la connexion SSH.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_gce -C '[Nom de l'instance]'

Lorsque vous le saisissez, vous serez invité à définir une phrase de passe, ce qui est facultatif. (La phrase de passe n'est pas définie en appuyant deux fois sur Entrée avec un espace vide)

Ensuite, enregistrez la clé publique générée auprès de GCE.

cat ~/.ssh/id_rsa_gce.pub

Copiez la longue chaîne affichée par (jusqu'à "ssh-rsa xxxx ~ == [nom de l'instance]").

Cliquez ensuite sur le nom de l'instance GCE dans votre navigateur pour ouvrir l'écran des détails et cliquez sur Modifier.

step4-1.png

En bas, collez la clé publique que vous avez enregistrée précédemment dans la partie qui dit «Il y a 0 clés d'authentification SSH», et enregistrez-la telle quelle. step4-2.png

Maintenant que vous êtes prêt, tapez la commande suivante localement

ssh -i ~/.ssh/id_rsa_gce [Nom de l'instance]@[IP externe corrigée plus tôt]
Last login: Fri Oct 23 14:10:59 2020 from xxxxx
[main@main ~]$

Si l'écran ressemble à ceci, la connexion est réussie.

ÉTAPE 5 Changez le port SSH

Actuellement, le port 22 est utilisé par défaut pour la connexion SSH, mais il est vulnérable aux attaques car il s'agit de la valeur par défaut. Vous pouvez déjà voir des journaux douteux autour de / var / log / secure.

Par conséquent, tout d'abord, nous allons fermer ce port 22 et établir une connexion SSH avec d'autres ports.

Tout d'abord, le pare-feu est géré à partir du panneau GCP, alors désactivez-le ici.

sudo systemctl disable firewalld

Ensuite, désactivez SElinux. Cela se fait en réécrivant directement le fichier de configuration au lieu de saisir une commande.

Vim minimal

Pour ceux qui découvrent vim, voici une explication rapide. vim est un outil d'édition de texte sur le terminal, et bien qu'il soit très sophistiqué, il semble difficile pour les débutants de se lancer. Cependant, si vous suivez les étapes ci-dessous, ce n'est pas grave pour le moment.

  1. Démarrez l'éditeur avec vim [nom de fichier]

Voir: Practical Primer for Vim Beginners

Ouvrez maintenant le fichier de paramètres.

sudo vim /etc/selinux/config

step5-1.png À ce stade, je pense que SELINUX = enforcing est défini, alors réécrivez-le en désactivé.

Redémarrez l'instance sur l'écran de contrôle GCE pour que les paramètres prennent effet. step5-2.png

Si vous êtes dans le terminal local, la connexion est automatiquement déconnectée, veuillez donc refaire une connexion SSH après le redémarrage.

ssh -i ~/.ssh/id_rsa_gce [Nom de l'instance]@[IP externe]

Et

getenforce

C'est OK si le résultat de est «Désactivé».

Maintenant, définissons le port. Veuillez choisir le numéro de port arbitrairement dans la plage de ** 1024 à 49151 ** Je vais le régler sur 45678, donc si vous avez ce numéro à l'avenir, veuillez le remplacer par le vôtre.

sudo vim /etc/ssh/sshd_config

Ensuite, décommentez («#») où il est «# Port 22» et remplacez-le par le numéro de port que vous avez choisi. step5-3.png

Après avoir enregistré

sudo systemctl restart sshd && sudo systemctl restart sshd

Redémarrez sshd avec et vérifiez l'état.

● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running)depuis Kim 2020-10-23 15:12:15 UTC; 11s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1204 (sshd)
   CGroup: /system.slice/sshd.service
           ├─1184 sshd: [accepted]
           └─1204 /usr/sbin/sshd -D

23 octobre 15:12:15 main systemd[1]: Stopped OpenSSH server daemon.
23 octobre 15:12:15 main systemd[1]: Starting OpenSSH server daemon...
23 octobre 15:12:15 main sshd[1204]: Server listening on 0.0.0.0 port 45678. <=C'est le nombre que vous définissez
23 octobre 15:12:15 main sshd[1204]: Server listening on :: port 45678.
23 octobre 15:12:15 main systemd[1]: Started OpenSSH server daemon.

Accédez ensuite à l'écran GCP, accédez à ** Menu de navigation> Réseau VPC> Pare-feu ** et cliquez sur default-allow-ssh pour modifier la règle. step5-4.png

Descendez de «Modifier» en haut à droite, changez le port TCP par le numéro que vous avez défini et enregistrez. step5-5.png

Vous pouvez maintenant vous connecter à partir du nouveau port, mais il n'y a pas de règle pour refuser l'accès à partir du port 22, alors créez-le.

Paramètres du pare-feu À partir de «Créer une règle de pare-feu» en haut de l'écran, définissez comme suit. (Le cadre rouge est la partie modifiée) step5-6.png

step5-7.png

Notez que ces deux règles sont toutes appliquées par défaut, donc si vous augmentez le nombre d'instances GCE dans le même projet à l'avenir, vous ne pourrez pas vous y connecter via le port 22, alors gardez à l'esprit quelque part. Posez-le s'il vous plaît.

Maintenant, déplacez-vous vers le terminal et si vous êtes toujours connecté à l'instance, déconnectez-vous une fois avec ʻexit`.

Ici comme avant

ssh -i ~/.ssh/id_rsa_gce [Nom de l'instance]@[IP externe]

Même si vous pouvez confirmer que vous ne pouvez pas vous connecter. Alors à la fin de cette étape,

ssh -i -p [numéro de port] ~/.ssh/id_rsa_gce [Nom de l'instance]@[IP externe]

Si vous pouvez vous connecter en tant que, c'est réussi. C'était un peu long, mais maintenant c'est un environnement plus sûr.

ÉTAPE 6 Installons Apache

Cette machine virtuelle deviendra enfin un serveur WEB. Il y a deux grandes tours dans le logiciel de serveur WEB, Apache et Nginx, mais cette fois, j'aimerais aller avec Apache.

À partir de là, il y a beaucoup de commandes qui nécessitent des privilèges de super utilisateur lors de l'exécution, donc au lieu d'utiliser sudo ~~ à chaque fois, commencez par vous faire l'utilisateur root.

sudo su -

Comme il est plus facile de comprendre si la date et l'heure du journal d'accès correspondent à l'heure du Japon, modifiez le fuseau horaire de la machine.

timedatectl set-timezone Asia/Tokyo

C'est OK si le résultat de la commande date est l'heure actuelle du Japon.

Installation d'Apache

yum install -y httpd

Lancement et persistance

systemctl start httpd && systemctl enable httpd

Ici, définissez à nouveau le pare-feu. J'ai changé les règles de SSH plus tôt, mais cette fois, c'est le réglage des différents protocoles de communication http et https. C'est familier.

L'accès via ces deux protocoles n'est pas autorisé par défaut, donc si vous y accédez depuis un navigateur, il sera bloqué et ne sera pas affiché.

Alors autorisons-les. C'est facile, cependant.

Sélectionnez une instance dans l'écran de gestion des instances de Compute Engine et accédez à "Modifier" dans l'angle supérieur droit. step6-1.png

Vérifiez simplement ces deux éléments au milieu.

En fait, c'est un élément qui peut être défini en même temps lors de la création d'une instance, mais je pense qu'il vaut mieux le faire à ce moment plutôt que de le vérifier d'abord sans en connaître le sens. ~~ J'oubliais d'habitude devant le bâtiment, je suis désolé ~~

Maintenant, dans la barre de recherche du navigateur http: // [adresse IP de l'instance] Entrer! Si cet écran apparaît, vous avez réussi. step6-2.png

À ce stade, cette machine peut désormais diffuser des fichiers dans le répertoire public (/ var / www / html) en tant que serveur WEB.

Le logiciel appelé Wordpress, qui est le but de cette fois, a principalement les fonctions de «(1) l'administrateur écrit un article» et «(2) génère du HTML pour l'affichage en tant que site Web» en utilisant les données.

(Un système qui intègre du contenu tel que des articles dans un modèle et le distribue de cette manière est appelé CMS.)

Dans (1), une base de données est requise comme destination de stockage de données. Nous utilisons un langage de programmation appelé PHP pour extraire les données nécessaires de la base de données et faire quelque chose comme (2).

Ensuite, nous installerons l'environnement d'exécution PHP et MariaDB (base de données).

ÉTAPE 7 Installons PHP

J'ai utilisé la commande yum lors de l'installation d'Apache. Il s'agit d'un outil de gestion des progiciels dans CentOS. Lorsque vous tapez yum install httpd, il dit repository, qui recherche httpd dans un entrepôt sur le cloud avec de nombreux packages et l'installe avec les autres packages nécessaires pour l'exécuter. ..

Je vais installer PHP7.3 à partir de maintenant, mais je ne peux pas l'installer tel quel car il n'est pas dans les référentiels par défaut.

Alors, ajoutez d'abord le référentiel où se trouve PHP 7.3.

yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Maintenant que vous pouvez installer PHP 7.3, installez-le en une seule fois, y compris les bibliothèques nécessaires.

yum install -y php php-mysql php-mbstring php-gd --enablerepo=remi-php73

Vous pouvez vérifier si PHP 7.3 est inclus comme suit.

[root@main ~]# php --version
PHP 7.3.23 (cli) (built: Sep 29 2020 08:33:03) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.23, Copyright (c) 1998-2018 Zend Technologies

ici

vim /var/www/html/info.php

Démarrez l'éditeur avec

<?php
  phpinfo();
?>

Veuillez écrire et sauvegarder.

Puis http: // [adresse IP] / info.php Essayez d'accéder.

Le contenu que vous venez de saisir s'affiche tel quel dans le texte. C'est parce que j'ai installé PHP, mais Apache ne l'a pas encore chargé, donc je viens de livrer ʻinfo.php` sous forme de fichier texte.

systemctl restart httpd

En redémarrant Apache avec, il fonctionnera avec PHP.

Veuillez recharger l'écran du navigateur. step7-1.png Si vous voyez un écran comme celui-ci, vous avez réussi. Après avoir reçu la requête http, Apache a ordonné à ʻinfo.php` de s'exécuter et a renvoyé le résultat au client.

Sur le terminal

php /var/www/html/info.php

S'il vous plaît essayez. Je pense que le même contenu que le navigateur a été produit.

Configurons PHP

Voici quelques paramètres que vous devez effectuer avant d'utiliser Wordpress.

Tout d'abord, le fichier de configuration PHP est / etc / php.ini, mais faites une sauvegarde avant d'y apporter des modifications.

cp /etc/php.ini /etc/php.ini.bk

Si PHP est bloqué à cause d'une erreur, supprimez php.ini et renommez php.ini.bk en php.ini et tout sera restauré.

vim /etc/php.ini

Ensuite, si vous entrez / timezone et appuyez sur Entrée, il passera à la partie de réglage du fuseau horaire, alors mettez-le en mode d'édition avec ʻi, supprimez le commentaire ("; ") là-bas, et ʻAsia / Tokyo Disons . step7-2.png

Revenez en mode navigation avec ʻesc, appuyez sur Entrée avec / post_max_size, et changez la valeur ici à environ 128M`. step7-3.png

De même, changez ʻupload_max_filesize en 128M`. step7-4.png

Les deux derniers paramètres sont pour vous éviter d'avoir une erreur lors d'un traitement lourd avec Wordpress (téléchargement d'articles avec des données volumineuses, installation de plugins, etc.).

Pour d'autres paramètres tels que la sortie du journal, veuillez vous reporter ici. [PHP] Paramètres que vous voulez faire après l'installation de PHP

Maintenant, enregistrez le fichier de configuration avec : wq et fermez-le

systemctl restart httpd

Redémarrez Apache pour le charger. Si vous mettez à jour ʻinfo.php` dans votre navigateur, vous pouvez voir que la partie modifiée est reflétée et affichée. step7-5.png

ÉTAPE 8 Installons MariaDB

Maintenant que nous avons un environnement PHP, nous allons installer un système de gestion de base de données appelé MariaDB.

Utilisez la commande suivante pour installer, conserver et démarrer immédiatement.

yum install -y mariadb-server \
&& systemctl enable mariadb \
&& systemctl start mariadb

En ce qui concerne les bases de données, certains d'entre vous connaissent peut-être MySQL, mais du point de vue de l'utilisateur, MariaDB est légèrement compatible avec elle, mais les débutants ne remarqueront pas souvent la différence.

Référence Comparez MySQL et MariaDB! Vérifions les caractéristiques et les différences de chaque DB!

mysql_secure_installation

Démarre l'initialisation interactive. La saisie de base est correcte, mais vous serez invité à définir le mot de passe de l'utilisateur racine de la base de données en cours de route, alors entrez-en un sûr. (Le mot de passe ne s'affichera pas même si vous appuyez sur le clavier, faites donc attention aux fautes de frappe.)

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Et quand le réglage est terminé

mysql -uroot -p

Connectez-vous en tant qu'utilisateur root de la base de données à l'aide du mot de passe que vous avez défini précédemment. step8-1.png En l'état, créez une base de données pour Wordpress comme suit et vérifiez si elle est ajoutée avec show databases;.

MariaDB [(none)]> CREATE DATABASE wp;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wp                 |
+--------------------+
4 rows in set (0.00 sec)

Remarques Les instructions SQL telles que "CREATE" sont en majuscules de base, mais une taille inférieure est acceptable. Si vous prévoyez d'avoir plusieurs sites Wordpress sur ce serveur, il est plus facile d'utiliser un nom de base de données distinctif plus tard.

L'utilisateur que j'utilise maintenant s'appelle l'utilisateur root, qui peut tout faire. Pour empêcher Wordpress de fonctionner avec d'autres bases de données indépendantes, l'étape suivante consiste à créer un nouvel utilisateur et à lui donner uniquement la base de données wp que vous venez de créer.

MariaDB [(none)]> CREATE USER '[Nouveau nom d'utilisateur]'@'localhost' IDENTIFIED BY '[Nouveau mot de passe utilisateur]';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON wp.* TO '[Nouveau nom d'utilisateur]'@'localhost';
Query OK, 0 rows affected (0.00 sec)

Maintenant que vous avez créé un utilisateur dédié, déconnectez-vous une fois avec ʻexit; `et connectez-vous en tant que cet utilisateur.

MariaDB [(none)]> exit;
Bye
[root@main ~]# mysql -u [Nom d'utilisateur] -p
Enter password:!! !! !! Vous ne pouvez pas le voir même si vous y entrez! !! !!
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Voici le résultat de show databases;

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| wp                 |
+--------------------+
2 rows in set (0.00 sec)

De cette façon, il n'y a pas de problème si seulement ʻinformation_schema` et la base de données créée précédemment sont disponibles.

ÉTAPE 9 Installons Wordpress

Enfin, Wordpress sera installé. Lorsque j'essaie de télécharger à partir du site Web officiel de Wordpress, les données sont naturellement téléchargées sur la machine locale.

Il y a plusieurs façons de mettre cela sur une instance GCE, mais utilisons wget ici.

wget est une commande pour télécharger du contenu depuis Internet, et elle n'est pas incluse dans le CentOS actuel, donc installez-la d'abord.

yum install -y wget

Aller à la racine du répertoire public

cd /var/www/html

Téléchargez le dernier wordpress japonais.

wget https://ja.wordpress.org/latest-ja.tar.gz

Si vous essayez ls, vous pouvez voir qu'il y a latest-ja.tar.gz.

Puis extrayez ce fichier en utilisant la commande tar.

tar xvfz latest-ja.tar.gz

Si vous essayez ls à ce stade, vous obtiendrez ce résultat.

[root@main html]# ls
info.php  latest-ja.tar.gz  wordpress

Ici, nous n'avons besoin de rien d'autre que de wordpress, alors supprimons-le.

rm -rf info.php latest-ja.tar.gz

Vous avez maintenant des données Wordpress installées sur votre CentOS.

Créons une structure de répertoires pour le futur

Ensuite, pour la commodité de la deuxième partie de cet article, je vais changer l'emplacement de ces données Wordpress, mais comme le contenu peut être un peu difficile, [Vous pouvez sauter ici pour une raison. ](# Fin de la préface)

Par défaut, Apache utilise / var / www / html comme racine de son répertoire public. (Désormais, il s'appellera "Document Root")

Maintenant http: // [adresse IP] / hoge.html J'accède comme, mais dans la seconde moitié, j'obtiens le domaine et http://example.com/hoge.html Vous pourrez y accéder comme ça.

Au fur et à mesure que le développement personnel progresse, vous souhaiterez peut-être mettre en place un autre projet en plus du site Wordpress.

Lorsque cela se produit, le site Wordpress http://example.com/wordpress/ Vers le haut d'un autre projet http://example.com/anotherproject/ À

Cependant, le serveur Apache considère qu'il s'agit du même site, ce qui provoque une confusion telle que les journaux de deux projets écrits au même emplacement.

Dans un tel cas, je pense qu'il est courant de ** créer un sous-domaine et de le connecter à l'aide de la fonction VituralHost d'Apache **. Vous n'avez pas besoin de le comprendre en détail maintenant, mais dans les paramètres DNS, le site principal de Wordpress est http: // example.com, et un autre projet est Supposons que vous vouliez l'attribuer à http: // another.example.com.

Ensuite, selon les paramètres du côté Apache, ʻexample.com et ʻanother.example.com peuvent être affectés à différentes racines de document.

L'image ressemble à ceci.

Nom du projet URL Racine du document
Blog https://example.com /var/www/wordpress
Site amusant https://tanoshii.example.com /var/www/tanoshii

Cela facilite la définition de paramètres tels que la restriction de l'accès à un seul site.

Lors de l'exploitation d'un grand site avec beaucoup d'accès, un site est hébergé sur un (ou plusieurs) serveurs, mais comme il n'y a pas un tel besoin pour les individus, nous continuerons à connecter des sous-domaines au même serveur. peut faire.

Cependant, la configuration à l'aide de VirtualHost s'effectue après l'acquisition du domaine dans la deuxième partie, mais pour les raisons ci-dessus, déplacez Wordpress comme suit.

Fin de l'introduction
systemctl stop httpd #Je vais arrêter Apache pour le moment
cd /var/www
mv html/wordpress .
chown -R apache:apache wordpress/ #Changer de propriétaire de root en utilisateur Apache
rm -rf html

Puis changez la racine du document par défaut de / var / www / html à / var / www / wordpress dans les paramètres Apache.

cd /etc/httpd/conf
cp httpd.conf httpd.conf.bk # php.Faites une sauvegarde comme ini
vim httpd.conf

Recherchez / DocumentRoot et modifiez-le comme suit. step9-1.png

Après avoir enregistré les paramètres

httpd -t

Vous pouvez vérifier les erreurs de syntaxe avec. Ceci est utile à retenir, car la configuration d'Apache implique des essais et des erreurs.

Syntaxe OK et si cela semble correct

systemctl start httpd

Commençons avec.

Essayez d'accéder / recharger http: // [adresse IP] avec votre navigateur, et si vous voyez un écran comme celui-ci, vous réussissez. step9-2.png

Entrez la base de données spécifique à l'adresse de travail et les informations utilisateur définies dans STEP 8. step9-3.png

Si vous pouvez vous inscrire normalement, le bouton d'exécution de l'installation apparaîtra, donc après avoir appuyé dessus, enregistrez les informations en tant qu'administrateur Wordpress. step9-4.png

Après le réglage, connectez-vous avec le nom d'utilisateur et le mot de passe que vous venez de définir sur l'écran de connexion step9-5.png J'ai pu accéder à l'écran de gestion!

Lorsque vous accédez à http: // [adresse IP] /, la page principale s'affiche. step9-6.png

Hello World! Je vous remercie pour votre travail acharné.

Résumé de la première partie

--Création d'une nouvelle instance de VM à l'aide de GCP (CentOS7)

Le coût jusqu'à présent est de 0 yen. De là, vous pouvez créer des thèmes Wordpress et jouer avec eux.

Cependant, même si vous utilisez ce serveur pour le développement personnel, le problème persiste.

―― Il n'est pas facile d'accéder en frappant directement l'adresse IP. ――Il est difficile de mettre en place un site autre que ce Wordpress ――Je ne peux pas répondre même si j'ai soudainement accès à quelque chose de buzz

Donc, la deuxième partie abordera ce problème. Cependant, la sécurité est limitée à ce que je peux faire gratuitement, et mes capacités sont limitées, donc pour éviter le pire, ne mettez pas d'informations vraiment importantes sur ce serveur.

À propos de la deuxième partie Prochainement ...

En ce qui concerne la deuxième partie, la composition générale est décidée comme décrit ci-dessus. Cependant, je pense que même si j'écris la deuxième partie sans avoir l'évaluation de cette première partie, elle ne sera enterrée que dans de nombreux articles, donc si je gagne des dizaines de LGTM, je commencerai sérieusement à éditer le travail. Si vous avez lu jusqu'ici, je vous serais reconnaissant de bien vouloir le partager.

Recommended Posts

[2020 WEBdev] Tutoriel pour héberger Wordpress avec SSL pour 1 yen tout en comprenant le mécanisme [Partie 1]
Tutoriel pour créer un blog avec Rails pour les débutants Partie 1
Tutoriel pour créer un blog avec Rails pour les débutants Partie 2
Tutoriel pour créer un blog avec Rails pour les débutants Partie 0
Attendez que PostgreSQL démarre avec Docker, puis démarrez le service WEB
La voie de la création de services Web (partie 2)
La voie de la création d'un service Web (partie 1)