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. spring boot/cloud 应用监控

    应用的监控功能,对于分布式系统非常重要.如果把分布式系统比作整个社会系统.那么各个服务对应社会中具体服务机构,比如银行.学校.超市等,那么监控就类似于警察局和医院,所以其重要性显而易见.这里说的,监控 ...

  2. [BZOJ 1497][NOI 2006]最大获利(最大权闭合子图)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1497 分析: 这是在有向图中的问题,且边依赖于点,有向图中存在点.边之间的依赖关系可以 ...

  3. SVN 修改log信息报错的解决方案

    要实现允许修改log这个功能,只需要在hooks目录下增加一个名为:pre-revprop-change.bat的文件,重启svn即可.该文件内容为:------------------------- ...

  4. 【JavaEE企业应用实战学习记录】servlet3.0上传文件

    <%-- Created by IntelliJ IDEA. User: Administrator Date: 2016/10/6 Time: 14:20 To change this tem ...

  5. there is issue about change event of checkbox in the ie8 oe ie7

    some people said the change event of checkbox can not trigger in the ie7 or ie8,that's not true. thi ...

  6. android 开发之 百度地图的使用

    好久没写博客了,最近遇到个新需求 需要用到百度地图的基础地图,定位,理论上应该还会用到鹰眼的功能吧.具体还很难说.我现在 刚动工,就从头开始记录吧. 首先是先申请一个百度地图api的key 流程官网很 ...

  7. sublime package control 被墙的解决方法

    在host里面配置 50.116.34.243 sublime.wbond.net 好用的插件地址 http://www.thinkphp.cn/topic/37057.html

  8. 链栈的C语言实现

    /* 功能:栈的链表实现 Author:lxm Date: 20160511 */ #include <stdio.h> #include <stdlib.h> #define ...

  9. [转]为什么我要用 Node.js? 案例逐一介绍

    原文地址:http://blog.jobbole.com/53736/ 介绍 JavaScript 高涨的人气带来了很多变化,以至于如今使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样, ...

  10. git 创建别名

    git config --global alias.shortname command 例子如下 git config --global alias.psm 'push origin master' ...