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 webmaster@localhost
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,如需转载请自行联系原作者