找不到 httpd.conf (Unable to find httpd.conf)


問題描述

找不到 httpd.conf (Unable to find httpd.conf)

I'm running tomcat and I want to change the default webroot so that it points to another location.  Is there a way to find out what's running tomcat or where the default webroot is set as I can't find httpd.conf which is where I believe it's usually set?

Cheers,

Alexei Blue.

**UPDATE:**

It's been a long time since I looked at this question that I forgot about it.  In the end it turned out that we were using Apache HTTPD to accept requests from port 80.  From there we had the webroot and ProxyPass rules set in the /etc/httpd/conf/virtual‑hosts/default.conf file (these can also be set in /etc/httpd/conf/httpd.conf).  From there we had several tomcat instances running, all hosted on different ports which are setup in apache‑tomcat‑x/conf/server.xml.

When I wrote this question I was trying to setup a new tomcat instance to run an application in development and was told I would need to change the webroot to access my application, which was incorrect.  Instead what I needed was to include a ProxyPass rule so that when my application name was recognised in the URL, HTTPD would send the request to the correct tomcat instance to be processed. E.g.

www.domain.com/myApplication

In /etc/httpd/conf/virtual‑hosts/default.conf

ProxyPass /myApplication/ ajp://127.0.0.1:<ajp_port>/myApplication/
ProxyPassReverse /myApplication/ ajp://127.0.0.1:<ajp_port>/myApplication/

Where the ajp_port is setup in apache‑tomcat‑x/conf/server.xml.  I needed to ensure that non of the ports conflicted with other tomcat instances so remember to check all ports i.e. Shutdown, HTTP, HTTP with SSL, AJP etc.

‑‑‑‑‑

參考解法

方法 1:

Tomcat doesn't use httpd.conf, that is an apache file. The location of the individual webapps are kept in their individual web.xml files, but the location of all the configs are in ../tomcat6/conf/server.xml and web.xml

Is it where the files come from you want to move, or where it compiles and executes them from?

方法 2:

As @Woody says, Tomcat does not use httpd.conf files: that's an Apache httpd thing (httpd is a web server, Tomcat is a Java application server).

You didn't mention what OS you are using or what package management software you are using (e.g. yum, apt, etc.) so I'll give you generic information as if you had downloaded and installed Tomcat directly from apache.org (which I usually recommend people do for a number of reasons).

Tomcat keeps its server‑wide configuration in the conf/server.xml file in the Tomcat base installation directory (often called $CATALINA_BASE for convenience): here, you configure things like what types of connectors (e.g. HTTP, HTTPS, AJP, etc.) to use and which ports they should listen to, clustering configuration, session persistence, global JNDI and realm resources. There are also conf/web.xml and conf/context.xml files that define defaults for all webapps deployed on that instance of Tomcat, but it's best to leave those files alone unless you have a really good reason to modify them.

When you want to deploy a webapp (under the default configuration), all you need to do is drop a .WAR file into the $CATALINA_BASE/webapps/ directory and the webapp will be deployed into a "context path" (aka URL prefix) that matches the name of the file minus the ".WAR" suffix. So, if you have a WAR file called mygreatwebapp.war, then it will be deployed such that your clients can reach it at http://yourhost/mygreatwebapp/. There is a special name you can give a WAR file so that it has an empty context path: if you name your WAR file ROOT.war (case matters), then your webapp can be reached at http://yourhost/. (If you would rather use exploded‑WAR directories instead of WAR files, everything above still applies except the directories simply don't have the .war extension).

Given your original question, it sounds like all you want to do is drop a ROOT.war file into $CATALINA_BASE/webapps (or replace the one that is already there): this will deploy whatever webapp you want into the URL space that you might call the "default webroot".

Update If you want to change the directory where all the webapps live for a host, you can modify $CATALINA_BASE/conf/server.xml and change the <Host>'s appBase attribute to point to, say, /cfusion/main/www/. That will deploy all the WAR files and directories in /cfusion/main/www/ as separate webapps.

If you just want to serve a single webapp from an arbitrary location, you may create a deployment file under $CATALINA_BASE/conf/[EngineName]/[HostName]/[appname].xml. This is a standard file like META‑INF/context.xml and contains a <Context> element except that you will have to specify a docBase which points to your webapp (e.g. /cfusion/main/www/mywebapp).

(by Alexei BlueWoodyChristopher Schultz)

參考文件

  1. Unable to find httpd.conf (CC BY‑SA 3.0/4.0)

#webserver #apache #tomcat






相關問題

高性能 IIS 的最佳實踐/工具? (Best practices / tools for high performance IIS?)

找不到 httpd.conf (Unable to find httpd.conf)

auto_prepend_file 多個文件 (auto_prepend_file multiple files)

如何正確配置 Intellij IDEA 中的 JBoss?我得到錯誤:未指定服務器實例 (How to configure correctly the JBoss in the Intellij IDEA? I get Error:server instance not specified)

在後台android更新數據到服務器 (update data to server in the background android)

根據網絡連接將用戶引導到不同的頁面 (Direct user to different page based on network connection)

與 apache 網絡服務器和 Node.js REST 服務器共享 HTTP 端口 80 (Share HTTP port 80 with apache webserver and Node.js REST server)

有沒有像 ASP.NET 的 webrick 之類的東西? (Is there anything like webrick for ASP.NET?)

Apache、lighttpd、nginx、切諾基,什麼是最好的組合? (Apache, lighttpd, nginx, cherokee, what's the best combination?)

在我的域服務器上使用 Ruby on Rails 應用程序 (Consuming a Ruby on Rails app on my domain server)

在同一台 Ubuntu 服務器上安裝和配置 PHP5 和 7 (Install and configure PHP5 and 7 on same Ubuntu server)

如何從 http 請求中阻止端口服務器 (How to block port server from http request)







留言討論