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的更多相关文章

  1. Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置

    Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置 ============================== ©Copyright 蕃薯耀 2017 ...

  2. CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)

    CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL) 一.准备篇: /etc/init.d/iptables stop #关闭防火墙 关闭SELINUX vi /etc/sel ...

  3. git bash命令行使用https协议方式进行克隆和提交到github服务器

    在本地创建一个文件夹来存放远程服务器仓库:如创建一个git8文件夹: 在命令行中,使用git clone https://github.com/serverking/weixin.git进行克隆git ...

  4. centos 搭建本地YUM源并使用apache共享YUM源

    搭建本地YUM源 1.挂载镜像 2.搭建本地YUM源 删除多余repo文件保留一个就行 本地YUM源就搭建好了 yum repolist 查看yum源 3.使用apache共享YUM源 YUM服务器配 ...

  5. Node.js 搭建 https 协议 服务器

    var https = require('https'); //创建服务器 https var fs = require('fs'); //文件系统的模块 const hostname = '127. ...

  6. windows 下 基于express搭建 https协议的网站

    参考 https://blog.csdn.net/xingyanchao/article/details/79362443 问题在于生成SSL证书的时候Windows环境下会报错 解决方案 参考 ht ...

  7. CentOS yum安装配置lnmp服务器(Nginx+PHP+MySQL)

    1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport  ...

  8. CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)

    一 安装篇 1. 安装nginx yum check-update #更新yum源 yum remove httpd* php* #删除系统自带的软件包 yum install nginx #安装ng ...

  9. 【转】Tomcat启用HTTPS协议配置过程

    转载请注明出处: http://blog.csdn.net/gane_cheng/article/details/53001846 http://www.ganecheng.tech/blog/530 ...

随机推荐

  1. 子Div使用Float后如何撑开父Div

    如果想要撑开父元素可以采用以下方法: 方法一: 父元素设置overflow以及zoom,样式如下: 1 <style> 2   #div1{border:1px solid red;ove ...

  2. DB2和Oracle区别

    转 http://blog.chinaunix.net/uid-7374279-id-2057574.html 写在前面:今天客户来访(日本人),问我DB2和Oracle区别.因为不是DBA(勉强的理 ...

  3. 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 ...

  4. 转一篇Unity客户端与Java服务器的通信

    转自:http://www.programering.com/a/MTNxYDMwATQ.html A few days ago a friend asked me about Unity3D ins ...

  5. WEB 文件上传

    关键:<input name="file" type="file"/> 然后,在外面<form>层中必须写上:enctype=" ...

  6. iOS -- 神战

    http://github.ibireme.com/github/list/ios/# https://github.com/Tim9Liu9/TimLiu-iOS http://www.ios122 ...

  7. Java GC收集器配置说明

    根据Java GC收集器具体分类,我们可以看出JVM根据需求不同提供了三种选择:串行收集器.并行收集器.并发收集器. 串行收集器只适用于小数据量的情况,我们主要了解一下并行收集器和并发收集器.默认情况 ...

  8. 【日常笔记】java spring 注解读取文件

    获取后缀文件 <!-- 注解读取properties文件开始 @Value("#{configProperties['userPageSize']}")private Str ...

  9. judge remote file exist

    # -*- coding:utf-8 -*- import paramiko,os,sys,time print ''' *****判断远端服务器上的某个文件是否存在***** ''' ip = ra ...

  10. 【UOJ #29】【IOI 2014】holiday

    http://uoj.ac/problem/29 cdq四次处理出一直向左, 一直向右, 向左后回到起点, 向右后回到起点的dp数组,最后统计答案. 举例:\(fi\)表示一直向右走i天能参观的最多景 ...