使用tomcat搭建centos的yum源

最近在折腾大数据,需要搭建一个yum源。一般的做法是在CentOS中安装httpd,然后将rpm包放入/var/www/html下面,再执行[createrepo .]即可。

不过虚拟机对传文件终归是慢一拍,所以考虑到性能,想直接使用宿主机(我用的win10)搭建一个yum源。

可以有多个选择:IIS、Tomcat、httpd、nginx等等,个人倾向于Tomcat,笑。

不过没想到Tomcat很不给面子,折腾如下:

第一次:在/conf/Catalina/localhost/ 下面新建Cloudera-cdh5.xml,UTF-8格式,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/Cloudera-cdh5" docBase="C:Cloudera-cdh5" crossContext="true">
</Context>

访问 http://localhost:8080/Cloudera-cdh5 报错,404。

第二次:将 C:Cloudera-cdh5 剪切到/webapps下面,访问 http://localhost:8080/Cloudera-cdh5 报错,404。

肯定有哪里不对,不过一时没反应过来为什么不对。后来突然想到了,应该是文件服务器,而不是页面服务器!Tomcat默认应该是页面服务器!

搜索了一下,果然!

第三次:在第一次的基础上,再修改/conf/web.xml ,修改部分如下:

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

将 listings 的 false 改为 true 即可!该项参数的说明:如果没有欢迎文件(index.html),是否应该生成目录列表?默认false。

再次访问 http://localhost:8080/Cloudera-cdh5 ,正常!内容如下:

image

ps:这里的repodata目录,理论上应该是在CentOS中使用[createrepo .]命令生成的,复制出来即可。

另外,还尝试过使用windows版本的httpd,将 C:/Cloudera-cdh5 剪切至 /htdocs下面,可以正常访问。但如果在配置文件中指定htdocs以外的路径,会提示没有权限。不止如此,还需要修改配置文件中的so文件的位置,略麻烦。

理论上nginx最简单,未尝试。

原文地址:https://www.cnblogs.com/larryzeal/p/6350275.html