Maison >développement back-end >tutoriel php >php+nginx implémente un script de déploiement automatisé (version simple)
Créez un utilisateur de déploiement sur la machine cible (prenez l'utilisateur de déploiement comme exemple)
Ajoutez un utilisateur et créez un mot de passe
/usr/sbin/groupadd deploy /usr/sbin/useradd -g deploy -s /bin/bash deploy passwd deploy
Entrez le mot de passe deux fois et appuyez sur Entrée pour confirmer
Supplémentaire : commande de changement d'utilisateur su - déployer
Utiliser un nouvel utilisateur sans mot de passe et utiliser la commande sudo
Ajouter l'utilisateur déployer tout à l'heure aux sudoers gratuitement. Utilisez la commande sudo
visudo //修改/etc/sudoers的内容,或vim or vi 命令 vim /etc/sudoers ## Allow root to run any commands anywhere # 设置xxxx组下面的用户使用sudo不需要输入密码 root ALL=(ALL) ALL deploy ALL=(ALL) ALL # 新添加这一行 %deploy ALL=(ALL) NOPASSWD: ALL # 新添加这一行
Vous pouvez maintenant utiliser sudo, voici la commande en exec pour exécuter la commande sans entrer le mot de passe
La machine cible modifie le processus php-fpm pour s'exécuter en tant qu'utilisateur de déploiement
Prenons centos7.5 comme exemple
vim /etc/php-fpm.d/www.conf # 修改用户和用户组为deploy user = deploy group = deploy # 如果存在listen用户和用户组,同样修改,不存在可以忽略 ;listen.owner = deploy ;listen.group = deploy
Redémarrez le php-fpm service
service php-fpm restart
La machine cible modifie nginx en tant que processus et l'exécute en tant qu'utilisateur de déploiement
Prenons centos7.5 comme exemple
vim /etc/nginx/nginx.conf
Ajouter un nouvel en-tête (modifier s'il existe)
user deploy;
Redémarrer nginx
nginx -t service nginx restart
À ce stade, vous pouvez utiliser le script PHP pour exécuter la commande et extraire le code git en même temps, faites attention à l'utilisateur du script PHP. Vous pouvez corriger la propriété de l'utilisateur du fichier :
# 批量修改 filedir 目录所属用户为deploy sudo chown -R deploy:deploy filedir
Exemple de mise à jour du code PHP pull git
$output = shell_exec('cd ~/www/test && git pull origin master'); var_dump(output);
Pour plus de connaissances sur PHP, veuillez visiter le Tutoriel PHP !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!