在Ubuntu16.04_x64(Linux)上安装Apache+Tomcat并配置(超详细) - 2019.02.25

本文详细介绍Apache与Tomcat的安装、配置及整合过程。包括Apache的安装与配置,Tomcat的下载、解压及配置,以及如何通过ApacheTomcatConnectors实现Apache与Tomcat的整合,确保静态资源由Apache处理,动态内容交由Tomcat处理。

一、Apache的安装与配置

1.安装Apache:

sudo apt-get install apache2

2.配置

找到Apache的配置文件,在配置文件末尾添加内容:ServerName 域名或ip:80

我的Ubuntu的Apache的配置文件路径是/etc/apache2/apache2.conf(如果找不到这文件,就使用命令find / -name 'apache2.conf'或者find / -name 'httpd.conf'查找apache2.conf/httpd.conf文件,因为有的教程安装时候的配置文件是httpd.conf)

3.启动Apache服务器

sudo systemctl start apache2

4.检查是否启动Apache服务器成功

在浏览器输入http://ip地址或域名:80
我的出现了这个页面,说明Apache服务器启动成功:

或者有的教程出现的是下面这个界面(下面这张图是百度来的),也是一样的,说明启动成功:

 

 

二、Tomcat安装与配置

参考文章:http://wiki.ubuntu.org.cn/Tomcat

1.下载安装包:https://tomcat.apache.org/

然后使用wget下载此链接的文件

2.解压压缩包(将压缩包解压到任意一个路径,即你想要安装的路径)

我是在/home/下创建了目录my_install,然后将下载的压缩包解压到此处.解压zip包需要安装unzip包,先安装解压命令包.

sudo apt install unzip

然后在下载apache-tomcat-8.5.38.zip的路径下:

unzip apache-tomcat-8.5.38.zip /home/my_install/

解压完成后是下面这样的↓

其中,conf目录中存放的是一些tomcat的配置文件,包括以下文件↓

