centos搭建https协议的tomcat和apache服务器以及nginx服务器,mysql php
Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。Apache 软件基金会中还有一个著名的服务器软件,叫Tomcat 。Apache HTTP Server 和 Tomcat 的区别和联系是:
- Apache 只支持 html 静态网页,可以通过插件支持 php ;Tomcat 支持asp、jsp、php、cgi等动态网页。
- Apache 是用C语言实现的;Tomcat 使用 Java 实现的,更好地支持 Servlet 和 JSP 。
- Apache 可以运行一年不重启,稳定性非常好;Tomcat 则不一定。
- Apache 对于静态页面的解析速度比 Tomcat 快。
- 服务器首选 Apache ,使用到 JSP 或 Servlet 才使用 Tomcat。
- Apache 比 Tomcat 早,是 Tomcat 的前辈。本质上来说 Tomcat 的功能可以替代
使用的是Centos7 版本:CentOS-7-x86_64-DVD-1511.iso
软件安装错误之后可以使用make uninstall 卸载
一、搭建Tomcat
1、获取基本安装包
tomcat官网:http://tomcat.apache.org/ 我用的是:apache-tomcat-7.0.68.tar.gz ,tar.gz就是linux版本,7.0版本需要最低的1.7jdk
jdk官网:http://www.oracle.com/technetwork/java/javase/archive-139210.html ,各个历史版本都有,我用的是 jdk-7u80-linux-x64.tar.gz 即1.7.0_80版本,64位的操作系统,如果是32位选择i586就行。
2、安装jdk
a、在linux下创建一个java安装目录(自己规划):mkdir -p /usr/java
b、讲jdk包上传到这个目录
c、解压jdk包,tar -zxvf jdk-7u80-linux-x64.tar.gz
d、添加环境变量,打开/etc/profile文件,vi /etc/profile最下面添加如下内容,红色标注的要根据实际情况自己修改,这里写入到/etc/profile文件,就不需要重新登录或者重启之后重新配置环境变量。
JAVA_HOME=/usr/java/jdk1.7.0_80
JRE_HOME=/usr/java/jdk1.7.0_80/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
e、是环境变量生效,并测试。
source /etc/profile
java -version
4、安装tomcat
a、在linux下创建一个tomcat安装路径(自己规划) mkdir -p /usr/tomcat
b、讲tomcat包上传到这个目录
c、解压缩包 tar -zxvf apache-tomcat-7.0.68.tar.gz
e、配置启动tomcat,进入到解压出来的 cd /usr/tomcat/apache-tomcat-7.0.68/conf/ 路径下,编辑 server.xml文件
修改主机名为服务器的IP(原文件里是localhost)
修改服务端口,理论上0-65555都可以吧,不过建议大于1000小于10000,没有被占用就行(netstat -an |grep xxx)
f、启动tomcat ,在 cd /usr/tomcat/apache-tomcat-7.0.68/bin目录下执行
./startup.sh #启动
./shutdown.sh #停止
g、检查tomcat服务,在浏览器输入http://$IP:$port 返回tom猫的web界面($IP 和$port表示步骤e中修改的ip和port,如果不能访问,查看 cd /usr/tomcat/apache-tomcat-7.0.68/logs/catalina.out定位下,一般不会有问题的
二、搭建appache
1、获取apache(httpd)安装包
httpd官网:http://www.apache.org/dist/httpd/ ,我用的是:httpd-2.2.31.tar.gz
2、安装httpd
a、在linux下创建一个appache安装路径(自己规划) mkdir -p /usr/appache
b、讲appache包上传到这个目录
c、解压缩包 tar -zxvf httpd-2.2.31.tar.gz
d、进入刚解压的这个目录/usr/apache/httpd-2.2.31 执行命令
./configure --prefix=/usr/local/httpd-2.4.23 --enable-module=so
make
make install
即安装apache在/usr/apache/apache目录下
3、遇到的问题及解决方案
1、配置http时报错,报错如下,提示apr不存在 :
root#./configure --prefix=/usr/local/httpd-2.4.23 --enable-module=so
configure: error: APR not found. Please read the documentation.
解决方案:安装apr,apr-1.5.2.tar.gz ; apr-util ;apr-util-1.5.4.tar.gz
./configure --prefix=/usr/local/apr-1.5.2 #prefix表示安装在该目录下,如果没有的话安装在默认目录下
make
make install
2、继续编译httpd提示 apr-tuil不存在
安装apr-util
./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2/ #安装apt-util 在 /usr/local/aprutil目录下
make
make install
3、继续编译httpd提示pcre不存在
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
安装pcre :pcre-8.39.zip
./configure --prefix=/usr/local/pcre-8.39
make
make install
这一步遇到了一个错误
/usr/pcre/missing: line 81: aclocal-1.15: command not found
网上说是时间戳的问题,我在本地pc上重新解压打包重传后解决了。
4、重新编译成功了,当前仅可以使用http,要使用https 需要加上参数 --enable-ssl 不使用enable-ssl则直接编译没有问题
./configure --prefix=/usr/local/httpd-2.4.23 --enable-module=so --enable-ssl --with-apr=/usr/local/apr-1.5.2 --with-apr-util=/usr/local/apr-util-1.5.4 --with-pcre=/usr/local/pcre-8.39 ##这些路径都是上面三个步骤的对应的安装路径
make
make install
5、安装openssl
编译过程中报错提示openssl版本太低,需要对openssl升级,使用的官网最新的 openssl-1.0.1t.tar.gz
tar zxvf openssl-1.0.1t.tar.gz
cd openssl-1.0.1t
./config shared --prefix=/usr/local/openssl-1.0.1t
make && make install
下面这部分可以不执行,这样就需要添加参数 --enable-ssl --with-ssl=/usr/local/openssl-1.0.1t
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/openssl-1.0.1t/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl-1.0.1t/include/openssl /usr/include/openssl
echo "/usr/local/openssl-1.0.1t/lib">>/etc/ld.so.conf
ldconfig -v
openssl version -a
6、
编译成功之后 make返回错误
/usr/bin/ld: cannot find -lcrypto
/usr/bin/ld: cannot find -lssl
是 /usr/lib64/ 目录下缺少 libcrypto.so 和libssl.so模块
将新安装的 openssl的这两个模块通过软连接连接过来就行
ln -s /usr/local/openssl-1.0.1t/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so #/usr/local/openssl-1.0.1t是问题5里安装的openssl路径
ln -s /usr/local/openssl-1.0.1t/lib/libssl.so.1.0.0 /usr/lib64/libssl.so
6、重新编译并安装即可
./configure --prefix=/usr/local/httpd-2.4.23 --enable-module=so --enable-ssl --with-ssl=/usr/local/openssl-1.0.1t --with-apr=/usr/local/apr-1.5.2 --with-apr-util=/usr/local/apr-util-1.5.4 --with-pcre=/usr/local/pcre-8.39
make && make install
7、启动报错
修改/usr/local/httpd-2.4.23/conf/httpd.conf文件中
修改ServerName www.example.com:80 为 ServerName localhost:80 ##注意删除该行头部的注释符 #
8、启动http服务器并测试
service httpd start #启动
sevice httpd stop #停止
启动有问题,不知道为啥没有/etc/httpd下的文件
可以参考下,没有验证,目前通过 /usr/local/httpd-2.4.23/bin/apachectl start/stop 启动和停止
http://www.linuxidc.com/Linux/2011-08/41260.htm
9、配置httpd.conf文件
10、在浏览器输入http://$ip:80访问,返回一个测试界面。
3、 配置http服务器
在CentOS里Apache的默认文档路径的位置是在/var/www/html,配置文件的路径是/etc/httpd/conf/httpd.conf。其他的配置存储在/etc/httpd/conf.d/ 文件夹里
三、配置ssl协议
3.1 配置tomcat 使用https
1、生成证书文件
keytool -genkeypair -alias tomcat.keypair -keyalg RSA -keysize 2048 -keypass tomcat -keystore .keystore -storepass tomcat
2、将证书文件放在tomcat的conf目录下
3、编辑conf目录下server.xml文件,把ssl协议对应的注释去掉,加上两行配置,重启之后尝试访问https://IP:8443
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/.keystore" #也可以以绝对路径给出
keystorePass="tomcat" #步骤一中 -storepass对应的参数
/>
3.2 配置apache使用https
1、安装mod_ssl
yum install mod_ssl
2、完成后查看/etc/httpd/conf.d/下会有一个ssl.conf的文件(centos)
freebsd的下不需要步骤1直接查看 httpd.conf配置文件中httpd-ssl.conf文件的位置就行。
主要是看下证书及密钥的位置
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
3、生成密钥,进入/etc/pki/tls/private,
备份下原来的
mv localhost.key localhost.key.bak
生成新的
openssl genrsa 1024 > localhost.key
4、生成证书
cd ../certs
备份原来的证书
mv localhost.crt localhost.crt.bak
生成新的证书
make testcert 自动生成,也可以自己输入命令 然后centos会提示你输入些信息比如国家 地区 邮箱等 随便写
openssl req -new -x509 -days 365 -key ../private/localhost.key -out localhost.crt ####这两个命令的区别还没有研究好
填写需要填写的信息,证书就生成了
这里为什么要用localhost.crt这样的名子,是因为在ssl.conf就是这样子指定的,这两个地方要一样。
再次打开/etc/httpd/conf.d下的ssl.conf,找到
,改下其中的
DocumentRoot "/var/www/html/www"
ServerName www.linuxidc.com
改成你需要用到ssl的域的信息,重启apache,配置结束
现在就可以通过https访问网站,在ie6下会安警告,因为这是我们自己发的证书
四、搭建nginx
nginx在安装完apache之后比较简单网上说需要一些库的安装,我没有遇到,只是变异过程中有点问题,我按装的是pcre在/usr/local/pcre目录下
使用 ./configure --with-pcre=/usr/local/pcre 没有问题,但是make过程报错了,提示Pcre目录下没有configure脚本文件报错了,我就直接使用的是
./configure --with-pcre=/opt/software/pcre-8.39 #就是pcre安装包的解压路径
1、获取nginx安装包
httpd官网:https://nginx.org/en/download.html ,我用的是:nginx-1.10.1.tar.gz
2、安装httpd
a、 ./configure --with-pcre=/opt/software/pcre-8.39
b、make
c、make install
3、配置nginx
配置~/nginx/conf/nginx.conf下,这两个参数,监听端口和IP(服务器的IP)
4、启动nginx并访问
在 ~/nginx/sbin下执行 ./nginx即可
使用http://172.16.10.191:8088就可以访问了
五、搭建配置Mysql
参考http://blog.csdn.net/liumm0000/article/details/18841197
1、获取sql 的rpm包
-rw-r--r--. 1 root root 14686188 Aug 26 17:18 MySQL-client-5.5.51-1.el6.i686.rpm
-rw-r--r--. 1 root root 4387728 Aug 30 10:46 MySQL-devel-5.5.51-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 47468024 Aug 26 17:18 MySQL-server-5.5.51-1.el7.x86_64.rpm
2、安装server
rpm -ivh MySQL-server-5.5.51-1.el7.x86_64.rpm
3、安装devel
rpm -ivh MySQL-devel-5.5.51-1.el7.x86_64.rpm
4、安装client,报错
rpm -ivh MySQL-client-5.5.51-1.el6.i686.rpm
5、安装glibc.i686 解决
参考http://www.cnblogs.com/think3t/p/4165102.html
yum install glibc.i686
6、安装client继续报错
libncurses.so.5 is needed by MySQL-client-5.5.51-1.el6.i686
libtinfo.so.5 is needed by MySQL-client-5.5.51-1.el6.i686
yum -y install libncurses.so.5 libtinfo.so.5
7、重新安装client成功
rpm -ivh MySQL-client-5.5.51-1.el6.i686.rpm
8、给root用户配置密码
># mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
># mysql -u root mysql
mysql> use mysql
mysql> update user set password=PASSWORD("ans123") where User='root';
mysql> FLUSH PRIVILEGES;
重新登录使用mysql
># mysql -uroot -p
mysql> use mysql
9、授权远程客户端可以登录
例如,你想用户root使用密码ans123从任何主机连接到mysql服务器的话。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'ans123' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
10、 开机自启动
chkconfig mysql on
六、搭建配置Php
http://blog.csdn.net/chenxiabinffff/article/details/51612149
也可以参考:http://blog.csdn.net/dglxsong/article/details/52075918
1、获取软件包
-rw-r--r--. 1 root root 19206852 Aug 26 18:23 php-5.6.25.tar.gz
2、安装扩展库
yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libvpx-devel libXpm-devel t1lib-devel
先安装 gd 前置库 : freetype ,jpegsrc,libpng。
3、编译安装php
./configure --prefix=/usr/local/php-5.6.25/ --with-apxs2=/usr/local/httpd-2.4.23/bin/apxs --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-vpx-dir --with-vpx-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --with-jpeg-dir --with-t1lib --with-t1lib --enable-gd-native-ttf --enable-gd-jis-conv --with-curl
--prefix=/usr/local/php 指定把php-4.3.10安装到/usr/local/php目录中;
--with-mysql=/usr/local/mysql 指定mysql数据服务器安装的位置;路径也应该省略(采用php内建的库)
--with-apxs2=/usr/local/apache/bin/apxs 这是加入apache中为DSO模块的位置;
-enable-track-vars 为启动cookie的get/post等追踪功能;
--with-png 在较旧的系统里面可能需要附加一个路径 with-png-dir,还有如果提示 --with-xpm-dir 也可以使用with-png-dir的路径;
--with-config-file-path=/usr/local/php/etc 指定php的配制文件存放的目录是/usr/local/php/etc目录,我们安装完成后,也要把php.ini复制到这个目录中来。
make&& make install
4、配置php.ini
cp php-5.6.25/php.ini-production /usr/local/php-5.6.25/lib/php.ini
5、配置apache支持php
vi /usr/local/httpd-2.4.23/conf/httpd.conf
找到DirectoryIndex,在index.html后添加
index.php
找到AddType,在之后添加一行
AddType application/x-httpd-php .php
6、重启apache使配置生效,并测试
在 /usr/local/httpd-2.4.23/conf/htdocs 下创建index.php文件
添加如下内容<?php phpinfo();?>
b、开启mysqli 支持
vi /usr/local/php-5.6.25/lib/php.ini
最后一行添加
extension=mysqli.so
http://blog.csdn.net/maorenqi101/article/details/27682475
b、/usr/local/httpd-2.4.23/bin/apachectl restart
c、访问 http://IP/index.php返回php信息则配置正确完成
动态扩展php库
http://www.jb51.net/os/RedHat/144734.html
http://blog.sina.com.cn/s/blog_4a1e593f0100shaj.html
http://www.akhtm.com/manual/open-close-gd.htm
编译安装支持sockets
使用phpzie工具安装扩展
下个相同版本的php源码,进行编译安装,再按照上面步骤搞,生成的so。copy到rpm装的那个,修改php.ini进行扩展就行了,或者到网上找相同版本,相同系统 的编译好的so文件。
在linux下给PHP安装socket扩展,参考方法如下:
#cd /home/php/ext/sockets
#/server/php/bin/phpize
#./configure --prefix=/usr/local/php/lib --with-php-config=/server/php/bin/php-config --enable-sockets
#make
#make install
再修改/usr/local/php/etc/php.ini文件
#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" (php5.4版本以上不用加扩展路径)
extension=sockets.so
8、Php动态安装扩展
PHP环境,环境是apache+php-fpm,PHP是源码编译安装的,所以是最小化安装,甚至连mysqli扩展都没有。今天需要用到GD库,才发现没GD库环境,所以需要安装这个扩展。对付单个扩展,单独编译动态加载是比较方便快捷的。安装过程也比较繁杂,这个记录一下,方便后来者。
首先说明,我的PHP是源码编译安装的,可以参看 以源码编译的方式安装PHP与php-fpm。
先安装 gd 前置库 : freetype ,jpegsrc,libpng。
centos搭建https协议的tomcat和apache服务器以及nginx服务器,mysql php的更多相关文章
- Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置
Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置 ============================== ©Copyright 蕃薯耀 2017 ...
- CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)
CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL) 一.准备篇: /etc/init.d/iptables stop #关闭防火墙 关闭SELINUX vi /etc/sel ...
- git bash命令行使用https协议方式进行克隆和提交到github服务器
在本地创建一个文件夹来存放远程服务器仓库:如创建一个git8文件夹: 在命令行中,使用git clone https://github.com/serverking/weixin.git进行克隆git ...
- centos 搭建本地YUM源并使用apache共享YUM源
搭建本地YUM源 1.挂载镜像 2.搭建本地YUM源 删除多余repo文件保留一个就行 本地YUM源就搭建好了 yum repolist 查看yum源 3.使用apache共享YUM源 YUM服务器配 ...
- Node.js 搭建 https 协议 服务器
var https = require('https'); //创建服务器 https var fs = require('fs'); //文件系统的模块 const hostname = '127. ...
- windows 下 基于express搭建 https协议的网站
参考 https://blog.csdn.net/xingyanchao/article/details/79362443 问题在于生成SSL证书的时候Windows环境下会报错 解决方案 参考 ht ...
- CentOS yum安装配置lnmp服务器(Nginx+PHP+MySQL)
1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport ...
- CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
一 安装篇 1. 安装nginx yum check-update #更新yum源 yum remove httpd* php* #删除系统自带的软件包 yum install nginx #安装ng ...
- 【转】Tomcat启用HTTPS协议配置过程
转载请注明出处: http://blog.csdn.net/gane_cheng/article/details/53001846 http://www.ganecheng.tech/blog/530 ...
随机推荐
- 子Div使用Float后如何撑开父Div
如果想要撑开父元素可以采用以下方法: 方法一: 父元素设置overflow以及zoom,样式如下: 1 <style> 2 #div1{border:1px solid red;ove ...
- DB2和Oracle区别
转 http://blog.chinaunix.net/uid-7374279-id-2057574.html 写在前面:今天客户来访(日本人),问我DB2和Oracle区别.因为不是DBA(勉强的理 ...
- PowerShell Script to Deploy Multiple VM on Azure in Parallel #azure #powershell
Since I need to deploy, start, stop and remove many virtual machines created from a common image I c ...
- 转一篇Unity客户端与Java服务器的通信
转自:http://www.programering.com/a/MTNxYDMwATQ.html A few days ago a friend asked me about Unity3D ins ...
- WEB 文件上传
关键:<input name="file" type="file"/> 然后,在外面<form>层中必须写上:enctype=" ...
- iOS -- 神战
http://github.ibireme.com/github/list/ios/# https://github.com/Tim9Liu9/TimLiu-iOS http://www.ios122 ...
- Java GC收集器配置说明
根据Java GC收集器具体分类,我们可以看出JVM根据需求不同提供了三种选择:串行收集器.并行收集器.并发收集器. 串行收集器只适用于小数据量的情况,我们主要了解一下并行收集器和并发收集器.默认情况 ...
- 【日常笔记】java spring 注解读取文件
获取后缀文件 <!-- 注解读取properties文件开始 @Value("#{configProperties['userPageSize']}")private Str ...
- judge remote file exist
# -*- coding:utf-8 -*- import paramiko,os,sys,time print ''' *****判断远端服务器上的某个文件是否存在***** ''' ip = ra ...
- 【UOJ #29】【IOI 2014】holiday
http://uoj.ac/problem/29 cdq四次处理出一直向左, 一直向右, 向左后回到起点, 向右后回到起点的dp数组,最后统计答案. 举例:\(fi\)表示一直向右走i天能参观的最多景 ...