设为首页 收藏本站
查看: 686|回复: 0

[经验分享] php编译安装及phpize使用

[复制链接]

尚未签到

发表于 2018-12-18 13:32:39 | 显示全部楼层 |阅读模式
我的博客已迁移到xdoujiang.com请去那边和我交流
一、基础环境
1、版本
cat /etc/debian_version
5.0.10
2、内核
uname -r
2.6.26-2-amd64
3、安装包
php-5.4.22.tar.bz2
4、ip(eth0)
10.1.10.160
5、php官网
http://www.php.net/downloads.php
6、安装基础包
apt-get -y install bzip2 gcc make libxml2-dev autoconf libtool automake
7、安装apxs命令
1)apt-get -y install apache2-prefork-dev
2)说明
apxs是一个为ApacheHTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule 指令在运行时加载到Apache服务器中。
8、安装apache2(prefork模式)
apt-get -y install apache2-mpm-prefork
二、安装php
1、下载php包
axel -n 10 http://mirrors.sohu.com/php/php-5.4.22.tar.bz2
2、创建目录
mkdir /opt/php -p
3、解压并进入目录
tar jxvf php-5.4.22.tar.bz2 -C /opt/php && cd /opt/php/php-5.4.22
4、编译三步曲
1)./configure --with-apxs2=/usr/bin/apxs2 --prefix=/opt/php/
2)make && make install
3)参数说明
--with-apxs2 整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到apache,要求apache要打开so模块
--prefix     安装路径
4)编译出错解决方法
make install
Installing PHP SAPI module:       apache2handler
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' libphp5.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install cp libphp5.la /usr/lib/apache2/modules/
cp .libs/libphp5.so /usr/lib/apache2/modules/libphp5.so
cp .libs/libphp5.lai /usr/lib/apache2/modules/libphp5.la
libtool: install: warning: remember to run libtool --finish /opt/php/php-5.4.22/libs
chmod 644 /usr/lib/apache2/modules/libphp5.so
apxs:Error: Activation failed for custom /etc/apache2/httpd.conf file..
apxs:Error: At least one LoadModule directive already has to exist..
make: *** [install-sapi] Error 1
5)在httpd.conf配置中添加2行
cat /etc/apache2/httpd.conf
#LoadModule directive to aid module installations
#LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so
5、再次编译
make clean
make && make install
6、创建软链接
ln -s /opt/php/bin/* /usr/bin/
7、再次查看apache2配置文件里已经有php的模块已经添加好了
cat /etc/apache2/httpd.conf
#LoadModule directive to aid module installations
#LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so
LoadModule php5_module        /usr/lib/apache2/modules/libphp5.so
8、添加虚拟主机
1)复制一份模板
cd /etc/apache2/sites-available && cp default aaa.bbb.com
2)域名aaa.bbb.com
cat aaa.bbb.com

ServerAdmin webmaster@localhost
ServerName aaa.bbb.com
DocumentRoot /var/www/aaa.bbb.com

Options -Indexes FollowSymLinks +Execcgi
AllowOverride All
Order allow,deny
allow from all

ErrorLog /var/log/apache2/aaa.bbb.com_error.log
LogLevel warn
CustomLog /var/log/apache2/aaa.bbb.com_access.log combined

9、启用虚拟主机
a2ensite aaa.bbb.com
Enabling site aaa.bbb.com.
Run '/etc/init.d/apache2 reload' to activate new configuration!
10、创建网站目录并修改权限
cd /var/www/ && mkdir aaa.bbb.com -p && chown www-data.www-data aaa.bbb.com/ -R
11、重启apache2服务
/etc/init.d/apache2 restart
12、测试php是否成功安装 并使用绑定域名来测试下
cat /var/www/aaa.bbb.com/index.php
;
13、效果


三、使用phpize命令给php动态添加扩展(bcmath)
1、查看当前php已加载的有效模块
php -m
[PHP Modules]
Core
ctype
date
dom
ereg
fileinfo
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
[Zend Modules]
2)参数
-m Show compiled in modules(会显示当前php加载的有效模块)
2、进入bcmath目录
cd /opt/php/php-5.4.22/ext/bcmath
3、执行phpize命令
phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
4、make && make install
Installing shared extensions:     /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-x 1 root root 383696 2015-07-24 14:51 bcmath.so
6、将源码包里的php.ini-production复制到php配置目录
1)查看下php配置目录


2)复制模板php.ini-production并改名为php.ini
cp /opt/php/php-5.4.22/php.ini-production /opt/php/lib/php.ini
7、在cat /opt/php/lib/php.ini配置里添加以下内容到最后
extension = /opt/php/lib/php/extensions/no-debug-non-zts-20100525/bcmath.so
8、重启apache2
/etc/init.d/apache2 restart
9、看到bcmath已经加载OK了
php -m
[PHP Modules]
bcmath
Core
ctype
date
dom
ereg
fileinfo
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
[Zend Modules]



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-652897-1-1.html 上篇帖子: PHP :分享一个公钥/私钥加密类 下篇帖子: php小代码(1)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表