Php Apache403禁止jenkins发布ssh调用shell

Php Apache403禁止jenkins发布ssh调用shell,php,apache,docker,jenkins,jenkins-pipeline,Php,Apache,Docker,Jenkins,Jenkins Pipeline,我在Centos7中使用Apache/2.4.6打开服务器 我还使用docker open gitlab和jenkins制作CI/CD 但我有一个奇怪的问题 我使用jenkins调用shell(我是root)将PHP文件部署到/var/www/html 我还尝试停止服务器并重新启动服务器 它将被禁止 这是我的外壳: #!/bin/bash path=`pwd` filepath="/var/www/html" echo "$path" echo "$filepath" sudo service

我在Centos7中使用Apache/2.4.6打开服务器

我还使用docker open gitlab和jenkins制作CI/CD

但我有一个奇怪的问题

我使用jenkins调用shell(我是root)将PHP文件部署到/var/www/html

我还尝试停止服务器并重新启动服务器

它将被禁止

这是我的外壳:

#!/bin/bash
path=`pwd`
filepath="/var/www/html"
echo "$path"
echo "$filepath"
sudo service httpd stop
if [ -d "$path/testproject" ];then
        echo "fetch code..."
        cd "$path/testproject"
        git pull
else
        echo "clone code ..."
        git clone ssh://git@XXXXX.com:2222/XXXXX/testproject.git
fi

if [ -d "$filepath/testproject" ];then
        echo "rm it"
        rm -rf $filepath/testproject
else
        echo "not rm"
fi

sudo mv "$path/testproject/phptest.php" $filepath
service httpd start
奇怪的是,如果我用詹金斯来称呼贝壳,它将被禁止

但是,如果我使用Xshell并调用shell,就可以了,两个版本的权限是相同的(它们都是755)

我不知道如何修复它,并找出哪里是我设置的错误

请帮助我或给我一些指导。

您可以查看SELinux

sestatus 
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 21
Policy from config file:        targeted


setenforce 0 //pause
setenforce 1 //pause start
您还可以更改配置

vim/etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
它们可能会帮助您解决权限问题