CentOS下编译搭建LAMP环境
搭建LAMP环境须知
搭建LAMP环境时,需要安装的所有软件都要按照一定的顺序安装,我们按照Apache->MySQL->PHP的顺序安装。但是在安装PHP之前,应先安装PHP5需要的最新版本库文件,例如libxml2、libmcrypt,以及GD2库等文件。安装GD2库是为了让PHP5支持GIF、PNG和JPEG图片格式,所以在安装GD2库之前还要先安装最新的zlib、libpng、freetype和jpegsrc等库文件。而且中间还会穿插安装一些软件。
确认搭建LAMP所需的环境是否已经安装:
[root@centos6 ~]# rpm -q make gcc gcc-c++ zlib-devel libtool libtool-ltdl libtool-ltdl-devel bisonncurses-devel
安装libpng时需要:zlib-devel
安装php时需要:libtool、libtool-ltdl、libtool-ltdl-devel
安装mysql时需要:bison、ncurses-devel
如果没安装则使用yum安装:
[root@centos6 ~]# yum -y install make gcc gcc-c++ zlib-devel libtool libtool-ltdllibtool-ltdl-devel bison ncurses-devel
需要安装的程序包
httpd-->http://httpd.apache.org/
mysql-->http://dev.mysql.com/downloads/
php-->http://cn2.php.net/downloads.php
libxml2-->ftp://xmlsoft.org/libxml2/
libmcrypt[PHPlibmcrypt模块]-->ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/
libgd-->https://bitbucket.org/libgd/gd-libgd/downloads
zlib-->http://www.zlib.net
autoconf-->http://ftp.gnu.org/gnu/autoconf/
freetype-->http://download.savannah.gnu.org/releases/freetype/
libpng-->ftp://ftp.simplesystems.org/pub/libpng/png/src/
jpegsrc-->http://www.ijg.org/files/
apr[Apache库文件]-->http://apr.apache.org/download.cgi
apr-util[Apache库文件]-->http://apr.apache.org/download.cgi
pcre-->http://sourceforge.net/projects/pcre
cmake[MySQL编译工具]-->http://www.cmake.org
gd库-->http://libgd.bitbucket.org/
安装规则
软件源代码包存放位置 :/usr/local/src
源码包编译安装位置:/usr/local/软件名字 (编译安装的软件一般安装在/usr/local/下)
源代码安装:配置(configure)、编译(make)、安装(make install)
前期准备
配置防火墙,开启80端口、3306端口
[root@centos6 ~]# vim /etc/sysconfig/iptables
# 添加到默认的22端口下面:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
[root@centos6 ~]# /etc/init.d/iptables restart
关闭SELINUX
[root@centos6 ~]# vim /etc/selinux/config
# SELINUX=enforcing # 注释掉
# SELINUXTYPE=targeted # 注释掉
SELINUX=disabled # 增加
:wq 保存,关闭
[root@centos6 ~]# shutdown -r now # 重启系统
查看httpd、mysql、php是否安装
[root@centos6 ~]# rpm -q httpd mysql php
卸载对应已安装软件
[root@centos6 ~]# rpm -e httpd --nodeps
[root@centos6 ~]# rpm -e mysql --nodeps
[root@centos6 ~]# rpm -e php --nodeps
编译安装libxml2(xml的C语言编译器)
[root@centos6 ~]# tar -zxvf libxml2-2.6.30.tar.gz
[root@centos6 ~]# cd libxml2-2.6.30
[root@centos6 libxml2-2.6.30]# ./configure --prefix=/usr/local/libxml2
[root@centos6 libxml2-2.6.30]# make
[root@centos6 libxml2-2.6.30]# make install
注:选项--prefix=/usr/local/libxml2作用是将软件安装到/usr/local/libxml2目录下。如果安装成功以后,在/usr/local/libxml2/目录下将生成bin、include、lib、share四个目录。在后面安装PHP5源代码的配置时,会通过在configure命令的选项中加上"--with-libxml-dir=/usr/local/libxml2"选项,用于指定安装libxml2库文件的位置。
[root@centos6 ~]# rpm -qa | grep python-devel
[root@centos6 ~]# yum install python-devel
[root@centos6 ~]# rpm -qa | grep python-devel
编译安装libmcrypt(加密算法扩展库)
[root@centos6 ~]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@centos6 ~]# cd libmcrypt-2.5.8
[root@centos6 libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt
[root@centos6 libmcrypt-2.5.8]# make
[root@centos6 libmcrypt-2.5.8]# make install
如果安装成功就会在/usr/local/libmcrypt/目录下生成bin、include、lib、man、share五个目录。然后在安装PHP5源代码包的配置时,就可以通过configure命令加上"--with-mcrypt-dir=/usr/local/libmcrypt"选项,指定这个libmcrypt库文件的位置。
如./configure时报错:configure: error: C++ compiler cannot create executables,解决方案:运行下面命令,然后重新configure(配置)
[root@centos6 libmcrypt-2.5.8]# yum install gcc gcc-c++ gcc-g77
安装完成libmcrypt库以后,不同的linux系统版本有可能还要安装一下libltdl库。安装方法和前面的步骤相同,可以进入到解压缩的目录/usr/local/src/libmcrypt-2.5.8下,找到libltdl库源代码所在的目录libltdl,进入这个目录按照下面几个命令配置、编译、安装就可以了。
[root@centos6 libltdl]# pwd
/usr/local/src/libmcrypt-2.5.8/libltdl # 进入软件源代码目录
[root@centos6 libltdl]# ./configure –enable-ltdl-install # 配置ltdl库的安装
[root@centos6 libltdl]# make # 编译
[root@centos6 libltdl]# make install # 安装
编译安装zlib(zlib是提供数据压缩用的函式库、安装GD需要)
[root@centos6 LAMP]# tar -zxvf zlib-1.2.5.tar.gz
[root@centos6 LAMP]# cd ./zlib-1.2.5
[root@centos6 zlib-1.2.5]# ./configure --prefix=/usr/local/zlib
[root@centos6 zlib-1.2.5]# make && make install
如果安装成功将会在/usr/local/zlib目录下生成include、lib、share三个目录。在安装PHP5配置时,在configure命令的选项中加上"--with-zlib-dir=/usr/local/libmcrypt"选项,用于指定zlib库文件位置。
编译安装libpng(安装GD需要)
[root@centos6 LAMP]# tar -zxvf libpng-1.5.4.tar.gz
[root@centos6 LAMP]# cd ./libpng-1.5.4
[root@centos6 libpng-1.5.4]# ./configure --prefix=/usr/local/libpng --enable-shared
[root@centos6 libpng-1.5.4]# make && make install
在./configure --prefix=/usr/local/libpng这步最后会提示:configure: error: ZLib not installed
解决方法如下:
- 进入zlib的源文件目录,执行命令 make clean,清除zlib;
- 重新配置 ./configure,后面不要接--prefix参数;
- make && make install;
- 进入libpng目录,执行命令 ./configure --prefix=/usr/local/libpng;
- make && make install;
- 安装成功
如果安装成功将会在/usr/local/libpng目录下生成bin、include、lib和share四个目录。在安装GD2库配置时,通过在configure命令选项中加上"--with-png=/usr/local/libpng"选项,指定libpng库文件的位置。
编译安装jpeg(安装GD2库前所需的jpeg8库文件,需要自己手动创建安装需要的目录,它们在安装时不能自动创建)
[root@centos6 LAMP]# tar -zxvf jpegsrc.v8c.tar.gz
[root@centos6 LAMP]# cd ./jpeg-8c/
[root@centos6 jpeg-8c]# mkdir /usr/local/jpeg/ (创建jpeg软件的安装目录)
[root@centos6 jpeg-8c]# mkdir /usr/local/jpeg/bin/ (创建存放命令的目录)
[root@centos6 jpeg-8c]# mkdir /usr/local/jpeg/lib/ (创建jpeg库文件所在目录)
[root@centos6 jpeg-8c]# mkdir /usr/local/jpeg/include/ (创建存放头文件目录)
[root@centos6 jpeg-8c]# mkdir -p /usr/local/jpeg/man/man1 (建立存放手册的目录)
[root@centos6 jpeg-8c]# ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static(建立共享库使用的GNU的libtool和静态库使用的GNU的libtool)
[root@centos6 jpeg-8c]# make && make install
在安装GD2库配置时,可以在configure命令的选项中加上"--with-jpeg=/usr/local/jpeg8"选项,指定jpeg8库文件的位置。安装PHP时也要指定该库文件的位置。
编译安装freetype (安装GD需要)
[root@centos6 LAMP]# tar -zxvf freetype-2.4.6.tar.gz
[root@centos6 LAMP]# cd ./freetype-2.4.6
[root@centos6 freetype-2.4.6]# ./configure --prefix=/usr/local/freetype/ --enable-shared
[root@centos6 freetype-2.4.6]# make && make install
如果安装成功将会在/usr/local/freetype目录下存在bin、include、lib和share四个目录。并在安装GD2库时,通过configure命令选项中加上"--with-freetype=/usr/local/freetype/"选项,指定freetype库文件位置。
编译安装autoconf (唯一注意的地方是configure时,不用指定路径)
[root@centos6 LAMP]# tar -zxvf autoconf-2.68.tar.gz
[root@centos6 LAMP]# cd ./autoconf-2.68
[root@centos6 autoconf-2.68]# ./configure
[root@centos6 autoconf-2.68]# make && make install
编译安装GD
[root@centos6 LAMP]# tar -zxvf gd-2.0.35.tar.gz
[root@centos6 LAMP]# cd ./gd-2.0.35
[root@centos6 gd-2.0.35]# ./configure \ # 配置命令
> --prefix=/usr/local/gd \ # 指定安装软件的位置
> --with-jpeg=/usr/local/jpeg \ # 指定去哪找jpeg库文件
> --with-png=/usr/local/libpng \ # 指定去哪找png库文件
> --with-zlib=/usr/local/zlib \ # 指定去哪找zlib库文件
> --with-freetype=/usr/local/freetype # 指定去哪找freetype 2.x字体库的位置
[root@centos6 gd-2.0.35]# make && make install
如果安装成功会在/usr/local/gd/目录下存在bin、include和lib这三个目录。在安装PHP5时,通过在configure命令选项中加上"--with-gd=/usr/local/gd"选项,指定GD库文件的位置。
如果报错:
gd_png.c 中 gdMalloc函数的问题
make[2]: *** [gd_png.lo] Error 1
make[2]: Leaving directory `/tmp/gd-2.0.35'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/gd-2.0.35'
make: *** [all] Error 2
解决方案:
vi gd_png.c
找到#include "png.h"改成#include "/usr/local/libpng/include/png.h"
如果报错:unrecognized option –with-zlib
那就重新安装一次zlib,注意,需要把原先解压出来的源码删掉,重新解压进行安装。
安装apache
先安装apr、apr-util、pcre
[root@centos6 ~]# rpm -qa | grep apr
[root@centos6 ~]# yum remove apr apr-util
# 查看当前是否已经安装apr、apr-util,若有则卸载。
# 编译安装apr
[root@centos6 LAMP]# tar zxvf apr-1.5.1.tar.gz
[root@centos6 LAMP]# cd apr-1.5.1
[root@centos6 apr-1.5.1]# ./configure --prefix=/usr/local/apr && make && make install
# 编译安装apr-util
[root@centos6 LAMP]# tar zxvf apr-util-1.5.3.tar.gz
[root@centos6 LAMP]# cd apr-util-1.5.1
[root@centos6 apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@centos6 apr-util-1.5.3]# make && make install
# 编译安装pcre(主要这里是使用pcre而不是pcre2,否则在编译时会出错)
[root@centos6 LAMP]# tar zxvf pcre-8.37.tar.gz
[root@centos6 LAMP]# cd pcre-8.37
[root@centos6 pcre-8.37]# ./configure --prefix=/usr/local/pcre
[root@centos6 pcre-8.37]# make
[root@centos6 pcre-8.37]# make install
# 编译安装apache
[root@centos6 LAMP]# tar zxvf httpd-2.4.9.tar.gz
[root@centos6 LAMP]# cd httpd-2.4.9
[root@centos6 httpd-2.4.9]# ./configure \
> --prefix=/usr/local/apache2 \
> --enable-mods-shared=all \
> --enable-deflate \
> --enable-speling \
> --enable-cache \
> --enable-file-cache \
> --enable-disk-cache \
> --enable-mem-cache \
> --enable-so \
> --enable-expires=shared \
> --enable-rewrite=shared \
> --enable-static-support \
> --sysconfdir=/etc/httpd \
> --with-z=/usr/local/zlib \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util \
//> --with-pcre=/usr/local/pcre \
> --disable-userdir
[root@centos6 httpd-2.4.9]# make && make install
安装完成后,进入/usr/local/apache2/目录下,检查是否有以下文件:
bin build cgi-bin error htdocs icons include logs man manual modules
启动Apache服务器,并查端口是否开启,启动Apache服务器的命令行如下:
[root@centos6 httpd-2.4.9]# /usr/local/apache2/bin/apachectl start
提示信息: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message
解决方案:
[root@centos6 httpd-2.4.9]# vi /etc/httpd/httpd.conf
加上:ServerName localhost:80 重启apache # netstat -tnl|grep 80 查看端口情况
开机启动apache
[root@centos6 apache2]# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
[root@centos6 LAMP]# /usr/local/apache2/bin/apachectl start
[root@centos6 LAMP]# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
[root@centos6 LAMP]# chmod +x /etc/init.d/httpd
[root@centos6 ~]# chkconfig --add httpd
注意:如果提示service httpd does not support chkconfig错误解决办法:
编辑/etc/rc.d/init.d/httpd在文件第二行加入
#chkconfig:2345 10 90
#description:Activates/Deactivates Apache Web Server 开机自动启动apache的另一种方法:
修改/etc/rc.local文件
# vim /etc/rc.local
在文件中添加/usr/local/apache/bin/apachectl start
# 启动、关闭、开启apache
[root@centos6 ~] # /etc/init.d/httpd start
[root@centos6 ~] # /etc/init.d/httpd restart
[root@centos6 ~] # /etc/init.d/httpd stop
安装MySQL
mysql版本5.5以上编译安装时需要用到软件cmake,cmake特性是独立于源码编译,编译工作可以在另外一个目录中而非源码目录中进行,好处是可以保证源码目录不受任何一次编译的影响。估计以后的版本也会采用这种方式,所以特地记录一下安装步骤及过程,以供参考。
注意:此安装是默认centos下已经安装了最新工具包,比如GNU、make、GCC、Perl、libncurses5-dev,如果在编译安装过程中发现有缺失的工具包,先yum install 单独下载安装再继续即可。
以下安装中涉及的几点需要提前说明的问题:
所有下载的文件将保存在 /usr/local/src/ 目录下
- mysql将以mysql用户运行,而且将加入 service 开机自动运行
- mysql将被安装在 /usr/local/mysql/ 目录下
- mysql默认安装使用 utf8 字符集
- mysql的数据和日志文件保存在 /usr/local/mysql/data/ 对应目录下
- mysql的配置文件保存于/etc/my.cnf
[root@centos6 ~]# yum -y install make gcc-c++ bison-devel ncurses-devel
下载安装cmake [CMake编译器]
[root@centos6 ~]# tar zxvf cmake-3.0.0.tar.gz
[root@centos6 ~]# cd cmake-3.0.0
[root@centos6 ~]# ./bootstrap
[root@centos6 ~]# gmake
[root@centos6 ~]# make && make install
在使用时可能会出现error,若提示是/usr/bin/cmake文件不存在
解决办法:
[root@centos6 ~]# whereis cmake # 得到cmke的可执行文件的路径,如在:/usr/local/bin/cmake
[root@centos6 ~]# ln -s /usr/local/bin/cmake /usr/bin/cmake # 创建一个链接文件即可解决
卸载旧版MySQL
[root@centos6 ~]# rpm -qa | grep mysql
[root@centos6 ~]# rpm -e mysql # 普通删除模式
[root@centos6 ~]# rpm -e --nodeps mysql # 强力删除模式
[root@centos6 ~]# yum -y install make gcc-c++ bison-devel ncurses-devel
# 安装编译所需要的包 bison-devel、ncurses-devel、cmake需要编译安装(如上面的cmake的安装过程)
编译安装mysql:
[root@centos6 ~]# tar xvf mysql-5.6.16.tar.gz
[root@centos6 ~]# cd mysql-5.6.16
[root@centos6 ~]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
[root@centos6 ~]# make && make install
# 配置编译的参数可以到mysql的官网查看
配置MySQL
1、设置权限
[root@centos6 ~]# cat /etc/passwd # 查看用户列表
[root@centos6 ~]# cat /etc/group # 查看用户组列表 # 创建mysql用户以及用户组
[root@centos6 ~]# groupadd mysql
[root@centos6 ~]# useradd -g mysql mysql [root@centos6 ~]# chown -R mysql:mysql /usr/local/mysql # 修改/usr/local/mysql权限
2、初始化配置
注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置。注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
[root@centos6 ~]# mv /etc/my.cnf /etc/my.cnf.bak
[root@centos6 ~]# rm /etc/my.cnf # 可以删除掉/etc/my.cnf这个文件
如果你需要用于生产环境,不要急着做下面的mysql启动操作。建议把上一步骤中mysql初始化生成的/usr/local/mysql/mysql.cnf删除,然后把你优化好的mysql配置文件my.cnf放到/etc下。(这是我做mysql主从复制和mysql优化的经验!)
[root@centos6 ~]# cd /usr/local/mysql
# 进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
[root@centos6 ~]scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
# 复制服务启动脚本
[root@centos6 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 启动MySQL服务
[root@centos6 ~]# service mysql start
# 设置开机自动启动服务
[root@centos6 ~]# chkconfig mysql on
# 编辑PATH路径
[root@centos6 ~]# vim /etc/profile
# 在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH
export PATH
[root@centos6 ~]# source /etc/profile # 保存让配置立即生效
# 修改密码
[root@centos6 ~]# mysql -uroot
mysql> SET PASSWORD = PASSWORD('123456');
# 登陆
[root@centos6 ~]# mysql -uroot -p
编译安装PHP
[root@centos6 ~]# yum -y install libXpm-devel
[root@centos6 ~]# rpm -ql libXpm-devel # 确保已经安装了libXpm。查找到libXpm-devel的安装位置为/usr/lib64/libXpm.so,将选项--with-xpm-dir=/usr/lib64添加到php的配置选项中。 [root@centos6 ~]# tar -zxvf php-5.4.11.tar.gz
[root@centos6 ~]# cd ./php-5.4.11
[root@centos6 php-5.4.11]# ./configure \
> --prefix=/usr/local/php \
> --with-config-file-path=/usr/local/php/etc \ # 配置文件路径,指定php.ini位置
> --with-apxs2=/usr/local/apache2/bin/apxs \ # apxs功能是使用mod_so中的 // LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块
> --with-mysql=/usr/local/mysql \ # mysql安装目录,对mysql的支持
> --with-mysqli=/usr/local/mysql/bin/mysql_config \ # mysqli文件目录,优化支持
> --with-libxml-dir=/usr/local/libxml2 \ # 打开libxml2库的支持
> --with-png-dir=/usr/local/libpng \ # 打开对png图片的支持
> --with-jpeg-dir=/usr/local/jpeg \ # 打开对jpeg图片的支持
> --with-freetype-dir=/usr/local/freetype \ # 打开对freetype字体库的支持
> --with-gd=/usr/local/gd \ # 打开gd库的支持
> --with-zlib-dir=/usr/local/zlib \ # 打开zlib库的支持
> --with-mcrypt=/usr/local/libmcrypt \ # 打开libmcrypt库的支持
> --with-xpm-dir=/usr/lib64 # 打开libXpm库的支持
> --enable-soap \ # 打开soap
> --enable-mbstring=all \ # 多字节,字符串的支持
> --enable-sockets # 打开sockets 支持
[root@centos6 php-5.4.11]# make && make install
# 安装完成后,需要建立PHP配置文件。在使用configure命令安装配置时使用"--with-config-file-path=/usr /local/php/etc/"选项,指定了配置文件的位置。将源码包下面的php.ini-development 文件复制到/usr/local /php/etc/中,并改名为php.ini
[root@centos6 php-5.4.11]# cp php.ini-development /usr/local/php/etc/php.ini
修改php.ini 把;date.timezone 前面的分号去掉,改成date.timezone ="PRC"
更改apache的配置文件,达到解析php文件的目的
编辑配置文件/etc/httpd/httpd.conf,在LoadModule最后面添加以下内容
LoadModule php5_module modules/libphp5.so
# 确保/usr/local/apache/modules下存在libphp5.so,否则说明php安装不成功 [root@centos6 ~]# vim /etc/httpd/httpd.conf
# 添加如下内容:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
Addtype application/x-httpd-php .php .phtml
Addtype application/x-httpd-php-source .phps # 将下面一行:
DirectoryIndex index.html
# 修改为:
DirectoryIndex index.php index.html index.htm [root@centos6 ~]# /etc/init.d/httpd restart # 重启apache服务器 # 修改环境变量PATH路径,使PHP能够在命令行中执行
[root@centos6 ~]# vim /etc/profile # 在最后添加一下:
PATH=/usr/local/php/bin:$PATH
export PATH
[root@centos6 ~]# source /etc/profile
编译安装PHP扩展
pcntl扩展
[root@centos6 ~]# cd /usr/local/src/php-5.6.16/ext/pcntl # 进入php源码包里面的pcntl的文件夹里面
[root@centos6 pcntl]# ln -s /usr/local/php/bin/phpize /usr/local/bin/phpize
[root@centos6 pcntl]# phpize
[root@centos6 pcntl]# ./configure --with-php-config=/usr/local/php/bin/php-config
# 指定到系统中相应的php-config的位置
[root@centos6 pcntl]# make && make install
# 编译安装pcntl完毕后会生成了一个 pcntl.so的文件
[root@centos6 pcntl]# vim /usr/local/php/etc/php.ini
加上 extension=pcntl.so
[root@centos6 pcntl]# /etc/init.d/httpd restart
libevent扩展
[root@centos6 ~]# yum install wget libevent-devel
[root@centos6 ~]# pecl install channel://pecl.php.net/libevent-0.1.0
# 成功后会生成/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/libevent.so
[root@centos6 ~]# vim /usr/local/php/etc/php.ini
添加:extension=libevent.so
[root@centos6 ~]# /etc/init.d/httpd restart
phpredis扩展
[root@centos6 ~]# tar -zxvf redis-2.2.7.tgz
[root@centos6 ~]# cd redis-2.2.7
[root@centos6 redis-2.2.7]# /usr/local/php/bin/phpize # 用phpize生成configure配置文件
[root@centos6 redis-2.2.7]# ./configure --with-php-config=/usr/local/php/bin/php-config # 配置
[root@centos6 redis-2.2.7]# make
[root@centos6 redis-2.2.7]# make install # 配置php支持
[root@centos6 redis-2.2.7]# vim /usr/local/php/etc/php.ini
添加如下: extension="redis.so"
[root@centos6 redis-2.2.7]# /etc/init.d/httpd restart
openssl扩展
[root@centos6 ~]# yum install openssl openssl-devel
[root@centos6 ~]# cd /usr/local/src/php-5.6.16/ext/openssl
[root@centos6 openssl]# cp config0.m4 config.m4
[root@centos6 openssl]# /usr/local/php/bin/phpize
[root@centos6 openssl]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@centos6 openssl]# make && make install
[root@centos6 openssl]# vim /usr/local/php/etc/php.ini
添加:extension=openssl.so
[root@centos6 openssl]# /etc/init.d/httpd restart
pdo_mysql扩展
[root@centos6 ~]# cd /usr/local/src/php-5.6.16/ext/pdo_mysql
[root@centos6 pdo_mysql]# /usr/local/php/bin/phpize
[root@centos6 pdo_mysql]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
[root@centos6 pdo_mysql]# make && make install
# 此时出现 /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/说明编译安装成功
[root@centos6 pdo_mysql]# /usr/local/php/etc/php.ini
添加extension=pdo_mysql.so
[root@centos6 pdo_mysql]# /etc/init.d/httpd restart
curl扩展
[root@centos6 ~]# cd /usr/local/src/php-5.6.16/ext/curl
[root@centos6 curl]# /usr/local/php/bin/phpize
[root@centos6 curl]# yum -y install curl-devel # 安装curl的dev包
[root@centos6 curl]# ./configure --with-php-config=/usr/local/php/bin/php-config [--with-curl=DIR(默认路径时无需指定)]
[root@centos6 curl]# make && make install
# 会在/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525生成curl.so文件
[root@centos6 curl]# vim /usr/local/php/etc/php.ini
添加如下extension=curl.so
[root@centos6 curl]# /etc/init.d/httpd restart
bcmath扩展[BC高精度函数库]
[root@centos6 ~]# cd /usr/local/src/php-5.6.16/ext/bcmath
[root@centos6 bcmath]# phpize
[root@centos6 bcmath]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@centos6 bcmath]# make
[root@centos6 bcmath]# make test
[root@centos6 bcmath]# make install
[root@centos6 bcmath]# vim /usr/local/php/etc/php.ini
# 添加如下extension=bcmath.so
[root@centos6 bcmath]# /etc/init.d/httpd restart
CentOS下编译搭建LAMP环境的更多相关文章
- CentOS6.5下编译安装LAMP环境
LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架.该框架能够满足大流量.大并发量的网站需求:当然.也可以直接使用高性能的服务器.高性能的负载均衡硬件以及CDN ...
- 比特币学习笔记(一)---在windows下编译搭建比特币环境
最近打算研究下比特币源码,却发现这套源码正常情况下得在linux下编译运行,而我的机器是windows的. 怎么办呢? 起初打算用mingw和cygwin搞搞看,试了许久后发现行不通,必须转到linu ...
- CentOS 7 编译部署LAMP环境
文章目录 1.需求以及环境准备 1.1.版本需求 1.2.环境准备 1.3.安装包准备 2.编译升级Openssl 2.1.查看当前Openssl版本 2.2.备份当前版本Openssl文件 2.3. ...
- 2-24-源码编译搭建LAMP环境-作业 ( By 小甘丶 )
安装上课的内容要求: 实验环境: VMware Virtual Machine : System Version: CentOS6.8 ( Gan35 ) IP Address : 192.168.3 ...
- 如何在CentOS 7上搭建LAMP环境(使用YUM或编译)
什么是LAMP? LAMP是Linux,Apache,MySQL和PHP的缩写. 它是一堆应用程序的堆栈,它们在Web服务器上一起工作以托管网站. 话虽如此,每个程序都有不同的目的: 在LAMP中, ...
- centos6.7下编译安装lamp环境
编译C源代码: 前提:提供开发工具及开发环境 通过“包组”提供开发组件,CentOS 6: "Development Tools", "Server Platform D ...
- CentOS 6.5 搭建 LAMP 环境
目录 第一步: 安装和配置Apache服务器 第二步: 设置.绑定站点目录文件 第三步: 安装MYSQL数据库 第四步: 安装PHP环境 总结 >>Begin: 第一步: 安装和配置Apa ...
- CentOS下编译安装LNMP环境
一.卸载系统预安装的LAMP软件 rpm -qa|grep httpd rpm -e httpd httpd-tools rpm -qa|grep mysql rpm -e mysql mysql-l ...
- CentOS linux系统搭建LAMP环境
准备工作: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state –state NEW -m tcp -p tcp –dpo ...
随机推荐
- App网络测试
弱网测试作为健壮性测试的重要部分,对于移动端测试必不可少. 什么样的网络属于弱网? 小于或等于2G速率的都属于弱网,且随着5G的到来,3G网络速率的降低,未来3G也会逐渐划入弱网的行列. 对于弱网的数 ...
- oracle之时间类型
Oracle 时间类型及Timezone 20.1 Oracle的六种时间类型 DATETIMESTAMPTIMESTAMP WITH TIME ZONETIMESTAMP WITH LOCAL TI ...
- Python3 学习笔记之 运算符
- linux 字符驱动框架(用户态的read,write,poll是怎么操作驱动的)
前言 这篇文章是通过对一个简单字符设备驱动的操作来解释,用户态的读写操作是怎么映射到具体设备的. 因为针对不同版本的linux内核,驱动的接口函数一直有变化,这贴出我测试的系统信息: root@ubu ...
- [剑指Offer]57-和为s的数字
题目一 输入一个递增的数组和一个数字,在数组中查找2个数字,是他们的和正好为S,如果有多对的和为S,则输出任意一对即可. 题解 关键信息是数组有序.初始化i,j指向第一个和第二个数,与S比较,若小了, ...
- 2.BlockingQueue-阻塞式队列
- windows服务器中创建账号及管理相关的net命令
本文测试环境:windows server 2012 R2 Datacenter 实例要求: 1.创建账号,加入到远程桌面组,能实现远程桌面登录 2.指定Full name .及Description ...
- 【JAVA】校招面过的信息量最大的一面
这是我校招中面过的信息量最大的一面,本来是一个小时,最后面完一个半小时,面试官最后反馈还不错. 自我介绍 设计模式有了解吗?如何理解"宁用组合,不用继承",什么时候用组合,什么时候 ...
- 并发编程(四)Thread类详解
一.引言 Thread类中存在着许多操作线程的方法,学习Thread类是非常有必要的,前面我们也嘘唏了创建线程的几种方式,若线程的创建不是以继承Thread类的方式创建的,那我们又改如何使用Threa ...
- Mongodb PHP封装类
分享一个Mongodb PHP封装类 <?php /** * Mongodb 基本操作API,支持基本类似关系统型数据库的操作接口 * * @version 1.0 * [说明] * * 1:该 ...