一、软件列表(所有安装文件均在附件中):
1. httpd-2.2.16 (apache server)
2. Mysql (数据库)
3. libxml2-2.6.30 (实现读、创建及操作xml数据功能的c语言库)
4. libmcrypt-2.5.8 (用于加密)
5. mhash-0.9.9.9 (支持多种哈希演算法的哈希函数库)
6. mcrypt-2.6.8(加密算法扩展库)
7. php-5.3.3
8. APC-3.1.5 (Alternative PHP Cache可选PHP缓存)
9. memcached-1.4.5(memcached服务)
10. memcache-2.2.6(php memcache扩展)
二、安装:
1. apache (httpd-2.2.16)
① 解压httpd压缩包,进入源码目录,进行编译以前的准备。
tar –zxvf httpd -2.2.6.tar.gz
cd httpd -2.2.6
./configure --prefix=/usr /local/apache --enable-module=so
(动态使用mysql 模块,安装到/usr /local/apache)
*注:在linux环境下httpd是apache的守护进程!就像别名一样。
② 开始编译make 和编译安装make install
③ 输入/usr/local/apache/bin/apachectl start 启动apache
2. mysql
① 创建mysql组,并且创建用户mysql,加入mysql组。
命令:groupadd mysql
Useradd –g mysql mysql
② 解压mysql源码安装包
进入到压缩文件所在目录,查看详细信息后使用命令:tar –zxvf XXXXX.tar.gz解压
③ 解压后进入mysql进行进一步操作,进入到mysql目录
命令:cd ./mysql-5.0.13-rc
④ 解 压成功,‘ls’告诉我们安装包成功解压,“cd./mysql-5.0.13-rc”进入安装目录中,执行 “. /configure --prefix=/usr/local/mysql” 此命令用来检测安装目录的所在环境是否适合,后面一部分则是指定的安装目 录。
⑤ 开始检测安装目录环境,提示Thank you for choosing MySQL!时表示安装目录环境通过你检测,可以进 行安装了
⑥ 这样就可以开始源码包的编译,先后输入“make”、“make install”命令,两项命令会执行源码包编译和编译安装
⑦ 接下来我需要将MySQL的配置文件复制到/etc这个保存配置文件的目录下面,起一个固定的名称,然后进入MySQL安装目录来对数据库进行初始化。
三条命令:cp support-files/my-medium.cnf /etc/my.cnf
cd /usr/local /mysql/
bin/mysql_install_db --user=mysql
(第三条命令用的是相对路径,若用绝对路径则是/usr/local/mysql/ bin/mysql_install_db --user=mysql 表示用MySQL这个用户来初始化数据库)
⑧ linux系统对权限的要求很高,一般都是给的最低权限。而且每个用户或者每个组对各个文件拥有的权限也是 有很大的不同的,因而安装完成MySQL后需要对MySQL数据库的用户和组进行一下权限分配。
⑨ 一次运行如下命令:
chown -R root . (将当前目录所有内容的属主改为root)
chown -R mysql var (将/var下目录所有内容的属主改为mysql)
chgrp -R mysql . (将当前目录所有内容的属主组改为mysql)
-R表示递归,即由上至下依次改变
⑩ 最后启动mysql
bin/mysqld_safe --user=mysql &
此命令用于启动mysql服务,并且在后台启动,以减少过多占用前台资源。
之所以启动mysql服务是因为在后面的安装php服务需要调用mysql.& 表示后台启动
3. libxml2-2.6.30
# tar -zxf libxml2-2.6.30.tar.gz
# cd libxml2-2.6.30
# ./configure
# make
# make install
4. libmcrypt-2.5.8
#tar zxvf libmcrypt-2.5.8.tar.gz
#cd libmcrypt-2.5.8
#./configure
#make
#make install
说明:libmcript默认安装在/usr/local
5. mhash-0.9.9.9
#tar zxvf mhash-0.9.9.9.tar.gz
#cd mhash-0.9.9.9
#./configure
#make
#make install
6. mcrypt-2.6.8
#tar zxvf mcrypt-2.6.8.tar.gz
#cd mcrypt-2.6.8
#LD_LIBRARY_PATH=/usr/local ./configure
#make
#make install
说明:由于在配置mcrypt时,会找不到libmcrypt的链接库,导致无法编译,因为Libmcrypt的链接库在/usr/local/文件夹下。因些在配置mcrypt时要加入LD_LIBRARY_PATH=/usr/local导入键接库。
PS:以上3个为PHP添加加密扩展模块mcrypt,关系图如下:
7. php-5.3.3
#tar xzvf php-5.3.3.tar.gz
#cd php-5.3.3
#./configure --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --without-pdo-sqlite --without-sqlite3 --without-sqlite --enable-mbstring --with-openssl --with-mhash --with-mcrypt --with-openssl --with-gd --with-gettext --with-zlib --enable-zip --enable-sockets --enable-soap --with-xmlrpc
#make
#make install
#cp php.ini-development /usr/local/php/lib/php.ini
修改httpd.conf
#vi /usr/local/apache/conf/httpd.conf
加载php模块,去掉注释“#”,如没有此行,请加上。
LoadModule php5_module modules/libphp5.so
加上此两行
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
8. APC-3.1.5
用phpize编译共享PECL扩展库:
# tar -xzvf APC-3.0.19.tgz
#cd APC-3.0.19
# /usr/local/php5/bin/phpize
# ./configure --enable-apc --enable-mmap --enable-apc-spinlocks --disable-apc-pthreadmutex
#make
#make install
然后修改php.ini
把
extension_dir = "./"
修改为
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626"
并添加apc配置
extension=apc.so
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 128
apc.ttl = 7200
apc.user_ttl = 7200
apc.num_files_hint = 1024
apc.write_lock = On
apc.gc_ttl=3600
apc.ttl=0
apc.mmap_file_mask=/tmp/apc.XXXXXX
最后重启APACHE服务
9. memcached-1.4.5 (memcached 服务)
# tar zxvf memcached-1.4.5.tar.gz
# cd memcached-1.4.5
# ./configure --prefix=/usr/local/memcached
# make
# make install
运行memcached守护程序
# /usr/local/memcached/bin/memcached -d -m 128 -l 192.168.1.200 -p 11211 -u daemon -P /var/run/memcached.pid -c 1024
相关参数说明:
-p memcached监听的TCP端口
-l 监听的ip地址
-d 以daemon方式运行,将程序放入后台
-u memcached的运行用户,我设定的是nobody
-P memcached的pid文件路径
-m memcached可以使用的最大内存数量
-c memcached同时可以接受的最大的连接数
10. memcache-2.2.6 (php memcache 扩展)
用phpize编译共享PECL扩展库:
# tar vxzf memcache-2.2.6.tgz
# cd memcache-2.2.6
# /usr/local/php5/bin/phpize
#./configure --with-php-config=/usr/local/php5/bin/php-config
# make
# make install
提示:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/memcache.so
然后修改php.ini
把
extension_dir = "./"
修改为
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626"
并添加一行
extension=memcache.so
最后重启APACHE服务
三、安装说明:
1安装PHP扩展模块 (mcrypt例子)
1)静态编译
在任意PHP文件中加入函数 phpinfo(),即可取得目前PHP的配置
在这些配置后面新增需要加入的配置:’–with-mcrypt=/usr/local/include’
然后进入php源代码目录,执行这条完整的configure命令
配置完成,下面进行源码包的制作和安装
make clean (一定需要)
make
make install
2)动态加载
使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是 因为安装php后又装了一些东西如PEAR等,不想删除目录重装,可以用phpize 编译共享PECL扩展库:
# tar vxzf memcache-2.2.6.tgz
# cd memcache-2.2.6
# /usr/local/php5/bin/phpize
#./configure --with-php-config=/usr/local/php5/bin/php-config
# make
# make install
提示:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/memcache.so
然后修改php.ini
把
extension_dir = "./"
修改为
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626"
并添加一行
extension=memcache.so
最后重启APACHE服务