应同学的请求,为其开发一款微信小程序,因为关系比较铁,所以就答应了,(当时也没想到很复杂,就利用平时的空闲时间开发一下,用自己租用的阿里云服务器开发咯,结果,没想到遇到了很多问题,或许是我自己技术比较菜了。)因为微信小程序请求需要https,正好阿里云上有免费一年的活动,所以就申请了一个,自己升级咯。将其中遇到的问题整理、总结一下,方便以后遇到问题,自己处理和解决:
https的获取就不用详细讲述了,刚开始安装,就找了一篇文章,原文地址:http://blog.51cto.com/zhuneianxiang/1951150,其中遇到了一些问题。
Apache是一个基金会的名字,httpd才是我们要安装的软件包
(早期它的名字就叫apache)
•Apache官网
www.apache.org
1.
进入
下载安装包目录:
[root@max ~]#
cd /usr/local/
src/
2.
下载
httpd
包
,
apr包
和
apr-util
包
:
[root@max src]#
wget
http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.33.tar.gz
[root@max src]#
wget
http://mirrors.hust.edu.cn/apache/apr/apr-1.6.3.tar.gz
[root@max src]#
wget
http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
4.
解包解压
httpd
包
,
apr包
和
apr-util
包
:
[root@max src]#
tar zxvf
httpd-2.4.33.tar.gz
[root@max src]#
tar zxvf
apr-util-1.6.1.tar.gz
[root@max src]#
tar zxvf
apr-1.6.3.tar.gz
5.
进入
apr
解压目录:
[root@max src]#
cd
/usr/local/src/
apr-1.6.3/
6.
编译:
指定存储目录(自动生成
apr
):
(
安装
依赖包:
yum -y install
gcc
)
[root@max apr-1.6.3]#
.
/configure --prefix=/usr/local/
apr
7.
检验
上一条命令执行是否有错?(数值0为没问题):
[root@max apr-1.6.3]#
echo $?
8.
make安装和make install :
[root@max apr-1.6.3]#
make && make install
9.
进入
apr-util
解压目录:
[root@max apr-util-1.6.1]#
cd /usr/local/src/
apr-util-1.6.1
10.
编译:
指定存储目录(自动生成
apr-util
):
[root@max apr-util-1.6.1]#
./configure --prefix=/usr/local/
apr-util
--with-apr=
/usr/local/apr
11.
检验
上一条命令执行是否有错?(数值0为没问题):
[root@max apr-util-1.6.1]#
echo $?
12.
make安装和make install :
apr-util 执行make命令时报错:
yum install -y
expat-devel(先执行比较好)
[root@max apr-util-1.6.1]#
make && make install
13.
进入
httpd
解压目录:
[root@max apr-util-1.6.1]#
cd /usr/local/src/
httpd-2.4.33/
14.
指定存储目录(自动生成
apache2.4
):
报错,依赖包:
yum install -y
pcre-devel
[root@max httpd-2.4.33]#
./configure --prefix=/usr/local/
apache2.4
--with-apr=
/usr/local/apr
--with-apr-util=
/usr/local/apr-util
--enable-so --enable-mods-shared=most
15.
检验
上一条命令执行是否有错?(数值0为
没问题
):
[root@max httpd-2.4.33]#
echo $?
16.
make安装和make install :
[root@max httpd-2.4.33]#
make
[root@max httpd-2.4.33]#
make install
本步可能存在问题:
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory `/usr/local/httpd-2.4.33/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/httpd-2.4.33/support'
make: *** [all-recursive] Error 1
我们使用了 apr 1.6.2 的依赖,所以下面我们必须要用 apr-util 1.6.0 版本,apr-util 1.6.0
不再捆绑安装 expat ,但又需要 expat 的支持,所以我们得手动先安装 expat。不然编译 apache 的时候会报错
[root@max~]# wget https://sourceforge.net/projects/expat/files/expat/2.2.3/expat-2.2.3.tar.bz2
[root@max~]# tar jxf expat-2.2.3.tar.bz2
[root@max~]# cd expat-2.2.3/
[root@max~]# ./configure --prefix=/usr/local/expat
[root@max~]# make && make install
然后在安装安装 apr-util
回到第9步,重新安装
apr-util
17.
进入自动生成的
apache2.4
目录:
[root@max httpd-2.4.33]#
cd /usr/local/
apache2.4/
[root@max apache2.4]#
ls
bin
目录下:可执行文件
conf
目录下:配置文件
hodocs
目录下:访问页,访问的网站默认会放在这里。
logs
目录下:日志相关文件(错误日志,访问日志)
man
目录下:帮助文档
modules
目录下:扩展模块
18.
查看
apache
加载的模块:
[root@max apache2.4]#
/usr/local/
apache2.4
/bin/httpd -M
或:
[root@max apache2.4]#
/usr/local/
apache2.4/
bin/apachectl -M
19.安装证书(来源:阿里云的教程)
文件说明:
1. 证书文件1532242234849.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件1532242234849.key、证书公钥文件public.pem、证书链文件chain.pem。
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为1532242234849.key;
( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”:
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf
( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句:
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile cert/public.pem
# 证书私钥配置
SSLCertificateKeyFile cert/1532242234849.key
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile cert/chain.pem
( 4 ) 重启 Apache。
( 5 ) 通过 https 方式访问您的站点,测试站点证书的安装配置
遇到了问题
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).failed
解决方案:
vi httpd.conf
把这个前面的“#”号去掉,即可
20.
启动
apache2.4
(httpd):
[root@max apache2.4]#
/usr/local/
apache2.4
/bin/apachectl start
21.
搜索
httpd
进程,查看是否启动
[root@max apache2.4]#
ps aux |grep
httpd
22.
查看端口号(httpd默认监听80端口):
[root@max apache2.4]#
netstat -lntp