vagrant + ContOS7 + php7.2 + nginx + phalcon4 Construction de l'environnement et enregistrement des problèmes
Référence: https://qiita.com/wjtnk/items/f2d72fb3790d008a3154
Installation de l'outil: https://www.virtualbox.org/ https://www.vagrantup.com/
$ mkdir phalcon
$ cd phalcon
$ mkdir sync
$ vagrant init CentOS7
Modifier phalcon / Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
#Adresse IP pour l'accès local.
config.vm.network "private_network", ip: "192.168.10.10"
#Spécifiez la destination de synchronisation. "Répertoire actuel (.)/Synchroniser sous vagrant "et" répertoire de synchronisation/var/www/Synchronisez ci-dessous.
config.vm.synced_folder ".", "/vagrant"
config.vm.synced_folder "sync", "/var/www/"
config.vm.network "forwarded_port", guest: 80, host: 8080
#Utilisons maintenant epel et remi.
config.vm.provision "shell", inline: <<-SHELL
sudo yum update -y
sudo yum -y install epel-release
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
SHELL
end
Lancer vagrant
$ cd phalcon
$ vagrant up --provision
Si une erreur se produit, traitez-la avec un message d'erreur.
https://qiita.com/chubura/items/4166585cf3f44e33271d
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:
La solution est:
$ vagrant plugin install vagrant-vbguest
$ vagrant ssh
$ sudo yum install --enablerepo=remi-php72 php php-mbstring php-mcrypt php-mysqlnd php-pdo php-fpm nginx -y
Modifier les paramètres php-fpm
$ sudo vi /etc/php-fpm.d/www.conf
Remarque: recherchez dans vim avec "/"
/etc/php-fpm.d/www.conf
; user = apache
; group = apache
; listen = 127.0.0.1:9000
;listen.owner = nobody
;listen.group = nobody
user = nginx
group = nginx
listen = /run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
Modifier les paramètres de nginx
sudo vi /etc/nginx/nginx.conf
Pour root, spécifiez le répertoire racine spécifié dans le Vagrantfile mentionné ci-dessus. J'ai défini "autoriser tout;", mais lorsque vous utilisez Nginx pour contrôler l'accès par adresse IP, définissez-le séparément. référence: https://dev.classmethod.jp/articles/nginx-ip-access-control/
/etc/nginx/nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www;
index index.php index.html index.htm;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
#$_SERVER['REQUEST_URI']utilisation
try_files $uri $uri/ /index.php;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ~ .php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
À ce stade, testez le serveur une fois
$ exit
$ cd sync
$ touch index.php
index.php
<?php phpinfo();
Une fois les paramètres définis, vérifiez si le fichier est reflété dans l'environnement virtuel.
[vagrant@localhost /]$ cd var/www
[vagrant@localhost www]$ ls
cgi-bin html index.php
Démarrez le serveur. Remarque: un redémarrage est nécessaire lorsque de nouveaux ajouts tels que les extensions php se produisent.
$ vagrant ssh
$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx
##Vérification de l'état, réussie si active
$ sudo systemctl status php-fpm
$ sudo sudo systemctl status nginx
Si vous accédez à 192.168.10.10 et que la page phpinfo apparaît, vous avez réussi.
Parfois, dans le cas de "403 Forbidden in Nginx", il existe une solution de contournement pour soit modifier les permissions des fichiers sous "/ var / www" soit désactiver SELinux. Référence: https://engineers.weddingpark.co.jp/?p=1765
$ sudo yum install --enablerepo=remi-php72 php-phalcon4 -y
Trouvez le phalcon.so installé.
$ find / -name phalcon.so
Trouvé dans les endroits suivants.
/usr/lib64/php/modules/phalcon.so
/usr/lib64/php-zts/modules/phalcon.so
php --info | grep phalcon
Si vous sortez ci-dessous, vous avez terminé:
/etc/php.d/50-phalcon.ini
phalcon
phalcon => enabled
Accédez à nouveau à 192.168.10.10, et si "phalcon" apparaît sur la page phpinfo, c'est réussi.