
一、准备工作
1、安装编译工具gcc*
注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘作为yum源
yum install -y gcc*
MysqL编译需要gcc-c++
2、关闭系统RPM包安装的apache、MysqL等服务
service httpd stop
service MysqLd stop
…
确定rpm包安装的apache和MysqL不能开机自启动。
chkconfig –level 2345 httpd(MysqLd) off
…
3、关闭SElinux,防火墙允许80端口访问。
二、编译安装
*每个源码包配置编译安装完成之后,确认安装目录下时候生成安装文件。
make clean 清除错误的编译文件,然后重新编译
安装libxml2
libxml2是一个xmlc语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MITlicense的免费开源软件。它除了支持c语言以外,还支持C++、PHP、Pascal、ruby、tcl等语言的绑定,能在windows、linux、Solaris、macOS等平台运行。功能还是相当强大的。
libxml是一个用来解析XML文档的函数库。它用C语言写成,并且能为多种语言所调用,例如C语言,C++,XSH,C#、python,kylix/Delphi,和PHP等。Perl中也可以使用XML::libxml模块。它最初是为GNOME开发的项目。但是现在可以用在各种各样的方面。libXML代码可移植性非常好。基于标准的ANSIC库,并采用MIT许可证。
安装:
yum install -y python-devel #开发环境包,必须装
tar -zxf libxml2-2.9.1.tar.gz #解压源码包
cd libxml2-2.9.1 #进入解压后的目录
./configure --prefix=/usr/local/libxml2 #指定安装目录,预编译
make && make install #编译安装
安装libmcrypt
libmcrypt是加密算法扩展库。支持DES、3DES、RIJNDAEL、Towfish、GOST、GAST-256、ARCFOUR、SERPENT、SAFER+等算法。
tar -zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt
make && make install
安装libltdl(libmcrypt的子源码包),源码包在libmcrypt目录的libltdl目录。安装方式可以通过./configure –help查看。
cd libmcrypt-2.5.8/libltdl/
./configure --enable-ltdl-install
make && make install
安装mhash(哈希算法)
mhash是基于离散数学原理的不可逆的PHP加密方式扩展库,其在默认情况下不开启。mhash的可用于创建校验数值,消息摘要,消息确认码,以及无需原文的关键信息保存(如密码)等。
tar -zxf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure && make && make install
安装mcrypt
mcrypt是PHP里面重要的加密支持扩展库。mcrypt库支持20多种加密算法和8种加密模式。
tar -zxf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
LD_liBRARY_PATH=/usr/local/libmcrypt/lib/:/usr/local/lib ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt/
以上为一条命令。LD_liBRARY_PATH用于指定libmcrypt和mhash的库的位置。--with-libmcrypt-prefix用于指定libmcrypt软件位置。
make && make install
#libmcrypt没有安装完成,这是PHP的模块,需要等PHP安装完成之后,再继续安装。
安装zlib
zlib是提供数据压缩用的函数库,zlib使用DEFLATE算法,最初是为libpng函数库所写,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权。
tar -zxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
vim Makefile #解决小BUG在CFLAGS=-O3 -DUSE_MMAP加上-fPIC
make
make install
安装libpng
libpng软件包包含libpng库,这些库被其他程式用于解码png图片。
tar -zxf libpng-1.2.31.gz
cd libpng-1.2.31
./configure --prefix=/usr/local/libpng
make && make install
安装jpeg6(用于解码.jpg和.jpeg图片)
创建目录
mkdir /usr/local/jpeg6 存放主程序的目录
mkdir /usr/local/jpeg6/bin 存放命令的目录
mkdir /usr/local/jpeg6/lib 存放数据库的目录
mkdir /usr/local/jpeg6/include 存放子配置文件的目录
mkdir -p /usr/local/jpeg6/man/man1 存放帮助手册的目录
unzip jpeg-6b.zip
cd jpeg-6b
--enable-shared #建立共享库
--enable-static #建立静态库
yum install -y libtool* 安装依赖库(需要拷贝libtool里的文件,要不然安装会报错)
cp /usr/share/libtool/config/config.sub ./
cp /usr/share/libtool/config/config.guess ./ 需要拷贝两个文件到当前目录下。
chmod -R 777 * #红字必做
./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable—static
make && make install
安装freetype
freetype库是一个开源、高质量的可移植字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType、open type、typel、CID、CFF、windowsFON/FNT,X11 PCF等。支持单色位图,反走样位图的渲染。Free type库是高度模块化的程序库,虽然它是使用ANSI C 开发,但是采用面向对象的思想,因此,free type的用户可以灵活地对它进行裁剪。
tar -zxf freetype-2.3.5.tar
cd freetype-2.3.5
./configure --prefix=/usr/local/freetype
make && make install
安装GD库
GD库是PHP处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或生成图片。在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码。或者对网站数据生成报表等。
mkdir /usr/local/gd2
tar -zxf gd-2.0.35.tar
cd gd-2.0.35
vim gd_png.c
有个png错误需要将#include "/png.h" 更改为 #include "/usr/local/libpng/include/png.h"
./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/ --with-png=/usr/local/libpng/
#若前面配置zlib时没有指定安装目录,gd配置时不要添加--with-zlib=/usr/local/zlib参数。
make && make install
安装APACHE
APR(apache的可移植运行库)
主要为上层的应用程序提供一个可以跨越多 *** 作系统平台使用的底层支持接口库
安装准备:
tar -zxf httpd-2.4.7.tar.gz #解压源码包
#将组件源码包解压到apache的安装目录下
tar -zxf apr-1.4.6.tar.gz -C httpd-2.4.7/srclib/
tar -zxf apr-util-1.4.1.tar.gz -C httpd-2.4.7/srclib/
对解压后的包重命名去掉版本号。
mv apr-1.4.6/ apr
mv apr-util-1.4.1/ apr-util
准备好后先安装pcre
pcre基于prel的兼容正则表达式支持
tar -zxf pcre-8.34.tar.gz
cd pcre-8.34
./configure && make && make install
正式安装apache
安装选项:
--sysconfigdir=[主配置文件存放目录]
--with-included-apr #加载组件一块安装
--enable-so #启用动态库支持
--enable-deflate=shared #对动态资源能够压缩
--enable-expires=shared #支持动态超时时间
cd httpd-2.4.7
./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc/ --enable-so --with-included-apr --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared
make && make install
/usr/local/apache2/bin/apachectl start #启动apache
若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限,可关闭SElinux或者执行命令chcon -t texrel_shlib_t /usr/local/apache2/modules/mod_deflate.so ,类似此类.so文件不能载入或者没有权限的问题,都是SElinux问题,使用命令“chcon -t texrel_shlib_t [文件名] ”即可解决。MysqL也有类似问题。
安装数据库
安装MysqL依赖包
cmake #oracle收购后添加的一个编译器,用来代替configure
bison #语法分析程序,兼容不同的 *** 作系统。
这三个包可以直接用yum安装
yum install -y cmake bison
安装ncurses
ncurses提供字符终端处理库,包括面板和菜单。它提供了一套控制光标,建立窗口,改变前景背景颜色以及处理鼠标 *** 作的函数。使用户在字符终端下编写应用程序时绕过底层机制,他是一个可以使用应用程序直接控制终端屏幕显示的函数库。
tar -zxf ncurses-5.9.tar.gz
cd ncurses-5.9
./configure --with-shared --without-deBUG --without-ada --enable-overwrite
make && make install
也可以使用yum安装
如果没有安装ncurses执行安装MysqL的时候会报错。
-without-ada参数为设定不编译为ada绑定,因进入chroot环境不能用ada
--enable-overwrite参数为定义把头文件安装到/tools/include下而不是/tools/include/ncurses目录。
useradd MysqL #创建数据库用户和组
安装MysqL
tar -zxf MysqL-5.5.23.tar.gz
cd MysqL-5.5.23
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL -DMysqL_UNIX_ADDR=/tmp/MysqL.sock -DEXTRA_CHARSETS=all -DDEFAulT_CHARSET=utf8 -DDEFAulT_ColLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READliNE=1 -DENABLED_LOCAL_INfile=1 -DMysqL_USER=MysqL -DMysqL_TCP_PORT=3306
make && make install
如果报错,需要清除缓存,请使用一下命令
make clean
rm CMakeCache.txt
安装参数:
-DCMAKE_INSTALL_PREFIX=/usr/local/MysqL 安装位置
-DMysqL_UNIX_ADDR=/tmp/MysqL.sock 指定socket(套接字)文件位置
-DEXTRA_CHARSETS=all 扩展字符支持
-DDEFAulT_CHARSET=utf8 默认字符集
-DDEFAulT_ColLATION=utf8_general_ci 默认字符校对
-DWITH_MYISAM_STORAGE_ENGINE=1 安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 安装innodb存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 安装memory存储引擎
-DWITH_READliNE=1 支持readline库
提供交互式输出和历史记录编辑的文本行工具
-DENABLED_LOCAL_INfile=1 启用加载本地数据
-DMysqL_USER=MysqL 指定MysqL的运行用户
-DMysqL_TCP_PORT=3306 指定监听端口
配置MysqL
cd /usr/local/MysqL/ #进入安装完成的目录
chown -R root ./ #递归设置所有文件的属主为root
chown -R MysqL ./data/ #将数据相关的目录属主设置为MysqL
cp support-files/my-medium.cnf /etc/my.cnf #拷贝配置模板文件到/etc目录下作为配置文件。
/usr/local/MysqL/scripts/MysqL_install_db --user=MysqL #初始化数据库
出现两个OK表示数据库正常。
/usr/local/MysqL/bin/MysqLd_safe --user=MysqL & #启动数据库并放到后台执行,如果不放在后台执行,将会占用当前输出界面。
/usr/local/MysqL/bin/MysqLadmin -uroot password 123456 #设置用户名密码
/usr/local/MysqL/bin/MysqL -uroot -p123456 #登陆MysqL
简单的SQL语句:
show dadabases; #显示数据库
use test; #选择数据库
show tables; #显示数据表
\s #显示字符集
history -c #为避免被人知道用户名密码,建议清空历史命令。
数据库开机自启:
把/usr/local/MysqL/bin/MysqLd_safe --user=MysqL &写入到/etc/rc.local中。
安装PHP
编译前确保系统已经安装了libtool和libtool-ltdl软件包。
yum -y install libtool*
yum -y install libtool-ltdl*
PHP5.4的BUG,检测gd库有问题,需要手动修改
解决办法:
vim /usr/local/gd2/include/gd_io.h
typedef struct gdioCtx
{
…
voID (*data); #在typedef struct gdioCtx模块中加入此句,注意结尾标点符号
}
tar -zxf PHP-5.4.25.tar.gz
cd PHP-5.4.25
./configure --prefix=/usr/local/PHP/ --with-config-file-path=/usr/local/PHP/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-MysqL=/usr/local/MysqL/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-MysqLi=/usr/local/MysqL/bin/MysqL_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-MysqL=/usr/local/MysqL/ --without-pear
make && make install
注
若前面配置zlib时没有指定安装目录,PHP配置时不要添加--with-zlib-dir=/usr/local/zlib
参考老男孩参数:
(./configure --prefix=/application/PHP-5.3.27 --with-MysqL=/application/MysqL/ --with-iconv-dir=/application/libiconv/ --with-freetype-dir --with-jpeg-dir --with-zlib --with-libxml-dir=/usr/ --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-Tags --enable-Zend-multibyte --enable-static --with-xsl --with-fpm-user=Nginx --with-fpm-group=Nginx --enable-ftp)
编译参数:
--prefix=/usr/local/PHP/ #软件安装路径
--with-config-file-path=/usr/local/PHP/etc/ #指定主配置文件目录
--with-apxs2=/usr/local/apache2/bin/apxs #指定apache动态模块位置
--with-MysqL=/usr/local/MysqL/ #指定MysqL位置
--with-libxml-dir=/usr/local/libxml2/ #指定libmxl位置
--with-jpeg-dir=/usr/local/jpeg6/ #指定jpeg位置
--with-png-dir=/usr/local/libpng/ #指定libpng位置
--with-freetype-dir=/usr/local/freetype/ #指定freetype位置
--with-gd=/usr/local/gd2/ #指定gd库位置
--with-mcrypt=/usr/local/libmcrypt/ #指定libmcrypt位置
--with-MysqLi=/usr/local/MysqL/bin/MysqL_config #指定MysqLi的位置
MysqLi扩展允许用户访问由MysqL4.1或更高版本所提供的功能。经MysqL AB授权MysqL(指PHP中的模块)发展到现在显得比较凌乱,有必要重新做下整理。同时有必要跟上MysqL(DBMS)的发展步伐,加入新的特性的支持,以及适应MysqL(DBMS)以后的版本。所以诞生了MysqLi.dll
--enable-soap #支持soap服务
SOAP是基于XML的简易协议,可使应用程序在http之上进行信息交换。或者更简单地说:SOAP是用于访问网络服务的协议。
--enable-mbstring=all #支持多字节,字符串
--enable-sockets #支持套接字
--with-pdo-MysqL=/usr/local/MysqL/ #启用MysqL的pdo模块支持
--without-pear #步安装pear(安装pear需要连接互联网)
注:查看编译时使用的参数 ./sbin/PHP-fpm -i | grep configure
mkdir /usr/local/PHP/etc
cp PHP.ini-production /usr/local/PHP/etc/PHP.ini
vim /usr/local/apache2/etc/httpd.conf
编辑apache配置文件,找到AddType字段在后面加:AddType application/x-httpd-PHP .PHP .PHPs .pHTML将PHP相关的资源交由PHP执行。
找到DirectoryIndex index.HTML在后面加上index.PHP默认加载PHP主页。
vim /usr/local/apache2/htdocs/index.PHP #编写PHP模块测试文件
vim /usr/local/apache2/htdocs/MysqL.PHP #编写MysqL数据库连接测试文件
编辑/etc/rc.local加入一下两句,服务开机自启。
/usr/local/apache2/bin/apachectl start
/usr/local/MysqL/bin/MysqLd_safe --user=MysqL &
Nginx配合PHP配置如下:
配置PHP引擎配置文件PHP.ini
cp PHP.ini-production /application/PHP/lib/PHP.ini
PHP.ini-development模板适用于开发环境、PHP.ini-production模板适用于生产环境。开发环境更多是开启日志调试信息。而生产环境都是关闭状态(off)
配置PHP服务的配置文件PHP-fpm.conf
这里使用的默认配置,没有做任何改动。
启动PHP服务PHP-fpm
/application/PHP/sbin/PHP-fpm
检查端口情况:netstat -natp | grep 9000 (默认使用9000端口)
配置Nginx支持PHP
vim Nginx.conf
server区域增加一个location区域
lication ~ .*\.(PHP|PHP5)?${
root HTML;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
include fastcgi.conf;
}
增加默认首页文件index.PHP
location / {
root HTML;
index index.HTML index.htm index.PHP;
}
重新加载文件Nginx
/application/Nginx/sbin/Nginx -s reload
编辑测试页面:
vim test_info.PHP
<?PHP
PHPinfo();
?>
vim test_MysqL.PHP
<?PHP
$link=MysqL_connect(‘localhost‘,‘‘,‘‘) or MysqL_error();
if ($link)
{
echo "MysqL successful";
}else
{
echo MysqL_error();
}
?>
最后访问测试。
总结以上是内存溢出为你收集整理的WEB环境安装步骤v1.2全部内容,希望文章能够帮你解决WEB环境安装步骤v1.2所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)