Maison  >  Article  >  développement back-end  >  php+nginx implémente un script de déploiement automatisé (version simple)

php+nginx implémente un script de déploiement automatisé (version simple)

藏色散人
藏色散人avant
2020-01-02 17:52:453661parcourir

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer