我的博客已迁移到xdoujiang.com请去那边和我交流一、基础环境1、版本cat/etc/debian_version5.0.102、内核uname-r2.6.26-2-amd643、安装包php-5.4.22.tar.bz24、ip(eth0)10.1.10.1605、php官网http://www.php.net/downloads.php6、安装基础包apt-get-yinstallbzip2gccmakelibxml2-devautoconflibtoolautomake7、安装apxs命令1)apt-get-yinstallapache2-prefork-dev2)说明apxs是一个为ApacheHTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。8、安装apache2(prefork模式)apt-get-yinstallapache2-mpm-prefork二、安装php1、下载php包axel-n10http://mirrors.sohu.com/php/php-5.4.22.tar.bz22、创建目录mkdir/opt/php-p3、解压并进入目录tarjxvfphp-5.4.22.tar.bz2-C/opt/php&&cd/opt/php/php-5.4.224、编译三步曲1)./configure--with-apxs2=/usr/bin/apxs2--prefix=/opt/php/2)make&&makeinstall3)参数说明--with-apxs2整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到apache,要求apache要打开so模块--prefix安装路径4)编译出错解决方法makeinstallInstallingPHPSAPImodule:apache2handler/usr/share/apache2/build/instdso.shSH_LIBTOOL='/usr/share/apr-1.0/build/libtool'libphp5.la/usr/lib/apache2/modules/usr/share/apr-1.0/build/libtool--mode=installcplibphp5.la/usr/lib/apache2/modules/cp.libs/libphp5.so/usr/lib/apache2/modules/libphp5.socp.libs/libphp5.lai/usr/lib/apache2/modules/libphp5.lalibtool:install:warning:remembertorunlibtool--finish/opt/php/php-5.4.22/libschmod644/usr/lib/apache2/modules/libphp5.soapxs:Error:Activationfailedforcustom/etc/apache2/httpd.conffile..apxs:Error:AtleastoneLoadModuledirectivealreadyhastoexist..make:***[install-sapi]Error15)在httpd.conf配置中添加2行cat/etc/apache2/httpd.conf#LoadModuledirectivetoaidmoduleinstallations#LoadModuledummy_module/usr/lib/apache2/modules/mod_dummy.so5、再次编译makecleanmake&&makeinstall6、创建软链接ln-s/opt/php/bin/*/usr/bin/7、再次查看apache2配置文件里已经有php的模块已经添加好了cat/etc/apache2/httpd.conf#LoadModuledirectivetoaidmoduleinstallations#LoadModuledummy_module/usr/lib/apache2/modules/mod_dummy.soLoadModulephp5_module/usr/lib/apache2/modules/libphp5.so8、添加虚拟主机1)复制一份模板cd/etc/apache2/sites-available&&cpdefaultaaa.bbb.com2)域名aaa.bbb.comcataaa.bbb.com<VirtualHost10.1.10.160:80>ServerAdminwebmaster@localhostServerNameaaa.bbb.comDocumentRoot/var/www/aaa.bbb.com<Directory/var/www/aaa.bbb.com/>Options-IndexesFollowSymLinks+ExeccgiAllowOverrideAllOrderallow,denyallowfromall</Directory>ErrorLog/var/log/apache2/aaa.bbb.com_error.logLogLevelwarnCustomLog/var/log/apache2/aaa.bbb.com_access.logcombined</VirtualHost>9、启用虚拟主机a2ensiteaaa.bbb.comEnablingsiteaaa.bbb.com.Run'/etc/init.d/apache2reload'toactivatenewconfiguration!10、创建网站目录并修改权限cd/var/www/&&mkdiraaa.bbb.com-p&&chownwww-data.www-dataaaa.bbb.com/-R11、重启apache2服务/etc/init.d/apache2restart12、测试php是否成功安装并使用绑定域名来测试下cat/var/www/aaa.bbb.com/index.php<?phpphpinfo();?>;13、效果


三、使用phpize命令给php动态添加扩展(bcmath)1、查看当前php已加载的有效模块php-m[PHPModules]CorectypedatedomeregfileinfofilterhashiconvjsonlibxmlpcrePDOpdo_sqlitePharposixReflectionsessionSimpleXMLSPLsqlite3standardtokenizerxmlxmlreaderxmlwriter[ZendModules]2)参数-mShowcompiledinmodules(会显示当前php加载的有效模块)2、进入bcmath目录cd/opt/php/php-5.4.22/ext/bcmath3、执行phpize命令phpizeConfiguringfor:PHPApiVersion:20100412ZendModuleApiNo:20100525ZendExtensionApiNo:2201005254、make&&makeinstallInstallingsharedextensions:/opt/php/lib/php/extensions/no-debug-non-zts-20100525/5、查看到bcmath.so位置ll/opt/php/lib/php/extensions/no-debug-non-zts-20100525/-rwxr-xr-x1rootroot3836962015-07-2414:51bcmath.so6、将源码包里的php.ini-production复制到php配置目录1)查看下php配置目录


2)复制模板php.ini-production并改名为php.inicp/opt/php/php-5.4.22/php.ini-production/opt/php/lib/php.ini7、在cat/opt/php/lib/php.ini配置里添加以下内容到最后extension=/opt/php/lib/php/extensions/no-debug-non-zts-20100525/bcmath.so8、重启apache2/etc/init.d/apache2restart9、看到bcmath已经加载OK了php-m[PHPModules]bcmathCorectypedatedomeregfileinfofilterhashiconvjsonlibxmlpcrePDOpdo_sqlitePharposixReflectionsessionSimpleXMLSPLsqlite3standardtokenizerxmlxmlreaderxmlwriter[ZendModules]