从源代码编译LAMP环境文档格式.docx
《从源代码编译LAMP环境文档格式.docx》由会员分享,可在线阅读,更多相关《从源代码编译LAMP环境文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
![从源代码编译LAMP环境文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/7/68b60033-3563-4381-bd26-3ea6f22dd6df/68b60033-3563-4381-bd26-3ea6f22dd6df1.gif)
configure;
make;
makeinstall;
即可;
然后安装flex:
makeinstal;
即可
进入httpd源码包开始编译
[root@localhosthttpd-2.4.1]#./configure--enable-so
ConfiguringApachePortableRuntimelibrary...
(报错)
checkingforAPR...no
configure:
error:
APRnotfound.Pleasereadthedocumentation.
需要安装依赖包apr(apacheportableruntime)
apr-1.4.6.tar.bz2;
apr-iconv-1.2.1.tar.bz2;
apr-util-1.4.1.tar.bz2;
apache的apr项目目前有三部分组成,分别是apr、apr-util、apr-iconv
apr中包含了一些通用的开发组件,包括mmap,DSO等等
apr-util该目录中也是包含了一些常用的开发组件。
这些组件与apr目录下的相比,它们与apache的关系更加密切一些。
比如存储段和存储段组,加密等等。
apr-iconv包中的文件主要用于实现iconv编码。
[root@localhostapr-1.4.6]#./configure
config.status:
executinglibtoolcommands
rm:
cannotremove`libtoolT'
:
Nosuchfileordirectory
executingdefaultcommands
提示缺少libtool这步包依赖比较麻烦偷个懒直接yuminstalllibtool;
[root@localhostapr-1.4.6]#yuminstalllibtool
DependenciesResolved
================================================================================================
PackageArchVersionRepositorySize
Installing:
libtooli6862.4-9.fc15updates575k
Installingfordependencies:
autoconfnoarch2.68-2.fc15fedora858k
automakenoarch1.11.1-5.fc14fedora545k
Updatingfordependencies:
cppi6864.6.3-2.fc15updates3.9M
gcci6864.6.3-2.fc15updates11M
libgcci6864.6.3-2.fc15updates100k
libgompi6864.6.3-2.fc15updates103k
TransactionSummary
Install3Package(s)
Upgrade4Package(s)
Totaldownloadsize:
17M
然后就可以安装apr-1.2.6;
make;
makeinstall;
然后安装apr-util-1.4
[root@localhostapr-util-1.4.1]#./configure--with-apr=/usr/local/apr
然后makemakeinstall完成
然后安装apr-iconv-1.2.1
[root@localhostapr-iconv-1.2.1]#./configure--with-apr=/usr/local/apr
make;
makeinstall
然后再进入httpd源码文件夹
又有新报错,依赖包:
checkingforpcre-config...false
pcre-configforlibpcrenotfound.PCREisrequiredandavailablefromhttp:
//pcre.org/
然后安装pcre-0.8
make的时候报错
安装pcre出现
libtool:
compile:
unrecognizedoption`-DHAVE_CONFIG_H'
Try`libtool--help'
formoreinformation.
make[1]:
***[pcrecpp.lo]Error1
Leavingdirectory`/root/pcre-8.30'
make:
***[all]Error2
更新最新的gcc-c++包即可通过编译
yuminstallgcc-c++
然后重新configure;
makeinstall;
这次终于没再报错,make;
可执行文件安装的到/usr/local/apache2/bin
[root@localhostbin]#./apachectlstart开启apache
用lynx(指令行模式的浏览器)查看apache测试页;
#lynxhttp:
//localhost
显示Itworks!
表示apache安装成功;
然后把apache停了继续安装Mysql.
编译安装mysql之前需要创建mysql用户:
#groupaddmysql
#useradd-r-gmysqlmysql
然后cpnfigure
[root@localhostmysql-5.1.62]#./configure--prefix=/usr/local/mysql\
>
--with-mysqld-ldflags=-all-static--with-client-ldflags=-all-static\
--with-extra-charsets=all--with-plugins=innobase,myisam\
--with-unix-socket-path=/usr/local/mysql/sock/mysql.sock\
--enable-thread-safe-client--enable-assembler--without-embedded-server
解释:
--with-mysqld-ldflags=-all-static//以静态方式编译服务器端
--with-client-ldflags=-all-static//以静态方式编译客户端
--with-extra-charsets=all//添加所有字符集
--with-plugins=innobase,myisam//添加mysql存储引擎
--with-unix-socket-path=/usr/local/mysql/sock/mysql.sock
--enable-thread-safe-client//以线程方式编译客户端,提高性能
--enable-assembler//使用汇编,提高性能
--without-embedded-server//去除embedded
添加所有字符集的效果:
checking"
charactersets"
...default:
latin1,collation:
latin1_swedish_ci;
compiledin:
latin1latin1utf8binaryarmscii8asciibig5cp1250cp1251cp1256cp1257
cp850cp852cp866cp932dec8eucjpmseuckrgb2312gbkgeostd8greekhebrewhp8keybcs2koi8rkoi8u
latin1latin2latin5latin7maccemacromansjisswe7tis620ucs2ujisutf8
但是在configure最后出现报错信息:
checkingfortermcapfunctionslibrary...configure:
Nocurses/termcaplibraryfound
然后下载termcap源码包。
makeinstall即可;
此处安装的是termcap-1.3.1
重新configuremysql
然后出现了ThankyouforchoosingMySQL!
,然后就可以make;
makeinstall了;
Postinstallationsetup(安装后设置)
#cpsource_file/support-files/my-f/etc/f
修改配置文件f
#TheMySQLserver
[mysqld]
port=3306
socket=/usr/local/mysql/sock/mysql.sock
在这儿加入一行,修改一行
datadir=/usr/local/mysql/data
skip-external-locking#这行原来是skip-locking,出现warning:
[Warning]'
--skip-locking'
isdeprecatedandwillberemovedinafuturerelease.
Pleaseuse'
--skip-external-locking'
instead
#cd/usr/local/mysql
#mkdirdata
#chown-Rmysql.
#chgrp-Rmysql.
#bin/mysql_install_db--user=mysql\
--basedir=/usr/local/mysql\
--datadir=/usr/local/mysql/data
#chown-Rroot.
#chown-Rmysqldata
#cp/usr/local/mysql/share/mysql/mysql.server/etc/init.d/mysqld
#chkconfig--addmysqld
#chkconfigmysqldon
#bin/mysqld_safe--user=mysql&
然后登陆mysql测试
#/usr/local/mysql/bin/mysql
出现mysql>
然后编译安装php
先安装libxml2
下载地址:
ftp:
//xmlsoft.org/libxml2/
这里安装libxml2-2.7.7.tar.gz
然后安装libpng软件包
然后安装libmcrypt下载地址ftp:
//mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
安装zlib软件包;
进入php源码文件夹下的ext
/root/php-5.2.17/ext
这里是一些php扩展
./configure--with-mcrypt--with-gd--with-mysql--with-mysqli--with-zlib
(复制配置文件模板到相应的位置)
#cpphp.ini-development/usr/local/lib/php.ini
然后编辑httpd的配置文件
在/usr/local/apache2/conf/httpd.conf
确保里面有这样一行:
LoadModulephp5_modulemodules/libphp5.so
在httpd.conf的中后部分
AddTypeapplication/x-compress.Z
AddTypeapplication/x-gzip.gz.tgz
添加下面两行,让apache解析.php和.html结尾的文件
AddTypeapplication/x-httpd-php.php
AddTypeapplication/x-httpd-php.html
(最后一行允许在html中嵌入php语句,并正确解析)
除了添加AddType之外,为避免如exploit.php.jpg这样的文件被解析成php脚本,我们可以再加入下面的语句,让其解析以.php结尾的语句“.php$”
<
FilesMatch\.php$>
SetHandlerapplication/x-httpd-php
/FilesMatch>
为使apache正确解析php2,php3,php4,php5,php6,phtml文件(当做php来解析)需要添加如下字段:
FilesMatch"
\.ph(p[2-6]?
|tml)$"
修完完后重启apache
$/usr/local/apache2/bin/apachectlstart
例子1.phpinfo()examples
?
php
phpinfo();
phpinfo(INFO_MODULES);
能看到php测试页
在这里要用到phpize,phpize命令是用来准备PHP扩展库编译环境,一般在你安装好PHP后,会在安装PHP的bin目录下找到这个命令/usr/local/bin/phpize;
如果在执行phpize命令后出现找不到autoconf之类的提示,请安装好autoconf后再次执行;
#yuminstallautoconf;
PHP源码包文件夹下的ext文件夹就是放置着目前版本的可用扩展;
#cdphp-source-dir/ext/mysqli
#phpize或者用全路径#/usr/local/bin/phpize
会得到类似如下的信息:
[root@localhostmysqli]#phpize
Configuringfor:
PHPApiVersion:
20100412
ZendModuleApiNo:
20100525
ZendExtensionApiNo:
220100525
然后就configure;
make;
makeinstall过程:
[root@localhostmysqli]#./configure--prefix=/usr/local/lib/mysql\--with-php-config=/usr/local/bin/php-config--with-mysqli=/usr/local/bin/mysql_config
[root@localhostmysqli]#make
[root@localhostmysqli]#makeinstall
安装完毕后又如下信息:
Installingsharedextensions:
/usr/local/lib/php/extensions/no-debug-zts-20100525/
Installingheaderfiles:
/usr/local/include/php/
所产生的mysqli.so便在第一个目录里面;
然后修改php.ini配置文件,添加一行:
extension=/usr/local/lib/php/extensions/no-debug-zts-20100525/mysqli.so
然后重启apache即可;
可以在phpinfo()测试页中看到
6,为PHP添加mcrypt扩展
需要安装依赖包:
libmcrypt
wgetftp:
makeinstall安装就好;
然后进如PHP源码包目录下的ext目录,里面有mcrypt目录,进去执行phpize生成configure文件,然后执行configure
#./configure--with-mcrypt=/usr/local/include
#make
#makeinstall
安装即可;
安装完后会得到如下输出,告诉产生的目标在何处:
然后如上述添加mysqli支持一样;
在/usr/local/lib/php.ini里添加相似的一行:
extension=/usr/local/lib/php/extensions/no-debug-zts-20100525/mcrypt.so
然后重启apache就OK;
(如果在安装php之前没有安装gd扩展的话,可以按照如下方式添加dg扩展支持)
下载安装GD库扩展所需源码包(可点击源码包直接下载)
gd-2.0.35.tar.gzhttp:
//www.libgd.org/releases/
jpegsrc.v8b.tar.gzhttp:
//www.ijg.org/
libpng-1.5.0.tar.gz
freetype-2.4.4.tar.gz
zlib-1.2.3.tar.gz
先安装zlib
tarzxvfzlib-1.2.3.tar.gz
cdzlib-1.2.3
./configure
make
makeinstall
然后安装libpng
对于有些版本,需要按照如下方式安装
tarzxvflibpng-1.5.0.tar.tar
cdlibpng-1.5.0
cdscripts
mvmakefile.linux../makefile
cd..
对于libpng-1.2.44就直接configure;
makeinstall就可以;
然后安装freetype
直接configure;
makeinstall就可以;
然后安装jpegsrc
cdjpeg-8b
./configure–enable-shared
注意,这里configure一定要带–enable-shared参数,不然,不会生成共享库
然后安装GD库
cdgd-2.0.33
./configure–with-png–with-freetype–with-jpeg
最后重新编译PHP
重新编译安装PHP(即是在以前编译PHP的参数后面再加上以上安装的相关参数)
#./configure--with-apxs2=/usr/local/apache2/bin/apxs--with-mysql--with-gd--enable-gd-native-ttf--with-zlib--enable-sockets然后可以再phpinfo()函数输出结果中看到gd
直接解压到/usr/local/apache2/htdocs/下即可
修改php.ini添加mysql和mysqli的sock路径;
mysqli.default_socket=/usr/local/mysql/sock/mysql.sock