摘要:源码编译安装LAMP虽然过程繁琐,但可以根据自己PHP程序的需要配置相应的环境,非常的灵活。也可yum安装,建议最好源码安装,系统建议无桌面最小化安装。
1 禁用selinux
selinux可能会致使编译安装失败,我们先禁用它。
①sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config //永久禁用,需要重启生效。
②setenforce 0 //临时禁用,不需要重启。
2 yum安装必要工具
①安装编译工具gcc gcc-c++make automake autoconf kernel-devel
②安装PHP所需依赖,如libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel等
yum -y install gcc gcc-c++ make automake autoconf kernel-devel ncurses-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel pcre-devel libtool-libs freetype-devel gd zlib-devel file bison patch mlocate flex diffutils readline-devel glibc-devel glib2-devel bzip2-devel gettext-devel libcap-devel
2 下载所需源码包
apache:http://httpd.apache.org/
mysql:http://mysql.com/downloads/mysql/
php:http://php.net/downloads.php
phpmyadmin:http://www.phpmyadmin.net/home_page/downloads.php
建议安装版本:Apache-2.2 Mysql-5.x php-5.2.x
①cd /tmp
②#tar -zxvf Apache-2.2.x.tar.gz
#tar -zxvf Mysql-5.x.tar.gz
#tar -zxvf php-5.2.x.tar.gz
#tar -xzvf phpMyAdmin-3.4.x.tar.gz
3.安装apache
#cd /tmp/httpd-2.2.x
#./configure --prefix=/usr/local/apache --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-headers=shared --enable-rewrite=shared --enable-static-support
#make
#make install
编译参数解释
--prefix=/usr/local/apache:指定安装目录
--with-included-apr:在编译时强制使用当前源代码中绑定的APR版本
--enable-so:允许运行时加载DSO模块
--enable-deflate=shared:将deflate模块编译为DSO
--enable-expires=shared:将expires模块编译为DSO
--enable-headers=shared:将headers模块编译为DSO
--enable-rewrite=shared:将rewrite模块编译为DSO
--enable-static-support:使用静态连接(默认为动态连接)编译所有二进制支持程序
更详细的编译参数解释:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/configure.html
#cp build/rpm/httpd.init /etc/init.d/httpd //使用init脚本管理httpd
#chmod 755 /etc/init.d/httpd //增加执行权限
#chkconfig --add httpd //添加httpd到服务项
#chkconfig httpd on //设置开机启动
#ln -fs /usr/local/apache/ /etc/httpd
#ln -fs /usr/local/apache/bin/httpd /usr/sbin/httpd
#ln -fs /usr/local/apache/bin/apachectl /usr/sbin/apachectl
#ln -fs /usr/local/apache/logs /var/log/httpd //设置软链接以适应init脚本
4.安装mysql
#groupadd mysql
#useradd -g mysql mysql
#cd /tmp/mysql-5.1.62
#./configure --prefix=/usr/local/mysql/ --localstatedir=/usr/local/mysql/data --without-debug --with-unix-socket-path=/tmp/mysql.sock --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --with-extra-charsets=gbk,gb2312,utf8 --with-pthread
#make
#make install
编译参数解释:
--prefix=/usr/local/mysql/:指定安装位置
--localstatedir=/usr/local/mysql/data:指定数据库文件位置
--without-debug:禁用调用模式
--with-unix-socket-path=/tmp/mysql.sock:指定sock文件位置
--with-client-ldflags=-all-static:
--with-mysqld-ldflags=-all-static:以纯静态方式编译服务端和客户端
--enable-assembler:使用一些字符函数的汇编版本
--with-extra-charsets=gbk,gb2312,utf8 :gbk,gb2312,utf8字符支持
--with-pthread:强制使用pthread库(posix线程库)
更多编译参数请执行./configure --help命令查看。
#cp support-files/my-medium.cnf /etc/my.cnf //复制配置文件夹my.cnf
#/usr/local/mysql/bin/mysql_install_db --user=mysql //初始化数据库
#chown -R root.mysql /usr/local/mysql
#chown -R mysql /usr/local/mysql/data
#cp /tmp/mysql-5.1.62/support-files/mysql.server /etc/rc.d/init.d/mysqld //init启动脚本
#chown root.root /etc/rc.d/init.d/mysqld
#chmod 755 /etc/rc.d/init.d/mysqld
#chkconfig --add mysqld
#chkconfig mysqld on
#ln -s /usr/local/mysql/bin/mysql /usr/bin
#ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
#service mysqld start
#/usr/local/mysql/bin/mysqladmin -u root password '新密码' //设置root密码
5 安装php-5.2.x
在编译php之前,先要解决两个问题:centos 6上libmcrypt的安装和可能有些系统找不到libiconv导致的错误。
1、centos 6官方源已经没有libmcrypt的rpm包,我们这里选择编译安装,当然你也可以导入第三方源安装(centos 5略过此步)。
下载源码:
#cd /tmp
#wget http://superb-dca2.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
#wget http://superb-dca2.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
#wget http://superb-sea2.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
#tar xzf libmcrypt-2.5.8.tar.gz
#tar xzf mhash-0.9.9.9.tar.gz
#tar xzf mcrypt-2.6.8.tar.gz
//安装libmcrypt
#cd /tmp/libmcrypt-2.5.8
#./configure --prefix=/usr
#make && make install
//安装libmcrypt
#cd /tmp/mhash-0.9.9.9
#./configure --prefix=/usr
#make && make install
//安装mcrypt
#/sbin/ldconfig //搜索出可共享的动态链接库
#cd /tmp/mcrypt-2.6.8
#./configure
#make && make install
2、解决可能出现的libiconv错误。
#cd /tmp
#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
#tar xzf libiconv-1.14.tar.gz
#cd libiconv-1.14
#./configure --prefix=/usr/local/libiconv
#make && make install
开始安装php-5.2.x:
#cd /tmp/php-5.2.17
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --enable-bcmath --with-bz2 --with-curl --enable-ftp --with-gd --enable-gd-native-ttf --with-gettext --with-mhash --enable-mbstring --with-mcrypt --enable-soap --enable-zip --with-iconv=/usr/local/libiconv --with-mysql=/usr/local/mysql --without-pear
#make
#make install
编译参数解释:
--prefix=/usr/local/php:设置安装路径
--with-apxs2=/usr/local/apache/bin/apxs:编译共享的 Apache 2.0 模块
--with-config-file-path=/etc:指定配置文件php.ini地址
--with-config-file-scan-dir=/etc/php.d:指定额外的ini文件目录
--with-openssl:编译OpenSSL支持
--with-zlib:编译zlib支持
--enable-bcmath:启用BC风格精度数学函数
--with-bz2:BZip2支持
--with-curl:CRUL支持
--enable-ftp:FTP支持
--with-gd:GD支持
--enable-gd-native-ttf:启用TrueType字符串函数
--with-gettext:启用GNU gettext支持
--with-mhash:mhash支持
--enable-mbstring:启用支持多字节字符串
--with-mcrypt:编译mcrypt加密支持
--enable-soap:SOAP支持
--enable-zip:启用zip 读/写支持
--with-iconv=/usr/local/libiconv:iconv支持
--with-mysql=/usr/local/mysql:启用mysql支持
--without-pear:不安装PEAR
更多编译参数解释参考http://www.php.net/manual/zh/configure.about.php或者./configure --help查看。
#cp php.ini-dist /usr/local/php/etc/php.ini //复制配置文件php.ini
在/etc/httpd/conf/httpd.conf文件中加入php文件类型解析:
Addtype application/x-httpd-php .php
重启httpd:
#service httpd restart
6 安装eAccelerator-0.9.6.1(可选)
eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍。类似的php加速器有:Xcache,APC等。下面是安装方法:
#cd /tmp
#wget http://voxel.dl.sourceforge.net/project/eaccelerator/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.zip
#unzip eaccelerator-0.9.6.1.zip
#cd eaccelerator-0.9.6.1
#export PHP_PREFIX="/usr/local/php"
#$PHP_PREFIX/bin/phpize
#./configure -enable-eaccelerator=shared -with-php-config=$PHP_PREFIX/bin/php-config
#make && make install
#cd /tmp
#mkdir eaccelerator
#chmod 0777 eaccelerator
加载eAccelerator,创建/ec/php.d/ea.ini文件,加入如下代码加载:
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator参数设置参考:http://www.centos.bz/2012/03/eaccelerator-parameter/
重启httpd生效:
#service httpd restart
共同学习,写下你的评论
评论加载中...
作者其他优质文章