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!