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

藏色散人
Libérer: 2023-04-08 07:22:01
avant
3685 Les gens l'ont consulté

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
Copier après la connexion

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 # 新添加这一行
Copier après la connexion

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
Copier après la connexion

Redémarrez le php-fpm service

service php-fpm restart
Copier après la connexion

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
Copier après la connexion

Ajouter un nouvel en-tête (modifier s'il existe)

user deploy;
Copier après la connexion

Redémarrer nginx

nginx -t
service nginx restart
Copier après la connexion

À 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
Copier après la connexion

Exemple de mise à jour du code PHP pull git

 $output = shell_exec('cd ~/www/test && git pull origin master');
 var_dump(output);
Copier après la connexion

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal