Heim  >  Artikel  >  Backend-Entwicklung  >  php+nginx implementiert automatisiertes Bereitstellungsskript (einfache Version)

php+nginx implementiert automatisiertes Bereitstellungsskript (einfache Version)

藏色散人
藏色散人nach vorne
2020-01-02 17:52:453623Durchsuche

Erstellen Sie einen Deploy-Benutzer auf dem Zielcomputer (nehmen Sie den Deploy-Benutzer als Beispiel)

Fügen Sie einen Benutzer hinzu und erstellen Sie ein Passwort

/usr/sbin/groupadd deploy
/usr/sbin/useradd -g deploy -s /bin/bash deploy
passwd deploy

Geben Sie das Passwort zweimal ein und drücken Sie die Eingabetaste, um zu bestätigen

Zusätzlich: Benutzer wechseln, Befehl „su – bereitstellen“

Neuen Benutzer ohne Passwort verwenden und sudo-Befehl verwenden

Benutzer „deploy“ hinzufügen gerade jetzt kostenlos zu sudoers. Verwenden Sie den sudo-Befehl

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 # 新添加这一行

Jetzt können Sie sudo hier verwenden, um den Befehl in exec auszuführen, ohne das Passwort einzugeben

Der Zielcomputer ändert den PHP-FPM-Prozess so, dass er als Bereitstellungsbenutzer ausgeführt wird

Nehmen Sie Centos7.5 als Beispiel

vim /etc/php-fpm.d/www.conf
# 修改用户和用户组为deploy
user = deploy
group = deploy
 
# 如果存在listen用户和用户组,同样修改,不存在可以忽略
;listen.owner = deploy
;listen.group = deploy

Starten Sie PHP-FPM neu Dienst

service php-fpm restart

Der Zielcomputer ändert Nginx als Prozess und führt ihn als Bereitstellungsbenutzer aus

Nehmen Sie Centos7.5 als Beispiel

vim /etc/nginx/nginx.conf

Hinzufügen ein neuer Header (ändern, falls vorhanden)

user deploy;

Starten Sie nginx neu

nginx -t
service nginx restart

An diesem Punkt können Sie das PHP-Skript verwenden, um den Befehl auszuführen und den Git-Code abzurufen. Achten Sie auf den Benutzer des PHP-Skripts und Sie können den Dateibenutzerbesitz festlegen:

# 批量修改 filedir 目录所属用户为deploy
sudo chown -R deploy:deploy filedir

PHP pull git Code update example

 $output = shell_exec('cd ~/www/test && git pull origin master');
 var_dump(output);

Für weitere PHP-bezogene Kenntnisse, Bitte besuchen Sie das PHP-Tutorial!

Das obige ist der detaillierte Inhalt vonphp+nginx implementiert automatisiertes Bereitstellungsskript (einfache Version). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen