lam*_*ler 5 apache phing continuous-integration hudson codeigniter
我目前正在使用Phing和Jenkins来自动化我的CodeIgniter应用程序的构建和部署.我遇到的一个问题是重启apache服务.我试过Phing但是没有足够的权限.重启的最佳方法是什么?
编辑:
将jenkins添加到sudoer文件并执行服务httpd restart后,Jenkins抛出:处理泄露的文件描述符.下面是Jenkins的Phing输出片段.它说一个解决方法是安装daemonize.不确定那是什么意思...
...Build_test > compress:
[echo] YUI Compression started
[echo] Replacing normal JS with compressed files.
[echo] Replacing normal CSS with compressed files.
[echo] chmoding assets
[echo] YUI Compression ended
Build_test > pdepend:
Build_test > httpd_restart:
[echo] Stopping httpd: [ OK ]
[echo] Starting httpd: [ OK ]
BUILD FINISHED
Total time: 13.1424 seconds
Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build for more information
[JDepend] JDepend plugin is ready
[JDepend] Found 68 classes in 1 packages
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Linux,则可以使用sudo命令运行Phing,以便为其提供足够的权限来重启apache.
sudo phing restartapache
Run Code Online (Sandbox Code Playgroud)
假设restartapache是一个调用apache restart命令的exec任务.例如:
<target name="restartapache" description="Restarts the web server">
<exec command="/etc/init.d/apache2 restart" />
</target>
Run Code Online (Sandbox Code Playgroud)
要避免sudo命令提示输入密码,您可以更新您运行构建的任何用户帐户的sudo权限(此示例演示关闭jenkins用户的sudo密码提示):
sudo visudo
Run Code Online (Sandbox Code Playgroud)
然后添加以下行:
Defaults:jenkins !requiretty,!lecture
jenkins ALL=NOPASSWD:/etc/init.d/apache2
Run Code Online (Sandbox Code Playgroud)
根据这个答案,上面的内容已经过编辑以提高安全性,因此只允许Jenkins在没有密码的情况下重启apache.
归档时间: |
|
查看次数: |
3813 次 |
最近记录: |