一、安装Apache
Apache版本:httpd-2.4.33.tar.gz
安装前准备:下载 httpd-2.4.33.tar.gz
apr-1.6.3.tar.gz
apr-util-1.6.1.tar.gz
expat-2.0.1.tar.gz
pcre-8.10.zip
步骤:
# tar xzvf httpd-2.4.33.tar.gz
# cd httpd-2.4.33
# ./configure --prefix=/usr/local/apache2 --enable-so (apache2看实际目录名字)
# sudo make
# sudo make install
./configure --prefix=/usr/local/apahce --enable-so ,若提示以下错误:
error: APR not found. Please read the documentation
则安装apr
# tar xzvf apr-1.6.3.tar.gz
# cd apr-1.6.3
# ./configure --prefix=/usr/local/apr
# sudo make
# sudo make install
再次返回到httpd-2.4.33 目录进行安装,检查编译环境
若报错:configure: error: APR-util not found. Please read the documentation
则安装apr-util
# tar xzvf apr-util-1.6.1.tar.gz
# cd apr-util-1.6.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# sudo make
# sudo make install
安装apr-util包make时报错:make: *** [all-recursive] Error 1
解决办法:安装Expat解析XML
# tar xzvf expat-2.0.1.tar.gz
# cd expat-2.0.1
# ./configure
# sudo make
# sudo make install
安装完成后重新返回apr-util-1.6.1目录执行
# sudo make
# sudo make install
再次返回到httpd-2.4.33 目录进行安装,检查编译环境,执行
./configure --prefix=/usr/local/apache --enable-so 仍提示APR-util not found增加--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
即
./configure --prefix=/usr/local/apache --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
执行后出现
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
#./configure –help | grep pcre
--with-pcre=PATH Use external PCRE library
则安装pcre-8.10.zip
#unzip -o pcre-8.10.zip
#cd pcre-8.10
#./configure --prefix=/usr/local/pcre
#sudo make
#sudo make install
最后安装apahce:(安装httpd服务需要指定apr apr-util pcre这三个目录才能正常安装)
./configure --prefix=/usr/local/apache --enable-rewrite --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
#sudo make
#sudo make install
httpd服务安装完成
二、启动Apache并访问验证
1.默认的web根目录为:htddocs
默认端口为:80
为避免冲突可将端口号修改为8088
# vi /usr/local/apache/conf/httpd.conf
找到 listen 80 修改为 8088保存退出
2.启动Apache服务器
# /usr/local/apache/bin/apachectl -k start
进入安装目录
# cd /usr/local/apache/bin/
# ./apachectl –k start|stop|restart 分别为启动 停止 重启
netstat -ltnp 检查网络端口 验证刚才我们的端口号是否打开了
# netstat –ltnp
这时查看我们的端口号是否打开了 结果:8088打开了
打开浏览器 输入 http://IP地址:8088
出现 it works 表示连接已经正常
到此安装完毕
3.配置rc.local文件将Apache的服务加入到开机自动启动(这步未使用网上看到的写出来预防万一)
# echo '/usr/local/apache2/bin/apachectl -k start' >> /etc/rc.d/rc.local
如果安装完成之后,发现还报错,可以将apr,apr-util的解压包拷贝至http解压包的srclib/目录下,然后重新安装
三、tomcat已安装
四、编译生成mod_jk
1、下载 tomcat-connectors-1.2.43-src.tar.gz
2、下载后,首先把tomcat-connectors-1.2.43-src.tar.gz复制到/usr/local
# cp tomcat-connectors-1.2.43-src.tar.gz /usr/local
解压
# tar xzvf tomcat-connectors-1.2.43-src.tar.gz
解压后,进入native文件夹
# cd tomcat-connectors-1.2.43-src/native
# ./configure --with-apxs=/usr/local/apache/bin/apxs (此处可根据apxs实际地址修改)
# make
完成编译后,在/usr/local/tomcat-connectors-1.2.43-src/native/apache-2.0文件夹下可以找到mod_jk.so文件
# cp ./apache-2.0/mod_jk.so /usr/local/apache/modules/
编译完成
3、问题:在编译mod_jk.so文件的时候,我遇到了找不到apxs文件,所以编译不了,apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。
正常按顺序安装后apxs就已存在,若没有有可能是查找路径有问题
我的是在/usr/local/apache/bin/apxs路径下
五、整合Apache和Tomcat
1、创建配置文件
在/usr/local/apache/conf/下面建立两个配置文件mod_jk.conf和workers.properties
mod_jk.conf 内容如下:
#LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/httpd/conf/workers.properties
# Where to put jk logs
JkLogFile /var/log/httpd/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
JkMount /*/servlet/* worker1
JkMount /*.jsp worker1
JkMount /application/* worker1
JkMount /*.do worker1
JkMount /*.class worker1
JkMount /*.jar worker1
workers.properties内容如下
# Defining a worker named worker1 and of type ajp13
worker.list=worker1
# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost (因安装在远程服务器上故我设置为ip)
worker.worker1.port=8009 (此处是tomcat的端口)
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
接着是对/conf文件夹下自带的httpd.conf文件加入如下内容:
LoadModule jk_module modules/mod_jk.so
Include /etc/httpd/conf/mod_jk.conf
DocumentRoot "/usr/local/apache-tomcat-7.0.81/webapps/test" (此处为tomcat新建测试test项目目录,根据实际情况修改)
JkMount /* worker1
保存之后重启Apache和Tomcat。
新建index.jsp页面放于tomcat目录webapps/test/index.jsp
Hello
<%
java.util.Date currentTime = new java.util.Date();
%>
<%=currentTime%>
访问http://ip:8088/test/index.jsp
若页面正常加载显示当前系统时间,则说明集成成功
但我目前访问时报502错误,原因未知,不知道是不是配置文件存在问题,若后续解决会更新文章
----------------------------------------------------------------------------------------------------------------
过程中遇到的问题:
一、xxx is not in the sudoers file.This incident will be reported.的解决方法
1.切换到root用户下
su - root
2.添加sudo文件的写权限,命令是:
chmod u+w /etc/sudoers
3.编辑sudoers文件
vi /etc/sudoers
找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
ps:这里说下你可以sudoers添加下面四行中任意一条
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
4.撤销sudoers文件写权限,命令:
chmod u-w /etc/sudoers
这样普通用户就可以使用sudo了.
二、Linux查看tomcat版本
先进到tomcat的bin目录下(cd /tomcat目录/bin),在执行./version.sh
三、vim 命令
https://blog.csdn.net/feosun/article/details/73196299