在目标机器创建deploy用户(以deploy用户为例子)

添加用户并创建密码

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

输入两次密码,回车确认

附加: 切换用户命令 su - deply

使用新增用户免密使用sudo命令

添加刚才的用户deploy到sudoers里面,进行免密使用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 # 新添加这一行

到这里已经可以正常在exec中使用sudo here is command来执行命令了,而无需输入密码

目标机器修改php-fpm进程为deploy用户运行

以centos7.5为例子

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

重启php-fpm服务

service php-fpm restart

目标机器修改nginx为进程为deploy用户运行

以centos7.5为例子

vim /etc/nginx/nginx.conf

头部新增 (如果存在则修改)

user deploy;

重启nginx

nginx -tservice nginx restart

至此,可以使用php 脚本执行命令,并拉取git代码,同时,注意PHP脚本所属用户,可以修复文件用户归属:

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

PHP拉取git代码更新例子

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

更多PHP相关知识,请访问PHP教程!

更多相关文章

  1. PHP执行Linux命令的两个有用的函数exec和shell_exec
  2. 工作中常用到的Linux命令
  3. 还在百度Docker命令?推荐一套我用起来特顺手的命令!
  4. 还在百度Linux命令?推荐一套我用起来特顺手的命令!
  5. 【JavaWeb基础】JDBC用户登录注册(修订版)
  6. 2021年第三期培训(新手必须掌握的命令)
  7. 华为帐号服务升级,助力应用快速验证用户身份
  8. 开发者必备Docker命令
  9. 开发者必备Linux命令

随机推荐

  1. Centos安装完MariaDB后启动不了 MySQL is
  2. 在我的sql中调用触发器中的函数
  3. 【转】MySQL分库分表环境下全局ID生成方
  4. PHP和MySQL ACID程序设计
  5. 如何从表中获取每个id的最新状态?
  6. 获取具有行sql中的最大值的列名
  7. MySQL数据库 prompt参数详解
  8. MySql与SqlServer的一些常用用法的差别
  9. MySQL数据库之part1
  10. 转载:Centos7 从零编译Nginx+PHP+MySql 序