使用Jenkins部署到Apache拥有的目录

时间:2017-02-03 15:28:32

标签: wordpress jenkins permissions

背景

在工作中,我们最近开始使用Jenkins CI作为我们的Java代码。我们非常喜欢它,我们想将它用于一些PHP项目和我们维护的一些WordPress主题。

问题

我已经设置了Jenkins运行gulp任务来构建主题,这很好。然后我有一个部署作业,删除旧主题并移动新代码。这就是问题所在。我有一个在部署作业中运行的bash脚本,如下所示:

whoami
mv /var/www/html/wordpress/wp-content/themes/my-theme /var/www/html/wordpress/wp-content/backups/theme/$(date '+%F')_$BUILD_NUMBER-backup_my-theme
mv $JENKINS_HOME/workspace/Build_MyTheme/build/my-theme /var/www/html/wordpress/wp-content/themes

当这个运行时,我会进入权限问题。很多“权限被拒绝”的错误。 whoami命令打印tomcat。然后,就像我提到的那样,之后的命令会为移动文件夹(其父文件夹和self,由apache拥有)抛出权限被拒绝的错误。据我所知,为了使WordPress主题具有更新自身等便利功能,以及能够更新和删除的插件;主题和插件需要由apache用户拥有。

我是Jenkins CI的新手,实际上是另一个开发者用Java编写的。所以我可能做错了,但我认为主要问题是权限问题。 如果tomcat必须操纵apache拥有的文件,您将如何克服权限错误?

我尝试了什么

我尝试将apache和tomcat添加到名为webusers的组中,但在尝试使用Jenkins操作文件时,我仍然获得了权限被拒绝的错误。

我尝试将文件的所有者更改为tomcat

permissions of the wp-content directory

这是wp-content目录。正如你所看到的,或者可能不是因为它如此像素化,插件和主题文件夹归tomcat和webusers目录所有。这个有效,但有一个主要缺点:

Cannot manipulate things from WordPress dashboard

这是一个主要缺点,因为它会造成糟糕的用户体验。

我也试过让apache成为所有者,并使用该组(之前创建的),然后WordPress工作,但Jenkins无法部署:

non-working permissions

我在这里不知所措,我已经多次搜索过关于“WordPress和Jenkins”的主题,“用Jenkins表达WordPress”等等。我能想到的品种很多。我甚至去了the Jenkins Documentation寻求帮助,但它反映了Drupal教程。

read somewhere您可以部署Jenkins的Apache版本,这可能适用于我们的PHP项目,但是最好的做法是每种语言都有一个Jenkins实例吗? < / p>

任何帮助都会很棒。提前谢谢你。

0 个答案:

没有答案