1.编译apr-util报错:
fatal error: expat.h: No such file or directory
解决:yum install expat-devel
2.编译安装openssl
1) 将下载的压缩包放在根目录/。
2) 在文件夹下解压缩,执行如下命令:
tar -xzf openssl-1.1.0c.tar.gz
3) 进入解压目录,执行如下命令:
cd openssl-1.1.0c
4) 设定Openssl 安装路径,( --prefix )参数为欲安装之目录,执行如下命令:
./config --prefix=/usr/local/openssl
执行命令./config -t
5) make && make install
6) 查看openssl的依赖关系。
cd /usr/local
ldd /usr/local/openssl/bin/openssl
linux-vdso.so.1 => (0x00007ffcdb7dd000)
libssl.so.1.1 => not found
libcrypto.so.1.1 => not found
libdl.so.2 => /lib64/libdl.so.2 (0x00007f54ef8fd000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f54ef6e1000)
libc.so.6 => /lib64/libc.so.6 (0x00007f54ef31e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f54efb16000)
7)查看openssl绝对路径和版本
which openssl
/usr/bin/openssl
openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
3.编译安装apr-util,
执行make && make isntall时报错:xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
解决:
yum -y install expat-devel
4.编译(make)http(apache)时,
出现:
undefined reference QA
/opt/apache/httpd- 2.4.26 / srclib / apr-util / lib / libaprutil-1.so的未定义引用:对`XML_SetElementHandler' / opt / apache / httpd-的未定义引用2.4.26 / srclib / apr-util / lib / libaprutil-1.so:未定义的对“XML_StopParser”的引用
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory `/usr/local/src/httpd-2.4.37/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/httpd-2.4.37/support'
make: *** [all-recursive] Error 1
解决方法:
*因为我们使用了apr 1.6.2的依赖,所以下面我们必须要用apr-util 1.6.0版本,apr-util 1.6.0
不再捆绑安装expat,但又需要expat的支持,所以我们得手动先安装expat。不然编译apache的时候会报错。*
wget https://sourceforge.net/projects/expat/files/expat/2.2.6/expat-2.2.3.tar.bz2
tar -jxvf expat-2.2.3.tar.bz2
**在这里如果报错**:
tar (child): bzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
**解决方法**:yum -y install bzip2
cd expat-2.2.6 /
./configure --prefix=/usr/local/expat
make && make install
然后在安装安装apr-util
cd apr-util-1.6.5 /
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-expat=/usr/local/expat
make && make install
5.卸载软件
rpm -qa | grep softwarename ##查找软件)
rpm -e softwarename ##rpm 卸载
yum erase softwarename -y ##yum 卸载
6.在编译apr时报错:
rm: cannot remove 'libtoolT': No such file or directoryconfig.status: execut
解决方法:
在解压后的apr文件中:touch libtoolT
7.找不到动态库libssl.so.1.1,小问题,执行如下命令
# vim /etc/ld.so.conf
在最后追加一行:
/usr/local/openssl/lib
然后执行:
ldconfig /etc/ld.so.conf
openssl version
8.启动mysql出现
The server quit without updating PID file
解决方法(权限问题)
chown -R mysql.mysql /usr/local/mysql
9.phpmyadmin提示。./tmp不能创建时,也时权限问题
chown -R daemon.daemon /usr/local/apache/htdocs/
10.设置http强转https
页面永久性移走(301重定向)是一种非常重要的“自动转向”技术。网址重定向最为可行的一种办法。当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。
301重定向在网站中经常会用到,比如我想使用www.fossen.cn作为主域名,而不是fossen.cn。考虑到有时候用户可能会省略www,为了让他们能直接访问主域名,而不是重新在地址连加上www的前缀,这时使用301可以将后者强制转向前者。
还有目前主流浏览器默认用http访问网站,而启用了https的网站可以用301重定向,将所有http的请求强制转向https,这样不管用户输入的网址是什么,最终只能使用https进行安全的访问。
在Apache中可以很简单的实现上述两种301重定向,百度搜到的方案有很多使用的mod_rewrite,但Apache官方都建议在这种简单的应用场景下,尽量不要使用mod_rewrite,When not to use mod_rewrite。mod_rewrite功能强大,但这也意味着它更加复杂,更难维护,在某些情况下应该使用那些更简单的代替方法。mod_alias提供了Redirect指令,可以将一个url转向至另一个。
主域名和https重定向可以同时设置,如下。
编辑配置文件httpd.conf,在虚拟主机中使用Redirect指令,*:80表示监听80端口所有域名的请求,即所有http请求;ServerName和ServerAlias表示多个需要转向的域名;Redirect指令表示,两域名下所有url的请求永久重定向到https://www.fossen.cn/;而https的请求则全部用另一个监听443端口的虚拟主机处理。
<VirtualHost *:80>
ServerName www.fossen.cn
ServerAlias fossen.cn
Redirect permanent "/" "https://www.fossen.cn/"
</VirtualHost>
<VirtualHost *:443>
ServerName www.fossen.com
# ... SSL configuration goes here
</VirtualHost>