php编译安装及phpize使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
我的博客已迁移到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
<VirtualHost 10.1.10.160:80> ServerAdmin [email protected] ServerName aaa.bbb.com DocumentRoot /var/www/aaa .bbb.com
<Directory /var/www/aaa .bbb.com/>
Options -Indexes FollowSymLinks +Execcgi AllowOverride All Order allow,deny allow from all < /Directory >
ErrorLog /var/log/apache2/aaa .bbb.com_error.log
LogLevel warn CustomLog /var/log/apache2/aaa .bbb.com_access.log combined
< /VirtualHost >
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
<?php phpinfo(); ?>; 13、效果 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
三、使用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配置目录 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
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] |
本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1678415,如需转载请自行联系原作者