|NO.Z.00040|——————————|^^ 部署 ^^|——|Linux&Centos6.x&LAMP&Typecho.V02|——|编译LAMP|
一、编译安装:安装libxml2
### --- 注意:每个源码包配置编译安装完成后,确认安装目录下是否生成安装文件(并确定目录是否正确)
~~~ 建议将安装路径指定为[--prefix/usr/lcoal/软件名]格式
### --- 安装libxml2
~~~ libxml2是一个xml c语言版的解析器,本来是为了Gnome项目开发的工具,
~~~ 是一个基于MIT License的免费开源软件,它除了支持c语言版以外,
~~~ 还支持c++、PHP、Pascal、Tcl等语言的绑定,
~~~ 能在Windows、Linux、Solaris、MacOsx等平台运行,功能还是相当强大的,
~~~ 相信满足一般用户需求没有任何问题。
[root@server21 ~]# cd /lamp/
[root@server21 lamp]# yum install -y libxml2-devel python-devel
[root@server21 lamp]# cd libxml2-2.9.1
[root@server21 libxml2-2.9.1]# ./configure --prefix=/usr/local/libxml2
Done configuring
[root@server21 libxml2-2.9.1]# echo $?
0
[root@server21 libxml2-2.9.1]# make
[root@server21 libxml2-2.9.1]# echo $?
0
[root@server21 libxml2-2.9.1]# make install
[root@server21 libxml2-2.9.1]# echo $?
0
[root@server21 libxml2-2.9.1]# ls /usr/local/libxml2/
bin include lib share
二、安装libmcrypt
### --- 安装libmcrypt
~~~ libmcrypt是加密算法扩展库,
~~~ 支持DES、3DES、RIJNDAEL、Twofish、IDEA、GOSTCAST-256.ARCFOUR,SERPENT,SAFER+等算法
[root@server21 libxml2-2.9.1]# cd /lamp/libmcrypt-2.5.8
[root@server21 libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt/
[root@server21 libmcrypt-2.5.8]# echo $?
0
[root@server21 libmcrypt-2.5.8]# make
[root@server21 libmcrypt-2.5.8]# echo $?
0
[root@server21 libmcrypt-2.5.8]# make install
[root@server21 libmcrypt-2.5.8]# echo $?
0
### --- 安装libltdl,也在libmcrypt源码目录中,非新软件
[root@server21 libltdl]#cd /lamp/libmcrypt-2.5.8/libltdl
[root@server21 libltdl]# ./configure --enable-ltdl-install && make && make install
[root@server21 libltdl]# echo $?
0
三、安装mhash
### --- 安装mhash
~~~ mhash是基于离散数学原理的不可逆向的PHP加密方式扩展库,
~~~ 其在默认情况下不开启,mhash的可以用于创建效验数值,消息摘要,消息认证码,
~~~ 以及无需原文的关键信息保存(如密码)等。
[root@server21 libltdl]# cd /lamp/mhash-0.9.9.9
[root@server21 mhash-0.9.9.9]# ./configure && make && make install
[root@server21 mhash-0.9.9.9]# echo $?
0
四、安装mcrypt
### --- 安装mcrypt
~~~ mcrypt是PHP里面重要的加密支持扩展库,mcrypt库支持20多种加密算法和8种加密模式
[root@server21 mhash-0.9.9.9]# cd /lamp/mcrypt-2.6.8
[root@server21 mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib //声明环境变量
~~~ 变量:LLD_LIBRARY_PATH用于指定libmcrypt和mhash的库的位置
[root@server21 mcrypt-2.6.8]# ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
[root@server21 mcrypt-2.6.8]# echo $?
0
[root@server21 mcrypt-2.6.8]# make
[root@server21 mcrypt-2.6.8]# echo $?
0
[root@server21 mcrypt-2.6.8]# make install
[root@server21 mcrypt-2.6.8]# echo $?
0
五、安装zlib
### --- 安装zlib
~~~ zlib是提供数据压缩的函数库,由Jean-loup Gailly与Mark Adler所开发,
~~~ 初版0.9版在我995年5月1日发表,
~~~ zlib使用DEFLATE算法,最初是为libpng函数库所写,后来普遍为许多软件所使用,
~~~ 此函数库为自由软件,使用zlib授权。
[root@server21 mcrypt-2.6.8]# cd /lamp/zlib-1.2.3
[root@server21 zlib-1.2.3]# ./configure
~~~ 然后修改配置文件,否则无法正常安装此软件
[root@server21 zlib-1.2.3]# vim Makefile
CC=gcc
CFLAGS=-O3 -DUSE_MMAP -fPIC // 找到CFLAGS=-03 -DUSE_MMAP,在后面加入 -fPIC 变成(注意:小f大PIC,空格)版本问题:64位需要加该参数,32位不需要
[root@server21 zlib-1.2.3]# make
[root@server21 zlib-1.2.3]# echo $?
0
[root@server21 zlib-1.2.3]# make install
[root@server21 zlib-1.2.3]# echo $?
0
六、安装libpeng
### --- 安装libpeng
~~~ libpeng软件包包含libpeng库,这些库被其它程式用于解码PNG图片
[root@server21 ~]# cd /lamp/libpng-1.2.31
[root@server21 libpng-1.2.31]# ./configure --prefix=/usr/local/libpng
[root@server21 libpng-1.2.31]# ./configure --prefix=/usr/local/libpng && make && make install
[root@server21 libpng-1.2.31]# echo $?
0
七、安装jpeg6
### --- 安装jpeg6
~~~ jpeg6提供用于解码.jpg和.jpeg图片的库文件
[root@server21 libpng-1.2.31]# cd /lamp/jpeg-6b/ // 该程序安装是不会自己去创建目录,需要手动创建
[root@server21 jpeg-6b]# mkdir -p /usr/local/jpeg6/bin
[root@server21 jpeg-6b]# mkdir -p /usr/local/jpeg6/lib
[root@server21 jpeg-6b]# mkdir -p /usr/local/jpeg6/include
[root@server21 jpeg-6b]# mkdir -p /usr/local/jpeg6/man/man1
~~~ 注意:此软件默认不会自动创建所需目录,所以目录必须手工建立
[root@server21 jpeg-6b]# yum install -y libtool* // 还是64位的问题,默认config.sub,config.guess不好用,所以安装覆盖
[root@server21 jpeg-6b]# cp -a /usr/share/libtool/config/config.sub ./ // 这两个文件默认是有的,覆盖掉,./表示:在/lamp/jpeg-6b这个目录下
[root@server21 jpeg-6b]# cp -a /usr/share/libtool/config/config.guess ./
~~~ 复制libtool中的文件,覆盖jpeg-6b中的文件(64位中的问题)
~~~ -enable-shared 与--enable-static参数分别为建立共享库和静态库使用的libtool
[root@server21 jpeg-6b]# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static && make && make install
[root@server21 jpeg-6b]# echo $?
0
八、安装freetype
### --- 安装freetype
~~~ FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,
~~~ 它提供统一的接口来访问多种字体格式文件,支持单色位图,反走样位图的渲染
[root@server21 freetype-2.3.5]# cd /lamp/freetype-2.3.5
[root@server21 freetype-2.3.5]# ./configure --prefix=/usr/local/freetype/ && make && make install
[root@server21 freetype-2.3.5]# echo $?
0
九、安装Apache
### --- 安装Apache
### --- 源码包2.4.*版本中默认没有集成apr的依赖包,所以需要提前解决依赖问题
~~~ 解压APR和apr-util,复制整个目录并取消目录上的版本号到指定位置,./cinfigure时会检测
[root@server21 freetype-2.3.5]# cd /lamp/httpd-2.4.7
[root@server21 httpd-2.4.7]# cp -a /lamp/apr-1.4.6 /lamp/httpd-2.4.7/srclib/apr
[root@server21 httpd-2.4.7]# cp -a /lamp/apr-util-1.4.1 /lamp/httpd-2.4.7/srclib/apr-util
### --- Apache默认需要依赖PCRE软件,但由于Apache软件版本较高,则系统预安装的PCRE无法使用,
~~~ 所以需要人为手动安装适合版本
[root@server21 httpd-2.4.7]# cd /lamp/pcre-8.34
[root@server21 pcre-8.34]# ./configure && make && make install
[root@server21 pcre-8.34]# echo $?
0
### --- Apache的加密传输模块mod_ssl,需要安装此软件产生。
[root@server21 pcre-8.34]# yum install -y openssl-devel
### --- httpd软件安装
~~~ 若前面配置zlib时没有指定安装目录,
~~~ Apache配置时不要添加--with-z=/usr/local/zlib/参数,
~~~ --enable-ssl选项是为了后期实现https提前设置的参数。
[root@server21 pcre-8.34]# cd /lamp/httpd-2.4.7
[root@server21 httpd-2.4.7]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/apache2/etc/ --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-ssl
[root@server21 httpd-2.4.7]# echo $?
0
[root@server21 httpd-2.4.7]# make && make install
[root@server21 httpd-2.4.7]# echo $?
0
### --- 启动Apache测试
~~~ 使用进程查看命令确认Apache是否启动,是否产生进程
[root@server21 httpd-2.4.7]# cd /usr/local/apache2/bin/
[root@server21 bin]# ./apachectl start
[root@server21 bin]# /usr/local/apache2/bin/apachectl restart
[root@server21 bin]# ps aux | grep httpd
root 87423 0.0 0.0 103312 876 pts/1 S+ 12:34 0:00 grep httpd
~~~ 使用网络进程查看命令确认Apache是否启动,是否开启了80监听端口
[root@server21 bin]# netstat -antp
tcp 0 0 :::80 :::* LISTEN 87249/httpd
### --- 报错提示:
~~~ 若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限,
~~~ 可关闭SELinux解决,类似此类.so文件不能载载入或没有权限问题,都是SELinux问题,
~~~ MySQL和Apache都可以有类似问题。
### --- 警告提示:
~~~ 发现启动服务提示:
~~~ AH00558:httpd:Could not reliably determine the server’s
~~~ fullyqualified domain name,using localhost,localdomain.
~~~ Set the'ServerName'directive globally to suppress this message
### --- 解决方案:
~~~ 打开配置文件httpd.conf
~~~ 搜索ServerName (约在200行左右)
~~~ 改成ServerName localhost:80(并且去掉前面的#注释)
[root@server21 bin]# /usr/local/apache2/bin/apachectl restart // 提示信息
AH00557: httpd: apr_sockaddr_info_get() failed for server21
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
[root@server21 bin]# vim /usr/local/apache2/etc/httpd.conf
#ServerName www.example.com:80 // 默认
ServerName localhost:80 // 改成localhost
[root@server21 bin]# /usr/local/apache2/bin/apachectl -t // 检查配置文件语法错误,没有就是ok
Syntax OK
[root@server21 bin]# /usr/local/apache2/bin/apachectl restart // 改后重新启动不会有提示信息出现
~~~ --enable-ssl选项是为了后期实现https提前设置的参数。
### --- 启动Apache测试
[root@server21 httpd-2.4.7]# cd /usr/local/apache2/bin/
[root@server21 bin]# ./apachectl start
[root@server21 bin]# /usr/local/apache2/bin/apachectl restart
[root@server21 bin]# ps aux | grep httpd
root 87423 0.0 0.0 103312 876 pts/1 S+ 12:34 0:00 grep httpd
~~~ 使用进程查看命令确认Apache是否启动,是否产生进程
[root@server21 bin]# netstat -antp
tcp 0 0 :::80 :::* LISTEN 87249/httpd
~~~ 使用网络进程查看命令确认Apache是否启动,是否开启了80监听端口
### --- 报错提示:
~~~ 若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限,
~~~ 可关闭SELinux解决,类似此类.so文件不能载载入或没有权限问题,
~~~ 都是SELinux问题,MySQL和Apache都可以有类似问题。
### --- 警告提示:
~~~ 发现启动服务提示:AH00558:httpd:Could not reliably
~~~ determine the server’s fullyqualified domain name,using localhost,
~~~ localdomain.Set the'ServerName'directive globally to suppress this message
### --- 解决方案:
~~~ 打开配置文件httpd.conf
~~~ 搜索ServerName (约在200行左右)
~~~ 改成ServerName localhost:80(并且去掉前面的#注释)
[root@server21 bin]# /usr/local/apache2/bin/apachectl restart // 提示信息
AH00557: httpd: apr_sockaddr_info_get() failed for server21
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
[root@server21 bin]# vim /usr/local/apache2/etc/httpd.conf
#ServerName www.example.com:80 // 默认
ServerName localhost:80 // 改成localhost
[root@server21 bin]# /usr/local/apache2/bin/apachectl -t // 检查配置文件语法错误,没有就是ok
Syntax OK
[root@server21 bin]# /usr/local/apache2/bin/apachectl restart // 改后重新启动不会有提示信息出现
### --- 验证:
~~~ 通过浏览器输入地址访问:http://服务器IP,若显示“It works”即表明Apache正常工作
~~~ Chrome浏览器访问:http://20.20.20.21/
~~~ It works! // 说明部署成功
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv007-network
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通