Depuis le 27 septembre 2020, nous avons construit un environnement de développement qui adopte chaque environnement décrit dans [Informations environnementales (version, etc.)](# Informations environnementales (version, etc.)), donc une note lors de la préparation de l'environnement. Laissez comme.
environnement | Chemin du fichier |
---|---|
nginx | /etc/nginx/conf.d/default.conf |
nginx | /etc/nginx/nginx.conf |
php | /etc/php.ini |
php-fpm | /etc/php-fpm.d/www.conf |
MariaDB | /etc/my.cnf.d/server.cnf |
MariaDB | /etc/my.cnf.d/client.conf |
# timedatectl set-timezone Asia/Tokyo
# localectl set-locale LANG=ja_JP.UTF-8
# source /etc/locale.conf
# dnf install -y langpacks-ja
# dnf install -y vim
# dnf install -y elfutils-libelf-devel
# dnf -y update
# vim /etc/selinux/config
SELINUX=désactiver ← régler pour désactiver
# vim /etc/yum.repos.d/nginx.repo
ini:/etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Sur le site suivant, la procédure d'installation a été décrite avec la définition suivante, mais contrairement aux paramètres ci-dessus, il semble qu'une version légèrement plus ancienne ait été mise en place. (Ci-dessus: 1.18 à partir du 1.14 2020.09.26 ci-dessous) https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
nginx.repo
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
# dnf -y install nginx
# nginx -v
nginx version: nginx/1.18.0
# systemctl enable nginx
# systemctl start nginx
Si vous accédez à ce qui suit et que l'écran nginx (Bienvenue dans nginx!) S'affiche, c'est OK. http://192.168.33.10
Le référentiel CentOS8 standard a une version de php-fpm 7.2.24 à partir du 26.09.2020. Puisque la version 7.4 est la dernière version, j'aimerais utiliser la version 7.4. Alors, configurez un référentiel supplémentaire et configurez-le à partir de là.
# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
# dnf module enable php:remi-7.4
Puisqu'il est nécessaire de le modifier de manière appropriée en fonction des exigences de développement, reportez-vous au site suivant et installez les modules d'extension PHP nécessaires. https://www.php.net/manual/ja/extensions.php
# dnf module install php:remi-7.4
Confirmation finale de l'expiration des métadonnées: 0:32:Elle s'est tenue il y a 40 heures le 26 septembre 2020 à 19:39:36.
La dépendance a été résolue.
========================================================================================================================================
Taille du référentiel de version d'architecture de package
========================================================================================================================================
group/Installation du package de module:
php-cli x86_64 7.4.10-1.el8.remi remi-modular 4.6 M
php-common x86_64 7.4.10-1.el8.remi remi-modular 1.2 M
php-fpm x86_64 7.4.10-1.el8.remi remi-modular 1.6 M
php-mbstring x86_64 7.4.10-1.el8.remi remi-modular 527 k
php-xml x86_64 7.4.10-1.el8.remi remi-modular 214 k
Installation des dépendances en cours:
httpd-filesystem noarch 2.4.37-21.module_el8.2.0+494+1df74eae AppStream 36 k
oniguruma5php x86_64 6.9.5+rev1-2.el8.remi remi-safe 206 k
php-json x86_64 7.4.10-1.el8.remi remi-modular 75 k
Installer des dépendances faibles:
nginx-filesystem noarch 1:1.14.1-9.module_el8.0.0+184+e34fea82 AppStream 24 k
Installation du profil de module:
php/common
Flux de module activé:
httpd 2.4
nginx 1.14
php remi-7.4
Aperçu de la transaction
========================================================================================================================================
Installation 9 paquets
# php -v
PHP 7.4.10 (cli) (built: Sep 1 2020 13:58:08) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
# php-fpm -v
PHP 7.4.10 (fpm-fcgi) (built: Sep 1 2020 13:58:08)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
Vérifiez l'emplacement du fichier php.ini au cas où
# php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
Changer le contenu de php.ini
/etc/php.ini
;Code de caractère par défaut
default_charset = UTF-8
;X qui renvoie les informations de version de PHP à la réponse HTTP-Powered-Ne pas inclure par en-tête
expose_php = Off
;Limite d'utilisation de la mémoire
memory_limit = 256M
;Taille maximale des données de demande POST
post_max_size = 128M
;Taille maximale du fichier téléchargé lors du téléchargement du fichier
upload_max_filesize = 100M
;Journal des erreurs
error_log = /var/log/php_error.log
;Erreur de sortie
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
;Affichage d'erreur (car c'est pratique pendant le développement)
display_errors = On
display_startup_errors = On
[Date]
date.timezone = Asia/Tokyo
[mbstring]
;langue par défaut de mbstring
mbstring.language = Japanese
;Ne convertissez pas automatiquement le codage des caractères d'entrée HTTP en codage des caractères internes
mbstring.encoding_translation = Off
;Priorité lors de la détection automatique du code de caractère
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
# cp -p /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org
# vim /etc/nginx/conf.d/default.conf
config:/etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
#Définition de la racine du document (définissez le même emplacement que la racine du document standard tel qu'apache)
root /var/www/html;
index index.php index.html index.htm;
location / {
#Vérifie l'existence des fichiers et des répertoires dans l'ordre spécifié et renvoie le premier trouvé.
#Si aucun n'est présent, le chemin passe au dernier chemin spécifié.
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#Nginx sur un serveur+php-Lors de l'exécution de fpm, les sockets Unix fonctionnent plus rapidement.
# www.L'emplacement de la chaussette est/etc/nginx/conf.d/php-fpm.Correspondre aux paramètres de configuration.
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
Modifiez les paramètres pour que l'utilisateur vagrant
exécute à la fois nginx et php-fpm.
/etc/nginx/nginx.conf
#Changé ce qui suit en vagabond
user vagrant;
conf:/etc/php-fpm.d/www.conf
#Changé ce qui suit en vagabond
user = vagrant
group = vagrant
#Décommenter et changer en vagabond
listen.owner = vagrant
listen.group = vagrant
listen.mode = 0660
# listen.propriétaire et écoute.Commentez ce qui suit pour spécifier le groupe
;listen.acl_users = apache,nginx
Redémarrez le service pour que les paramètres prennent effet
# systemctl restart php-fpm
# systemctl restart nginx
Préparez un exemple de programme qui exécute phpinfo et vérifiez la coopération de nginx + php-fpm.
/var/www/html/index.php
<?php
phpinfo();
Si vous accédez à l'URL suivante et que le contenu de phpinfo () est affiché, le paramétrage pour lier nginx et php-fpm est terminé.
http://192.168.33.10/
MariaDB installée dans le référentiel CentOS8 est 10.3, et la dernière version est 10.5 pour le moment, donc j'aimerais également installer la dernière version.
# vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos8-amd64
module_hotfixes=1
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
# dnf info MariaDB-server MariaDB-devel --disablerepo=* --enablerepo=mariadb
Puisque nous avons confirmé que le référentiel a été ajouté avec succès ci-dessus, nous allons effectivement l'installer.
# dnf instal MariaDB-server MariaDB-devel --disablerepo=* --enablerepo=mariadb
Erreur:
problème: cannot install the best candidate for the job
- nothing provides libaio.so.1()(64bit) needed by MariaDB-server-10.5.5-1.el8.x86_64
- nothing provides libaio.so.1(LIBAIO_0.1)(64bit) needed by MariaDB-server-10.5.5-1.el8.x86_64
- nothing provides libaio.so.1(LIBAIO_0.4)(64bit) needed by MariaDB-server-10.5.5-1.el8.x86_64
- nothing provides lsof needed by MariaDB-server-10.5.5-1.el8.x86_64
- nothing provides perl(DBI) needed by MariaDB-server-10.5.5-1.el8.x86_64
(Pour ignorer les packages non installables'--skip-broken'Ou essayez d'ajouter'--nobest'N'utilisez pas uniquement les meilleurs packages candidats)
J'obtiens une erreur.
Il semble que la cause de l'erreur soit que libaio
, lsof
, perl-DBI
soient nécessaires pour l'installation de MariaDB.
Par conséquent, installez les trois correspondants.
# dnf install libaio
# dnf install lsof
# dnf install perl-DBI
J'ai installé les trois points, donc je vais réessayer.
# dnf install MariaDB-server MariaDB-devel --disablerepo=* --enablerepo=mariadb
Confirmation finale de l'expiration des métadonnées: 0:10:Elle s'est tenue il y a 24 heures le 27 septembre 2020 à 07:09:32.
Erreur:
problème: package MariaDB-server-10.5.5-1.el8.x86_64 requires galera-4, but none of the providers can be installed
- cannot install the best candidate for the job
- nothing provides libboost_program_options.so.1.66.0()(64bit) needed by galera-4-26.4.3-1.rhel8.0.el8.x86_64
- nothing provides libboost_program_options.so.1.66.0()(64bit) needed by galera-4-26.4.4-1.rhel8.0.el8.x86_64
- nothing provides libboost_program_options.so.1.66.0()(64bit) needed by galera-4-26.4.5-1.el8.x86_64
- nothing provides socat needed by galera-4-26.4.5-1.el8.x86_64
(Pour ignorer les packages non installables'--skip-broken'Ou essayez d'ajouter'--nobest'N'utilisez pas uniquement les meilleurs packages candidats)
C'est toujours inutile.
Je me fâche quand il n'y a pas de libboost_program_options
, alors installez boost-program-options
.
# dnf install boost-program-options
Défiez d'être honnête pour la troisième fois J'ai pu démarrer l'installation avec succès.
# dnf install MariaDB-server MariaDB-devel --disablerepo=* --enablerepo=mariadb
# mysql -V
mariadb Ver 15.1 Distrib 10.5.5-MariaDB, for Linux (x86_64) using readline 5.1
# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb
mysql_secure_installation
# mysql_secure_installation
#Entrez le mot de passe actuel du compte root de MariaDB?
Enter current password for root (enter for none): Enter
# unix_Passer à l'authentification à l'aide de socket?
# unix_socket est lorsque le nom d'utilisateur de connexion de CentOS et le nom d'utilisateur du côté MariaDB ont le même nom.
# ID/Un mécanisme pour s'authentifier sans utiliser PASS. (MariaDB 10.A-t-il été ajouté à partir de 4? )
Switch to unix_socket authentication [Y/n] : n
#Changer le mot de passe du compte root de MariaDB?
Change the root password? [Y/n] : Y
New password: Hoge1234
Re-enter new password: Hoge1234
#Supprimer les utilisateurs anonymes?
Remove anonymous users? [Y/n] Y
#Interdire la connexion avec un compte root MariaDB distant?
Disallow root login remotely? [Y/n] Y
#J'ai une base de données "test" accessible à tous, mais puis-je la supprimer?
Remove test database and access to it? [Y/n] Y
#Si vous rechargez la table des autorisations, toutes les modifications jusqu'à présent peuvent être répercutées immédiatement, mais le faites-vous?
Reload privilege tables now? [Y/n] Y
Comme le mot de passe du compte root MariaDB est défini dans les paramètres ci-dessus, assurez-vous que vous pouvez y accéder correctement avec ce mot de passe.
# mysql -u root -p
Enter password: Hoge1234
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.5.5-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)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.000 sec)
MariaDB [(none)]> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.001 sec)
OK.
sudo su -
d'un utilisateur vagabond, vous pouvez vous connecter quel que soit le mot de passe requis par mysql -u root -p
. (Je ne savais pas...)Maintenant que MariaDB a été construite, il est temps de créer les utilisateurs et les bases de données à utiliser avec MariaDB. (Puisqu'il s'agit d'un environnement de développement distinct, vous pouvez utiliser tous les utilisateurs root, mais juste au cas où.)
Pour gérer le japonais, changez le code de caractère en ʻutf8mb4`.
conf:/etc/my.cnf.d/server.cnf
[mariadb]
character-set-server = utf8mb4
conf:/etc/my.cnf.d/client.cnf
[client-mariadb]
default-character-set = utf8mb4
Assurez-vous qu'il est réglé sur ʻutf8mb4`.
# systemctl restart mariadb
# mysql -u root -p
MariaDB [(none)]> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.002 sec)
Créer une base de données et créer un utilisateur
# mysql -u root -p
MariaDB [(none)]> create database yudb;
Création de l'utilisateur "yu" accessible depuis tous les hôtes
MariaDB [(none)]> create user yu;
MariaDB [(none)]> set password for yu@'%'=password('yupass');
MariaDB [(none)]> select user, host from mysql.user;
+-------------+-----------+
| User | Host |
+-------------+-----------+
| yu | % |
| mariadb.sys | localhost |
| mysql | localhost |
| root | localhost |
+-------------+-----------+
4 rows in set (0.004 sec)
Accorder des autorisations pour crud la base de données "yudb" lorsque l'utilisateur "yu" accède à partir de tous les hôtes
MariaDB [(none)]> grant select,insert,update,delete ON yudb.* TO yu@'%';
Refléter l'autorité
MariaDB [(none)]> flush privileges;
Changez le programme de index.php pour vérifier le fonctionnement de l'accès à la base de données en utilisant MySQLi, et vérifiez la connexion à php-> MariaDB.
/var/www/html/index.php
<?php
$server = 'localhost';
$user = 'yu';
$pass = 'yupass';
$dbname = 'yudb';
$my = new MySQLi($server, $user, $pass, $dbname);
$my->set_charset('utf8mb4');
$sql = 'select now() as n from dual';
$result = $my->query($sql);
//Obtenez le contenu de la base de données
while($row = $result->fetch_assoc() ){
var_dump($row);
}
//Fermer la connexion à la base de données
$my->close();
http://192.168.33.10/
Erreur fatale: Erreur non interceptée: Classe'MySQLi 'introuvable dans /var/www/html/index.php:8 Trace de la pile: # 0 {main} lancée dans /var/www/html/index.php sur la ligne 8
Et une erreur se produit.
C'est une erreur que l'extension PHP ne peut pas être trouvée car l'extension mysqli
n'est pas installée.
Par conséquent, installez-le avec la commande suivante.
# dnf -y install php-mysqlnd
http://192.168.33.10/ Si vous y accédez à nouveau, vous pouvez vérifier normalement le résultat de la connexion à MariaDB comme indiqué ci-dessous.
array(1) { ["n"]=> string(19) "2020-09-27 15:11:27" }
Nous préparerons l'environnement de développement pour CodeIgniter. J'utiliserai le compositeur, alors préparez d'abord le compositeur.
# cd /usr/local/src
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
#Le hachage suivant est le dernier: v1.10.C'est 13 choses.
#Https si la version cible est différente://getcomposer.org/download/Prière de se référer à.
# php -r "if (hash_file('sha384', 'composer-setup.php') === '795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
# php composer-setup.php
# php -r "unlink('composer-setup.php');"
# mv composer.phar /usr/local/bin/composer
# composer -V
Composer version 1.10.13 2020-09-09 11:46:34
Créez un projet CodeIgniter4 à l'aide de composer.
# cd /var/www/html
# composer create-project codeigniter4/appstarter codeigniter4
Le problème suivant semble s'être produit, supprimez donc le projet codeigniter4
une fois créé, réinsérez les modules d'extension nécessaires et recréez le projet.
Your requirements could not be resolved to an installable set of packages.
Problem 1
- codeigniter4/framework v4.0.4 requires ext-intl * -> the requested PHP extension intl is missing from your system.
- codeigniter4/framework v4.0.3 requires ext-intl * -> the requested PHP extension intl is missing from your system.
- codeigniter4/framework v4.0.2 requires ext-intl * -> the requested PHP extension intl is missing from your system.
- codeigniter4/framework v4.0.1 requires ext-intl * -> the requested PHP extension intl is missing from your system.
- codeigniter4/framework 4.0.0 requires ext-intl * -> the requested PHP extension intl is missing from your system.
- Installation request for codeigniter4/framework ^4 -> satisfiable by codeigniter4/framework[4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4].
# dnf install php-intl
Quand je lance à nouveau composer create-project
, j'obtiens un avertissement, mais le problème a disparu, donc j'ai terminé.
http://192.168.33.10/codeigniter4/public/index.php
Sous {project-name} / public / semble être la racine du document de codeigniter4 installé par composer. Donc, changez la racine du document de nginx.
conf:/etc/nginx/conf.d/default.conf
root /var/www/html/codeigniter4/public;
Si vous redémarrez nginx après les modifications ci-dessus, vous pouvez accéder au projet codeigniter4 à l'URL suivante. http://192.168.33.10
Il existe un fichier de paramétrage des variables d'environnement appelé ʻenv, mais il ne peut pas être utilisé tel quel. Copiez-le dans un fichier nommé
.env` et commencez à l'utiliser.
# cd /var/www/html/codeigniter4
# cp -p env .env
/var/www/html/codeigniter4/.env
#Paramètres de vérification des informations d'erreur pendant le développement
CI_ENVIRONMENT = development
# config.base de php_Celui qui a été défini dans l'URL
app.baseURL = 'http://192.168.33.10/'
#Informations de connexion à la base de données MySQL
database.default.hostname = localhost
database.default.database = yudb
database.default.username = yu
database.default.password = yupass
database.default.DBDriver = MySQLi
database.default.charset = utf8mb4
Recommended Posts