源码搭建LNMP环境及搭建discuz论坛zz.docx
《源码搭建LNMP环境及搭建discuz论坛zz.docx》由会员分享,可在线阅读,更多相关《源码搭建LNMP环境及搭建discuz论坛zz.docx(17页珍藏版)》请在冰豆网上搜索。
源码搭建LNMP环境及搭建discuz论坛zz
1:
首先安装如下rpm包,以满足LNMP环境需求。
Yum-yinstalllibjpeg-devellibpng-devellibtiff-develfontconfig-develfreetype-devellibXpm-develgettext-developenssl-devellibtool-ltdl-develgcc*openssl*libxml*
(libjpeg-devel,libpng-devel,libtiff-devel,fontconfig-devel,freetype-devel,libXpm-devel这些都是图片与字体相关的开发包,为了使php可以对其做更好的支持。
gettext是语言相关的一个函数库。
openssl-devel是一套工具,用于生成X.509协议中所使用的密钥,公钥等文件。
libtool是一个通用库支持脚本,在php编译过程中会需要使用到。
)
2安装nginx
(1)先要安装pcre,系统自带的pcre版本过低,不能满足我们的需求。
pcre是一个正则表达式相关的包,要想Nginx使用Rewrite,那么就需要正则的支持。
tarxfpcre-8.10.tar.gz
cdpcre-8.10
./configure
make&&makeinstall
(2)编译安装Nginx
Useraddnginx
tarxfnginx-0.7.67.tar.gzcdnginx-0.7.67
./configure--user=nginx--group=nginx--prefix=/usr/local/nginx/--with-http_stub_status_module--with-http_ssl_module--with-sha1=/usr/lib
make&&makeinstall
--user与--group的参数指定Nginx运行时的所有者,以提高安全性。
--prefix指定了Nginx的安装位置。
--with-http_stub_status_module可以让Nginx获取到相关的工作状态,以便我们平时可以做更好的监控。
--with-http_ssl_module为启用ssl的支持。
--with-sha1指定希哈函数库位置。
3编译安装Mysql客服端
tarxvfmysql-5.1.49.tar.gz
cdmysql-5.1.49
./configure--prefix=/usr/local/mysql/--without-server(根据提示安装相关包。
eg:
*termcap*,*curses*)
make
makeinstall
[root@servermysql-5.1.49]#/usr/local/mysql/bin/mysql_install_db--user=mysql
数据库初始化
[root@servermysql-5.1.49]#/usr/local/mysql/bin/mysqld_safe【据说是开启服务】
4编译安装php
在安装php之前要首先安装以下几个库gd2libiconvlibmcryptmhashspawn-fcgilibevent
gd是一个用以生成图形图片的库,RHEL自带gd2的开发包,但是版本比较低,生成的图片是黑白的,非常不美观,因此这边单独编译一个高版本。
tarxfgd-2.0.35.tar.bz2
cdgd-2.0.35
./configure–prefix=/usr/local/gd2
make&&makeinstall
libiconv用于实现一个字符编码到另一个字符编码的转换。
tarxflibiconv-1.13.1.tar.gz
cdlibiconv-1.13.1
./configure
make&&makeinstall
libmcrypt可以使php支持更多加密算法。
tarxflibmcrypt-2.5.7.tar.gz
cdlibmcrypt-2.5.7
./configure
make&&makeinstall
mhash是一个哈稀演函数库,它可以支持多种哈稀演算法,例如最出名的
MD5、SHA1或GOST,还有其它多种的哈稀演算法。
tarxfmhash-0.9.9.9.tar.bz2
cdmhash-0.9.9.9
./configure
make&&makeinstall
spawn-fcgi spawn-fcgi原本是lighttpd的一个用来控制php-cgi的工具,现在已从lighttpd中独立出来成为一个开源项目。
我们可以用它来启动,控制,管理php-cgi的进程。
使用它有诸多好处,比如我们可以将运行php-cgi的主机与Nginx分离开来,以减轻Nginx服务器的负担,或者用来扩展架构,做更多的负载分担。
减少进程的重复创建所带来的性能消耗等等。
tarxfspawn-fcgi-1.6.3.tar.gz
cdspawn-fcgi-1.6.3
./configure--prefix=/usr/local/spawn-fcgi
make&&makeinstall
libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。
tarxflibevent-1.4.14b-stable.tar.gz
cdlibevent-1.4.14b-stable
./configure
make&&makeinstall
编译PHP【cd/usr/local】
(1)Tarxvfphp-5.2.13.tar.gz
(2)./configure--prefix=/usr/local/php--enable-fastcgi--enable-discard-path--enable-force-cgi-redirect--with-config-file-path=/usr/local/php/etc--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-gd=/usr/local/gd/--with-zlib--with-libxml-dir--with-curl--with-curlwrappers--with-openssl--with-mhash--with-xmlrpc--with-mcrypt--enable-xml--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--enable-mbregex--enable-mbstring--enable-gd-native-ttf--enable-ftp--enable-pcntl--enable-sockets--enable-zip--disable-debug--disable-ipv6
此时,编译过程中可能会出现如下错误,下面给出解决办法。
(1)出现问题:
configure:
error:
libjpeg.(a|so)notfound
解决办法:
cp-frp/usr/lib64/libjpeg.*/usr/lib/
(2)出现问题:
configure:
error:
libpng.(a|so)notfound
解决办法:
cp-frp/usr/lib64/libpng*/usr/lib/
(3)问题:
configure:
error:
Pleasereinstallthelibcurldistribution-
easy.hshouldbein/include/curl/
解决办法:
yuminstallcurl-devel
参数说明:
--enable-fastcgi启动fast-cgi
--enable-discard-path打开这个选项,用户就不能透过浏览器读取类似.htaccess的系统安全相关的文件。
--enable-force-cgi-redirect若使用CGIVERSION模式来执行PHP的设,打开本选项会增加安全性。
例如用户读http:
//my.host/cgi-bin/php/secret/doc.html遇到比较了解PHP系统的黑客级用户可能会自已输入以下网址http:
//my.host/secret/doc.html来读取相关信息。
若PHP和Apache编译在一起,让PHP变成Apache的一部份,则不需要加入本选项。
--with-config-file-path在指定php主配置文件的路径
--with-mysql和--with-mysqli在指定你的mysql的位置和它的相关工具
--with-iconv-dir,--with-freetype-dir,-with-jpeg-dir,--with-png-dir,--withgd,--with-zlib,--with-libxml-dir这些都是在启用对某种文件的支持.
--with-curl和--with-curlwrappers是用于支持curl函数,此函数允许你用不同的协议连接和沟通不同的服务器
--with-openssl,--with-mhash,--with-mcrypt这都是和加密有关的参数,启用它们是为了让php可以更好的支持各种加密。
--enable-bcmath高精度数学运算组件。
--enable-shmop和--enable-sysvsem使得你的PHP系统可以处理相关的IPC函数。
IPC是一个Unix标准通讯机制,它提供了使得在同一台主机不同进程之间可以互相通讯的方法。
--enable-inline-optimization栈堆指针和优化线程。
--enable-pcntl多线程优化。
(3)makeZEND_EXTRA_LIBS='-liconv'
//手工指定将iconv加到php额外库中,一般来说这些库的增加php可以自动完成,只是iconv貌似不太合群,需要手工操作。
(4)makeinstall
(5)cp./php.ini-dist/usr/local/php/etc/php.ini
5安装php扩展模块工具
(1)安装memcache
tarxvfmemcache-3.0.4.tgz
cdmemcache-3.0.4
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config
make&&makeinstall
memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
(2)安装eaccelerator
tar