目录和文件说明(参考文章https://www.cnblogs.com/baiqiantao/p/5384127.html,此文章很详细,推荐阅读):

bin目录:
此目录我们常用到的文件有两种。.sh文件是在linux下使用的,.bat文件是在window下使用的。下面以linux为例
startup.sh - 用来启动tomcat。使用方法:sh startup.sh 即可启动tomcat
shutdown.sh - 用来关闭tomcat。使用方法:sh shutdown.sh 即可关闭tomcat

conf目录:
server.xml - 可以设置端口号、设置域名或IP、默认加载的项目、请求编码
web.xml - 可以设置tomcat支持的文件类型
context.xml - 可以用来配置数据源之类的
tomcat-users.xml - 用来配置管理tomcat的用户与权限
catalina.properties - 配置tomcat的缓存

lib目录:
此目录用来存放tomcat运行需要加载的jar包
例如我们可以将连接数据库的jdbc的jar包放到此目录下

logs目录:
此目录存放着tomcat在运行过程中产生的日志文件,就是使用System.out.print(..)/或者System.err.print(..)等输出的内容都会写入到catalina.out(windows中是catalina.xxxx-xx-xx.log)文件中(删除文件或文件内容不会影响tomcat运行)

temp目录:
此目录存放tomcat在运行过程中产生的临时文件(删除此目录的文件不会影响tomcat运行) 

webapps目录:
此目录用来存放web应用程序,当tomcat启动时会去加载webapps目录下的应用程序,只要将web项目的根文件夹或者war包形式的项目放置再此目录下即可完成部署

work目录:
此目录用来存放tomcat在运行时的编译后文件,例如.jsp编译后的文件。清空work目录可达到清除缓存的作用(需重启Tomcat)

 

3.启动tomcat

将conf/server.xml文件中的<Connector port="8080" protocol="HTTP/1.1"这一行的8080修改为80(因为我的阿里云服务器只开放了80和443端口,没有开8080端口,因此需要修改才可访问)

因为第一步安装Apache服务器的时候我试启动了,此时它还占着80端口,所以需要先关闭一下(输入命令:service apache2 stop),然后进到bin目录中启动tomcat:sh startup.sh

此时报错了(说是没有执行权限)↓

修改一下启动和停止这两个文件的权限:(格式 - sudo chmod 777 文件名)

sudo chmod 777 startup.sh
sudo chmod 777 shutdown.sh

注意:以上文件在执行时候会执行其他文件,
如果只修改上面两个文件还是会出现执行其他文件没有执行文件权限的错误,
因此我索性使用下面这一句修改bin文件夹下所有文件都有可执行权限

sudo chmod 777 * #此行是将此文件夹下的所有文件权限改为可读可写可执行

然后再启动一次(sh startup.sh),如果出现了"Tomcat started"字样,说明Tomcat启动成功了

4.测试tomcat

在浏览器输入你的http://域名(或http://你的ip:80),如果出现以下页面说明tomcat正确的启动成功了

 

server.xmlserver.xmlserver.xmlserver.xml

三、整合Apache和Tomcat

参考文章:https://blog.youkuaiyun.com/kesixin/article/details/77779021https://blog.youkuaiyun.com/u011726984/article/details/51226662

1.下载Apache Tomcat Connectors(简称JK,整合tomcat和其他web服务器的一个连接器

下载链接http://tomcat.apache.org/download-connectors.cgi
注意:之前在别的网址下了.zip坑死我了,后来转到这网址才看到这里的.zip是给windows用的
复制下载链接,然后使用命令(wget 文件链接)下载后缀为tar.gz到linux上(我下载的文件是:tomcat-connectors-1.2.46-src.tar.gz)
然后使用命令:gunzip tomcat-connectors-1.2.46-src.tar.gz 解压成gunzip tomcat-connectors-1.2.46-src.tar
再使用命令:tar -xf tomcat-connectors-1.2.46-src.tar 解压tar包

 

2.安装apxs(sudo apt install apache2-dev)

查看apxs的安装路径:whereis apxs(我安装好后查出来的路径是:apxs: /usr/bin/apxs /usr/share/man/man1/apxs.1.gz)

 

3.编译生成mod_jk.so文件

cd进到tomcat-connectors-1.2.46-src.zip解压缩的文件夹中的native目录下

然后执行命令(执行每个命令都会跳出一大堆信息,这是正确的):

命令1: ./configure --with-apxs=/usr/bin/apxs # (此处apxs路径是上面使用whereis apxs查出来的路径)

命令2: make

以上两个命令行执行完毕后,cd进到native/apache-2.0/,此目录下可以找到一个mod_jk.so文件。将这个文件复制到apache安装路径下的modules文件夹下,我是用apt-get install apache2安装的,modules文件夹路径为:/usr/lib/apache2/modules

复制mod_jk.so到/usr/lib/apache2/modules下:

cp mod_js.so /usr/lib/apache2/modules

 

4.创建相关配置文件   (以下文件内容,特别是路径,需要根据你自己的情况的路径来配置)

①环境变量的配置:/etc/profile

# JDK的环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

# Tomcat的环境变量
export CATALINA_HOME=/home/my_install/apache-tomcat-8.5.38
export PATH=${CATALINA_HOME}/bin:$PATH

# Apache2服务器的环境变量
export PATH=/usr/sbin:$PATH

 

②Apache的配置文件:/etc/apache2/apache2.conf

# ServerName localhost:80

# 导入jk(mod_jk)模块
Include /etc/apache2/mod_jk.conf

<VirtualHost *:80>
	DocumentRoot "/home/my_install/apache-tomcat-8.5.38/webapps/test" #tomcat部署的工程目录
	JkMount /* worker1                      #这句话表示把所有请求都抛给tomcat1处理,tomcat1是随后workers.properties文件中的一实例
	ServerName   fucaijin.cn                #访问站点的域名,如果没有就写成localhost
	JkUnMount /*.jpg  tomcat1           	#表示所有的.jpg都不抛给tomcat1,由Apache自己处理,其他文件类型也一样
</VirtualHost>

 

③jk的配置文件:/etc/apache2/mod_jk.conf

# Load mod_jk module
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

<IfModule jk_module>
# 设置workers的配置文件路径
JkWorkersFile /etc/apache2/workers.properties

# 对网页的过滤规则
JkMountFile /etc/apache2/uriworkermap.properties

# jk的共享内存路径(共享内存是在做服务器集群使用要用到的,此文件会自动创建)
JkShmFile     /var/log/apache2/mod_jk.shm

# jk的log路径
JkLogFile     /var/log/apache2/mod_jk.log

# jk输出log的级别设置 [debug/error/info](可选)
JkLogLevel    info

# mod_jk日志的时间戳格式(可选)
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</IfModule>

 

④JkWorkersFile的配置文件:/etc/apache2/workers.properties

# 1.为mod_jk模块指明Tomcat的安装路径
workers.tomcat_home=$CATALINA_HOME

# 2.为mod_jk模块指明JDK的安装路径
workers.java_home=$JAVA_HOME

# 3.添加一个worker到worker列表,注意:worker.list中worker的名字应该与/etc/apache2/apache2.conf配置文件中的JkMount的值一致。如果要使用服务器集群,即调用多个tomcat(一台机器可以运行多个Tomcat,也可以是多台机器上的多个tomcat),就使用逗号分开即可,例如worker.list=tomcat1,tomcat2,tomcat3...
worker.list=tomcat1

# 4.为worker.list中的tomcat设定各个参数
# 4.1.工作端口,Tomcat的默认Connector(连接器)监听端口,可以查看Tomcat目录下的/conf/下的server.xml中有protocol="AJP/1.3"这一行的port值是"8009"(默认的)
# 8009为AJP端口,APACHE能过AJP协议访问TOMCAT的8009端口。
# Connect(连接器)负责接收外部连接请求,创建Request、Response对象用于请求的数据交换,并分配线程让Container处理该请求,支持多种协议的请求(如HTTP,AJP等)
worker.tomcat1.port=8009

# 4.2.Tomcat所在机器,如果安装在与apache不同的机器则需要设置IP或者域名
worker.tomcat1.host=localhost

# 4.3.worker的类型,允许的值为ajp13、ajp14、lb、status等;ajp13是mod_jk连接WebServer和Tomcat的首选方式(即使用socket作为通信渠道)
worker.tomcat1.type=ajp13

# 4.4.负载平衡因,表示权重,值越高权重越大,此tomcat得到请求的分发概率就越大
worker.tomcat1.lbfactor=1

 

⑤uriworkermap.properties过滤规则的配置文件:/etc/apache2/uriworkermap.properties

#定义tomcat处理的文件类型,tomcat不处理的由apache来处理。
/*=tomcat1 			# 所有的请求都由 tomcat1 这个 worker 进行处理  
/jkstatus=jk-status #/jkstatus 请求由status这个 worker 处理

!/*.jpg=tomcat1  
!/*.gif=tomcat1  
!/*.png=tomcat1  
!/*.bmp=tomcat1
!/*.html=tomcat1  
!/*.htm=tomcat1  
!/*.swf=tomcat1
!/*.css=tomcat1  
!/*.js=tomcat1

/*=work1表示说:所有的请求都交给tomcat处理。/是相对路径
!/*.jpg=tomcat1表示说:在根目录下,所有的jpg结尾的文件都不由tomcat1处理,由apache服务器自己处理

 

注:在第二步(Tomcat安装与配置)中的第三小步:启动tomcat时为了单独测试tomcat我把8080改为了80端口,此时需要修改回8080,不然会出错.因为tomcat用了80,apache也要用80,会有冲突导致启动失败.

 

启动tomcat: 进到tomcat的bin目录下执行命令 - ./startup.sh (如果是windows系统则使用:./startup.bat)

启动apache: service apache2 start

通过浏览器可以访问服务器即表示服务器启动成功,如下图所示:

如果我的文章对您有帮助,就请客官给个赞吧

THE END!  

2019-02-25 23:19 HaiKou.

<think>好的,我需要帮助用户解决如何安装他们下载的Clang+LLVM 12.0.1的tar.xz文件在Ubuntu 16.04系统上。首先,我得回想一下安装这类压缩包的一般步骤。用户提供的文件名是clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz,看起来是预编译好的二进制包,所以不需要从源码编译,这应该简化了安装过程。 首先,用户可能需要解压这个tar.xz文件。tar.xz通常使用tar命令解压,参数是-J或者使用xz工具先解压再tar。我需要确认正确的解压命令,比如tar -xvf,可能还需要指定解压目录。用户可能不知道需要解压到哪里,通常这类预编译的包可以放在/usr/local或者用户的主目录下,但需要确保路径正确。 然后,解压后的目录结构可能包含bin、lib、include等文件夹,用户需要将这些文件放到系统的相应路径,或者添加到PATH环境变量中。可能需要指导用户如何添加路径到.bashrc或者.profile,这样每次登录后都能直接使用clang和llvm命令。 另外,可能需要检查依赖关系。虽然预编译包通常包含所有依赖,但Ubuntu 16.04比较旧,是否有一些基础库需要安装,比如libstdc++或者其他运行时库?可能需要提醒用户安装这些依赖,或者确认他们的系统是否满足要求。 还有权限问题,解压后的文件可能需要使用sudo复制到系统目录,或者用户可以选择安装到主目录下,不需要root权限。需要给出两种方法的步骤,说明各自的优缺点。 用户可能遇到的问题包括解压失败,路径设置错误,命令找不到等。需要预先想到这些情况,给出解决方案,比如检查文件完整性,确认解压路径,更新环境变量等。 最后,验证安装是否成功,通过运行clang --version或者llvm-config --version来确认版本是否正确。可能还需要提醒用户如果之前安装过其他版本的Clang/LLVM,如何处理冲突,比如更新替代版本或者调整PATH顺序。 总结起来,步骤应该是:1. 下载文件验证完整性;2. 解压到目标目录;3. 添加可执行文件路径到环境变量;4. 安装必要依赖;5. 验证安装。需要详细写出每个步骤的具体命令和注意事项,确保用户能够顺利执行。</think>--- ### **一、准备工作** #### **1. 确认系统兼容性** - **系统要求**:确认你的系统是 **64 位 Linux**(Ubuntu 16.04 或兼容版本)。 可通过以下命令检查: ```bash uname -m # 输出应为 x86_64 lsb_release -a # 查看系统版本 ``` #### **2. 安装依赖** - **基础工具**:确保已安装解压工具和必要依赖: ```bash sudo apt update sudo apt install xz-utils tar curl ``` --- ### **二、安装步骤** #### **1. 解压文件** 假设下载文件位于 `~/Downloads` 目录,执行以下步骤: ```bash cd ~/Downloads # 进入下载目录 tar -xf clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz ``` - **参数说明**: - `-x`:解压文件 - `-f`:指定文件名 #### **2. 移动文件到系统目录(推荐方式)** 将解压后的文件夹移动到 `/usr/local`(需管理员权限): ```bash sudo mv clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04 /usr/local/llvm-12.0.1 ``` - **目录说明**: - 路径 `/usr/local/llvm-12.0.1` 是约定俗成的安装位置,可自定义。 #### **3. 配置环境变量** 编辑用户环境配置文件(如 `~/.bashrc` 或 `~/.zshrc`): ```bash nano ~/.bashrc # 或其他 Shell 配置文件 ``` 在文件末尾添加以下内容: ```bash export PATH="/usr/local/llvm-12.0.1/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/llvm-12.0.1/lib:$LD_LIBRARY_PATH" ``` 保存后执行: ```bash source ~/.bashrc # 使配置生效 ``` --- ### **三、验证安装** #### **1. 检查命令是否可用** ```bash clang --version # 输出应包含 "clang version 12.0.1" llvm-config --version # 输出应为 12.0.1 ``` #### **2. 检查文件路径** 确认可执行文件位于 `/usr/local/llvm-12.0.1/bin`: ```bash ls /usr/local/llvm-12.0.1/bin # 应看到 clang、clang++、llvm-config 等文件 ``` --- ### **四、其他安装方式(可选)** #### **1. 本地安装(无需管理员权限)** 若无法使用 `sudo`,可将文件解压到用户目录(如 `~/llvm-12.0.1`),更新环境变量: ```bash mv clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04 ~/llvm-12.0.1 ``` 在 `~/.bashrc` 中添加: ```bash export PATH="$HOME/llvm-12.0.1/bin:$PATH" export LD_LIBRARY_PATH="$HOME/llvm-12.0.1/lib:$LD_LIBRARY_PATH" ``` #### **2. 创建符号链接(简化命令)** 若需全局访问,可为常用工具创建链接: ```bash sudo ln -s /usr/local/llvm-12.0.1/bin/clang /usr/bin/clang-12 sudo ln -s /usr/local/llvm-12.0.1/bin/clang++ /usr/bin/clang++-12 ``` --- ### **五、常见问题** #### **1. 报错“未找到命令”** - **原因**:环境变量未生效或路径配置错误。 - **解决**: ```bash source ~/.bashrc # 重新加载配置 echo $PATH # 检查路径是否包含 LLVM 的 bin 目录 ``` #### **2. 依赖库缺失** - **现象**:运行命令时报错如 `libtinfo.so.5: cannot open shared object file`。 - **解决**:安装缺失库: ```bash sudo apt install libtinfo5 ``` #### **3. 版本冲突** - **现象**:系统已安装其他 LLVM 版本,导致路径冲突。 - **解决**:通过完整路径调用指定版本,例如: ```bash /usr/local/llvm-12.0.1/bin/clang --version ``` --- ### **六、卸载方法** 1. 删除安装目录: ```bash sudo rm -rf /usr/local/llvm-12.0.1 ``` 2. 移除环境变量配置(编辑 `~/.bashrc` 删除相关行)。 3. 删除符号链接(如有): ```bash sudo rm /usr/bin/clang-12 /usr/bin/clang++-12 ``` --- **总结**: 1. 解压文件 → 移动至系统目录 → 配置环境变量 → 验证安装。 2. 若需多版本共存,可通过自定义路径和环境变量管理。 3. 优先检查环境变量和依赖库问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值