首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 办公应用 > OFFICE教程 >

office服务器装配手记--AMP安装篇

2012-09-01 
office服务器安装手记--AMP安装篇一、Apache服务器安装1、下载最新版本的apache源代码cd /opt/srcwget http:

office服务器安装手记--AMP安装篇

一、Apache服务器安装

1、下载最新版本的apache源代码

cd /opt/src
wget http://labs.xiaonei.com/apache-mirror/httpd/httpd-2.2.14.tar.gz

2、解压缩下载的源码包

tar zxvf httpd*

3、配置Makefile文件

cd httpd*

输入命令:

./configure --help

可以查看编译选项配置。

安装apr和apr-util,使得Apache服务器支持反向代理:

cd srclib/apr
CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure --prefix=/opt/apache2/apr --enable-threads --enable-other-child USE=ipv4
make && make install

cd ../apr-util
CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure --prefix=/opt/apache2/apr-util --with-apr=/opt/apache2/apr
make && make install

cd /opt/src/httpd*
CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure \
--prefix=/opt/apache2 \
--sysconfdir=/opt/apache2/etc \
--localstatedir=/var/log/httpd \
--datadir=/www \
--enable-so \
--enable-modules=all \
--enable-mods-shared=all \
--with-mpm=worker \
--enable-vhost-alias \
--enable-rewrite \
--disable-info \
--enable-dav \
--enable-dav-fs \
--enable-dav-lock \
--with-z=/usr/local \
--enable-cache \
--enable-file-cache \
--enable-mem-cache \
--enable-disk-cache \
--enable-static-support \
--enable-static-htpasswd \
--enable-static-htdigest \
--enable-static-rotatelogs \
--enable-static-logresolve \
--enable-static-htdbm \
--enable-static-ab \
--enable-static-checkgid \
--disable-cgi \
--disable-cgid \
--with-pcre \
--with-apr=/opt/apache2/apr \
--with-apr-util=/opt/apache2/apr-util

编译参数说明:
./configure //配置源代码树
--prefix=/opt/apache2 //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
--sysconfdir=/opt/apache2/etc? // 指示Apache的配置文件目录
--localstatedir=/var/log/httpd? // 指示日志保存目录
--datadir=/www? // 指示数据保存目录,但PHP程序及网页模板文件要保存到其下的htdocs子目录里
--enable-so //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
--enable-modules=all
--enable-mods-shared=all //编译全部的模板,对于不需要我们可以在httpd.conf去掉。
--with-mpm=worker \
--enable-vhost-alias \
--enable-rewrite \
--disable-info \
--enable-dav \
--enable-dav-fs \
--enable-dav-lock \
--with-z=/usr/local \
--enable-cache //支持缓存
--enable-file-cache //支持文件缓存
--enable-mem-cache //支持记忆缓存
--enable-disk-cache //支持磁盘缓存
--enable-static-support //支持静态连接(默认为动态连接)
--enable-static-htpasswd //使用静态连接编译 htpasswd - 管理用于基本认证的用户文件
--enable-static-htdigest //使用静态连接编译 htdigest - 管理用于摘要认证的用户文件
--enable-static-rotatelogs //使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序
--enable-static-logresolve //使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名
--enable-static-htdbm //使用静态连接编译 htdbm - 操作 DBM 密码数据库
--enable-static-ab //使用静态连接编译 ab - Apache HTTP 服务器性能测试工具
--enable-static-checkgid //使用静态连接编译 checkgid
--with-pcre? // 支持pcre正则
--disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
--disable-cgi //禁止编译 CGI 版本的 PHP
--enable-ssl // 编译 ssl模块,如果需要的话。


4、编译

make

5、安装

make install

6、查看/www目录

ll /www

结果显示:

[root@office httpd-2.2.11]# ll /www
total 72
drwxr-xr-x? 2 root root? 4096 Jul 24 08:05 build
drwxr-xr-x? 2 root root? 4096 Jul 24 08:05 cgi-bin
drwxr-xr-x? 3 root root? 4096 Jul 24 08:05 error
drwxr-xr-x? 2 root root? 4096 Dec? 6? 2008 htdocs
drwxr-xr-x? 3 root root? 4096 Jul 24 08:05 icons
drwx------? 2 root root 16384 Jul 18 15:18 lost+found
drwxr-xr-x 14 root root 12288 Dec? 6? 2008 manual

/www/htdocs目录即是网站的根目录,日后自己开发的系统程序就保存到/www/htdocs下。

7、创建运行Apache的用户和组

groupadd www
useradd www -d /www/htdocs -c "Start Apache Server" -M -g www -s /sbin/nologin
passwd www? // 增加www用户密码

8、改变/www/htdocs目录的权限属性

chown -R www.www /www/htdocs
chmod -R 750 /www/htdocs

8、设置开机自启动服务控制脚本

执行下面的命令启动Apache服务:

/opt/apache2/bin/apachectl start

执行下面的命令停止Apache服务:

/opt/apache2/bin/apachectl stop

可以简单地把Apache启动命令加到/etc/rc.local文件,让Apache随系统启动而自动启动:

echo "/opt/apache2/bin/apachectl start"? >> /etc/rc.local

也可以把Apache加入到系统服务,用service命令来控制Apache的启动和停止。
首先以apachectl脚本为模板生成Apache服务控制脚本:

grep -v "#" /opt/apache2/bin/apachectl? > /etc/init.d/apache

用vi编辑Apache服务控制脚本/etc/init.d/apache:

vi /etc/init.d/apache

在文件最前面插入下面的行,使其支持chkconfig命令(含#号):
  
#!/bin/sh
# chkconfig: 23 85 15
# description: Apache is a World Wide Web server.
????
保存后退出vi编辑器,执行下面的命令增加Apache服务控制脚本执行权限:

chmod? 700? /etc/init.d/apache

执行下面的命令将Apache服务加入到系统服务:

chkconfig --add apache

或者:
?
chkconfig --level 23 apache on

执行下面的命令检查Apache服务是否已经生效:

chkconfig --list apache

命令输出类似下面的结果:

apache????????? 0:off 1:off 2:on 3:on 4:on 5:on 6:off

表明apache服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制Apache的启动和停止。

启动Apache服务:

service apache start

停止Apache服务:

service apache stop

执行下面的命令关闭开机自启动:

chkconfig apache off

执行下面的命令可以改变开机自启动的运行级别为3、5:

chkconfig --level 35 apache on

9、配置Apache

打开/opt/apache2/etc/httpd.conf文件:

vi /opt/apache2/etc/httpd.conf

将:

User daemon
Group daemon

修改为:

User www
Group www

将:

#ServerName www.example.com:80

去掉 # 号,并将后面的域名参数修改为自己所注册的域名,如果没有域名,最好将其修改为服务器网卡绑定的IP地址。

10、测试

打开浏览器,在地址栏输入该主机的域名或IP地址,回车确认,如果浏览器窗口出现:

It works!

则表明Apache安装成功。


二、MySQL数据库安装


1、创建运行MySQL的用户和组

groupadd mysql
useradd mysql -c "Start mysqld's account" -M -g mysql -s /sbin/nologin

2、下载最新稳定发行版的MySQL源代码

进入/opt/src目录:

cd /opt/src

如果需要innodb,则下载企业版:

wget http://mirror.provenscaling.com/mysql/enterprise/source/5.0/mysql-5.0.79.tar.gz

如果不需要innodb,则下载社区版:

wget http://mirror.provenscaling.com/mysql/community/source/5.0/mysql-5.0.83.tar.gz

3、解压缩下载的源码包

tar zxvf mysql*

4、配置Makefile文件

cd mysql*

输入命令:

./configure --help

可以查看编译选项配置。

CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure \
--prefix=/opt/mysql \
#--with-charset=utf8 \
--with-charset=gb2312 \
--with-extra-charsets=all \
--with-bench \
--without-docs \
--without-man \
--with-innodb \
--without-debug \
--with-big-tables \
#--with-collation=utf8_general_ci \
--with-collation=gb2312_chinese_ci \
--with-raid \
--enable-assembler \
--disable-shared \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--enable-thread-safe-client \
--with-pthread \
--with-unix-socket-path=/tmp/mysql.sock \
--with-mysqld-user=mysql \
--localstatedir=/data

配置选项说明:
??? CC:C编译器的名称(用于运行configure),本文示例为gcc
??? CFLAGS:C编译器的标志(用于运行configure),本文示例为-O3,指定优化级别为3
??? CXX:C++编译器的名称(用于运行configure),本文示例为gcc
??? CXXFLAGS:C++编译器的标志(用于运行configure)
  --prefix:指定安装目录,本文示例为/usr/local/mysql
??? --localstatedir:指定默认数据库文件保存目录,默认为安装目录下的var目录
  --enable-thread-safe-client:编译线程安全版的MySQL客户端库
  --enable-assembler:使用一些字符函数的汇编版本
??? --with-client-ldflags:客户端链接参数,本文示例为指定静态编译mysql客户端
  --with-mysqld-ldflags:服务器端链接参数,本文示例为指定静态编译mysql服务器
??? --with-big-tables:在32位平台上支持大于4G行的表
 ? --with-charset:指定默认字符集。mysql默认使用latin1(cp1252)字符集,可以使用此选项更改。字符集可以是big5、 cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312、gbk、german1、hebrew、 hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7或 win1251ukr。
??? --with-collation:指定默认校对规则。mysql默认使用latin1_swedish_ci校对规则,可以使用此选项更改。
  --with-extra-charsets:服务器需要支持的字符集,有三种可能的值:空格间隔的一系列字符集名;complex ,包括不能动态装载的所有字符集;all,将所有字符集包括进二进制。本文示例为complex。
  注意:要想更改字符集和校对规则,要同时使用--with-charset和--with-collation选项。 校对规则必须是字符集的合法校对规则。(在mysql中使用SHOW COLLATION语句来确定每个字符集使用哪个校对规则)。

5、编译

make

6、安装

make install

6、复制默认全局启动参数配置文件到/etc目录

源码方式安装需要手动复制配置文件,配置模板位于源码树的support-files目录,有my-small.cnf、my-medium.cnf、 my-large.cnf、my-huge.cnf四个,选择跟你的环境相接近的一个复制到/etc目录,并做适当修改。

cp ./support-files/my-large.cnf? /etc/my.cnf

如果你做互联网Web主机,访问量很大,则:

cp ./support-files/my-huge.cnf? /etc/my.cnf

7、初始化授权表

执行下面的命令初始化授权表:
  
./scripts/mysql_install_db --user=mysql

8、更改mysql数据目录属主和权限
???
默认数据库文件保存目录为安装目录下的var目录,执行configure命令时可通过--localstatedir参数指定不同的目录。

chown -R mysql.mysql /opt/mysql
chown -R mysql.mysql /data
chmod -R 700 /opt/mysql
chmod -R 700 /data

9、设置开机自启动服务控制脚本
???
执行下面的命令复制启动脚本到资源目录:
????
cp ./support-files/mysql.server /etc/init.d/mysql

执行下面的命令增加mysql服务控制脚本执行权限:

chmod 700 /etc/init.d/mysql

执行下面的命令将mysql服务加入到系统服务:

chkconfig --add mysql

或者:

chkconfig --level 23 mysql on

执行下面的命令检查mysql服务是否已经生效:

chkconfig --list mysql

命令输出类似下面的结果:
????
mysql????????? 0:off 1:off 2:on 3:on 4:off 5:off 6:off

表明mysql服务已经生效,在2、3运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止。
  
启动mysql服务:
  
service mysql start

停止mysqld服务:

service mysql stop

执行下面的命令关闭开机自启动:
  
chkconfig mysql off

执行下面的命令可以改变开机自启动的运行级别为3、5:

chkconfig --level 35 mysql on

10、将mysql的bin目录加入PATH环境变量
???
编辑/etc/profile文件:
???
vi /etc/profile

在文件最后添加如下两行:

PATH=$PATH:/opt/mysql/bin
export PATH
???
执行下面的命令使所做的更改生效:
?
. /etc/profile

注意:“.”后面要有空格

11、MySQL的配置

关闭远程连接:

如果你的Web服务与MySQL提供的数据服务在同一台主机,为了安全则可关闭3306端口

vi /etc/my.cnf

去掉 #skip-networking 前面的“#”即可。


禁止MySQL导入本地文件:

如果不需要在MySQL中使用“LOAD DATA LOCAL INFILE”命令,就应该关闭它。

在/etc/my.cnf文件的[mysqld]部分加入:

set-variable=local-infile=0

mysql安装后默认生成两个帐号:一个是root,未设置密码,可以从本机登录到mysql;另一个是
匿名帐号,无帐号名、无密码,可以从本机登录,未提供用户名的连接都将假定为此帐号。这样
的设置存在着安全隐患,按下面的步骤进行更改。

以root帐号连接到mysql服务器:
???
mysql -u root

如果提示找不到mysql文件,请尝试使用绝对路径,如本文示例为:

/opt/mysql/bin/mysql -u root

设置从本地主机登录的root帐号密码:

/opt/mysql/bin/mysqladmin -u root password 'your_password'

如果不设置root的密码,则密码为空。

如果设置了root密码,以root帐号连接到mysql服务器就需要这样:

mysql -uroot -p

当提示输入密码时输入先前设置的密码即可。

其实,修改root密码还可按下面的方式进行:
?
命令成功执行后将进入到mysql命令提示符下:

mysql>

(以下命令均在mysql命令提示符下执行)
改变当前数据库为mysql:

mysql> use mysql;
??????????
mysql> set password for root@localhost=password('yourpassword');
??????????
或:

mysql> update user set password=password('your password') where user='root';

删除匿名帐号:

mysql> delete from user where user='';

删除密码为空的帐号:

mysql> delete from user where password='';

删除允许非localhost主机登录的帐号:

mysql> delete from user where host<>'localhost';

执行下面的命令使更改生效:

mysql> flush privileges;

执行下面的命令退出mysql命令行:

mysql> quit

或:

mysql> exit

12、安装MySQL数据热备份支持模块:Perl-BDI+Perl-DBD-MySQL

MySQL的mysqlhotcopy热备份工具需要Perl-DBI和Perl-DBD-MySQL模块支持,Linux
上默认安装的Perl是没有该模块的。可以从CPAN下载最新的DBI 和DBD模块进行安装。

[root@office ~]# cd /opt/src
[root@office src]# wget http://www.cpan.org/modules/by-module/DBD/DBI-1.608.tar.gz
[root@office src]# wget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.011.tar.gz

[1] 先编译安装DBI模块:

[root@office src]# tar xvfz DBI*
[root@office src]# cd DBI*
[root@office DBI-1.609]# PATH=$PATH:/opt/mysql/bin
[root@office DBI-1.609]# export PATH
[root@office DBI-1.609]# unset LANG
[root@office DBI-1.609]# perl Makefile.PL
[root@office DBI-1.609]# make
[root@office DBI-1.609]# make test
[root@office DBI-1.609]# make install

[2] 再编译安装DBD模块:

[root@office DBI-1.609]# cd ..
[root@office src]# tar xvfz DBD*
[root@office src]# cd DBD*
[root@office DBD-mysql-4.012]# perl Makefile.PL \
--libs="-L/opt/mysql/lib/mysql -lmysqlclient -lz" \
--cflags=-I/opt/mysql/include/mysql \
--testhost=localhost \
--testuser=root \????????? // 配置测试用户选项
--testpassword= '******'??? // 用户密码为空时不需要此选项
[root@office DBD-mysql-4.012]# make
[root@office DBD-mysql-4.012]# make test
[root@office DBD-mysql-4.012]# make install

[3] 建立自动备份脚本

在这里,为了使数据库备份和恢复的符合我们的实际要求,用一段符合要求的Shell脚本来实现整个备份过程的自动化。

[root@office ~]# vi mysql-backup.sh  ← 建立数据库自动备份脚本,如下:

#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin:/opt/mysql/bin
# The Directory of Backup
BACKDIR=/tmp/backup
RMT_HOST='192.168.11.8'
ftpuser='hegz'
ftppass='*******'
# The Password of MySQL
ROOTPASS=''
# Remake the Directory of Backup
rm -rf $BACKDIR
mkdir -p $BACKDIR
# Get the Name of Database
DBLIST=`ls -p /data | grep / | tr -d /`
# Backup with Database
for dbname in $DBLIST
do
#mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
mysqlhotcopy $dbname -u root $BACKDIR | logger -t mysqlhotcopy? ← root密码为空时启用
done
echo "MySQL Databases backup success!\n"
echo "Ftp MySQL DataBases file ......\n"
dateTime=`date +"%Y-%m-%d %H:%M:%S"`
date=`date +%Y%m%d`
cd /tmp
tar czf mysql-$date.tar.gz ./backup/*
#ls -l /tmp/mysql-$date.tar.gz

#============ 自动传输文件到远程主机[注意:自动上传脚本命令前面不能有空格] ============
ftp -in $RMT_HOST <<END
user $ftpuser $ftppass
bina
put mysql-$date.tar.gz
#dir mysql-$date.tar.gz
bye
END
echo "Ftp Databases File success!\n"
rm -f /tmp/mysql-$date.tar.gz

注意:备份目录参数 BACKDIR=/tmp/backup 为一测试目录,为安全起见,可修改为某一登录账户的宿主目录下,如:

BACKDIR=/home/hegz/backup

上传到远程主机后,如果将备份文件删除掉,就更加安全了。

[4] 运行数据库自动备份脚本

[root@office ~]# chmod 700 mysql-backup.sh  ← 改变脚本属性,让其只能让root用户执行
[root@office ~]# ./mysql-backup.sh   ← 运行脚本
[root@office ~]# ls -l /tmp/backup/   ← 确认一下是否备份成功

total 8
drwxr-x--- 2 mysql mysql 4096 Sep 1 16:54 mysql   ← 已成功备份到/tmp/backup/目录中

如果运行备份脚本时屏幕出现下面的提示:

install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so' for module DBD::mysql: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so: cannot restore segment prot after reloc: Permission denied at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
?at (eval 7) line 3
Compilation failed in require at (eval 7) line 3.
Perhaps a required shared library or dll isn't installed where expected
?at /opt/mysql/bin/mysqlhotcopy line 177
install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so' for module DBD::mysql: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so: cannot restore segment prot after reloc: Permission denied at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
?at (eval 7) line 3
Compilation failed in require at (eval 7) line 3.
Perhaps a required shared library or dll isn't installed where expected
?at /opt/mysql/bin/mysqlhotcopy line 177
install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so' for module DBD::mysql: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so: cannot restore segment prot after reloc: Permission denied at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
?at (eval 7) line 3
Compilation failed in require at (eval 7) line 3.
Perhaps a required shared library or dll isn't installed where expected
?at /opt/mysql/bin/mysqlhotcopy line 177

则说明该脚本的运行需要进行SELinux安全授权。

执行如下命令进行处理:
???
[root@office ~]# cd /etc/selinux/targeted/modules/
[root@office modules]# audit2allow -M local -i /var/log/audit/audit.log
[root@office modules]# semodule -i local.pp

文章参考:http://www.cnprint.org/bbs/blogs/1/blog48.html

[5] 让数据库备份脚本每天自动运行

[root@office ~]# crontab -e  ← 编辑自动运行规则(然后会出现编辑窗口,操作同vi)

00 03 * * * /root/mysql-backup.sh   ← 添加这一行到文件中,让数据库备份每天凌晨3点进行

[6] 当数据库被删除后的恢复方法

[root@office data]#? cp -Rf /tmp/backup/mysql/ /data
[root@office data]#? chown -R mysql:mysql /data
[root@office data]#? chmod -R 700 /data


三、PHP安装


1、下载最新稳定开发版的PHP源代码(5.2.X)

cd /opt/src
wget http://snaps.php.net/php5.2-201001190130.tar.gz

2、解压缩下载的源码包

tar xvfz php*

3、配置Makefile文件

cd php*

输入命令:

./configure --help

可以查看编译选项配置。

CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \-fno-exceptions -fno-rtti" ./configure \
--prefix=/opt/php \
--with-apxs2=/opt/apache2/bin/apxs \
--with-config-file-path=/opt/php \
--with-mysql=/opt/mysql \
--with-mysql-sock=/tmp \
--with-mysqli=/opt/mysql/bin/mysql_config \
--with-pdo-mysql=/opt/mysql \
--with-gettext \
--with-curl \
--enable-ftp \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-shmop \
--enable-calendar \
--with-pcre-dir=/usr/local \
--with-mcrypt=/usr/local \
--with-mhash=/usr/local \
--with-iconv-dir=/usr/local \
--enable-soap \
--with-libxml-dir=/usr/local \
--enable-mbstring \
--enable-mbregex \
--with-gd=/usr/local \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-zlib-dir=/usr/local \
--with-ttf=/usr/local \
--with-freetype-dir=/usr/local \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-exif \
--enable-magic-quotes \
--with-pcre-regex \
--enable-ctype \
--disable-debug \
--enable-zip \
--enable-json \
--enable-cli \
--disable-cgi \
--enable-fastcgi \
--enable-force-cgi-redirect \
--enable-embed \
--enable-calendar \
--with-bz2 \
--enable-bcmath \
--enable-wddx \
--with-pic \
--enable-xml \
--with-pear=/opt/php/lib/php

配置选项说明:
??? CC:C编译器的名称(用于运行configure),本文示例为gcc
??? CFLAGS:C编译器的标志(用于运行configure),本文示例为-O3,指定优化级别为3
??? CXX:C++编译器的名称(用于运行configure),本文示例为gcc
??? CXXFLAGS:C++编译器的标志(用于运行configure)
  --prefix:指定安装目录,本文示例为/opt/php
??? --with-mysql[=DIR]:包含MySQL扩展,[=DIR]指定mysql安装目录,省略[=DIR]则为默认位置/usr
??? --with-mysqli[=FILE]:包含MySQLI扩展,[=FILE]指定mysql_config文件位置,省略[=FILE]则为默认位置/usr/bin/mysql_config????????????
??? --with-pdo-mysql[=DIR]:包含PDO:MySQL扩展,[=DIR]指定mysql安装目录,省略[=DIR]则为默认位置/usr
??? --with-apxs2[=FILE]:编译为Apahce2共享模块,[=FILE]指定apache2 apxs文件位置,省略[=FILE]则为默认位置/usr/sbin/apxs
??? --with-openssl[=DIR]:包含OPENSSL扩展,[=DIR]指定openssl安装目录,省略[=DIR]为默认位置/usr
??? --with-zlib[=DIR]:包含ZLIB扩展,[=DIR]指定zlib安装目录,省略[=DIR]为默认位置
??? --with-gd[=DIR] :包含GD扩展,[=DIR]指定gd库安装目录,省略[=DIR]为默认位置
??? --with-jpeg-dir[=DIR]:[=DIR]指定libjpeg安装目录,省略[=DIR]为默认位置
??? --with-png-dir[=DIR]:[=DIR]指定libpng安装目录,省略[=DIR]为默认位置
??? --with-zlib-dir[=DIR]:[=DIR]指定libz安装目录,省略[=DIR]为默认位置
??? --with-ttf[=DIR]:[=DIR]指定FreeType 1.x安装目录,省略[=DIR]为默认位置
??? --with-freetype-dir[=DIR]:[=DIR]指定FreeType 2安装目录,省略[=DIR]为默认位置
??? --with-gettext:包含GNU gettext扩展
??? --with-curl: 包含CURL扩展
??? --with-iconv-dir:包含iconv扩展
??? --enable-gd-native-ttf:允许TrueType string功能
??? --enable-ftp:包含ftp扩展
??? --enable-embed:使用内建的SAPI库
??? --enable-fastcgi:启用快速cgi支持
??? --enable-calendar:启用calendar conversion支持
??? --enable-magic-quotes:启用magic-quotes支持
??? --enable-sockets:启用socket扩展
??? --enable-sysvsem:启用System V semaphore支持
??? --enable-sysvshm:启用System V shared memory支持
??? --enable-sysvmsg:启用sysvmsg支持
??? --enable-pcntl:在CGI/CLI下启用 pcntl支持
??? --enable-shmop:启用shmop支持
??? --enable-exif:启用EXIF (metadata from images)支持
??? --enable-mbstring:启用多字节字符串支持
??? --with-config-file-path:指定配置文件路径,本文示例为/opt/php/etc

4、编译源代码
? 
执行下面的命令编译源代码:

make

5、安装

执行下面的命令安装PHP到目标路径:

make install

6、复制配置文件到指定的配置文件目录

cp ./php.ini-recommended /opt/php/php.ini

7、修改PHP配置文件/opt/php/php.ini,让PHP支持多字节中文及上传大文件???
???
??? # vi /opt/php/php.ini

??? default_charset = "zh-cn"
??? mbstring.language = zh-cn
??? mbstring.internal_encoding =zh-cn
??? session.gc_maxlifetime=7200????????? // 会话变量的生存期改为2小时,单位为秒
???
??? 修改下面的参数,以方便上传100M的大文件:
???
??? max_execution_time = 120???????????? // 脚本的最大可执行时间,单位为秒
??? max_input_time = 180
??? upload_max_filesize = 100M
??? post_max_size = 100M
??? memory_limit = 128M

??? 上面的参数可按需设定。

8、修改apache配置文件httpd.conf,启用PHP模块
???
本文示例apache配置文件为/opt/apache2/etc/httpd.conf
php的apache共享模块位于php安装目录下的lib目录,本文示例为/opt/php/lib/libphp5.so
由于安装PHP时系统没有将libphp5.so模块文件复制到/opt/apache2/modules目录下,因此需要执行命令:

cp /opt/php/lib/libphp5.so /opt/apache2/modules

用vi命令编辑此配置文件:

vi /opt/apache2/etc/httpd.conf

在适当位置加入下面的语句来启用php模块:

LoadModule php5_module modules/libphp5.so

接下来加入下需的语句告知Apache将特定的扩展名解析成PHP,本例为.php、.phtml(可以将任何扩展名指定为 PHP,只需添加它们,每一个用空格分隔):
?????????????
AddType application/x-httpd-php .php .phtml
???
通常还将 .phps 扩展名设置成显示高亮的 PHP 源文件,可以加入下面的语句来完成:

AddType application/x-httpd-php-source .phps
?
接下来修改DirectoryIndex指令,设置目录索引文件查找顺序:
???
DirectoryIndex index.php index.html

为了安全,如果想禁止浏览器打开某些配置文件,还可可以增加:

<FilesMatch "\.inc$">?
??? Order allow,deny
??? Deny from all
??? Satisfy All
</FilesMatch>

<FilesMatch "\.inc.php$">
??? Order allow,deny
??? Deny from all
??? Satisfy All
</FilesMatch>

<FilesMatch "\.act.php$">
??? Order allow,deny
??? Deny from all
??? Satisfy All
</FilesMatch>

<FilesMatch "^config.php$">
??? Order allow,deny
??? Deny from all
??? Satisfy All
</FilesMatch>

????????????
9、重启apache服务,以使设置生效

service apache restart

如果出现:

httpd: Syntax error on line 107 of /opt/apache2/etc/httpd.conf: Cannot load /opt/apache2/modules/libphp5.so into server: /opt/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

则说明需要进行SELinux安全授权。

执行如下命令进行处理:
???
cd /etc/selinux/targeted/modules/
audit2allow -M local -i /var/log/audit/audit.log
semodule -i local.pp

再次重启apache。

10、测试

创建PHP测试脚本文件:

cd /www/htdocs
touch test.php
echo "<?php" >> test.php
echo "phpinfo();" >> test.php
echo "?>" >> test.php

打开浏览器,在地址栏里输入:

http://域名或服务器IP地址/test.php

回车确认,如果出现PHP的信息画面,则说明PHP安装成功。



四、后台数据库管理工具phpMyAdmin的安装配置
???

下载适用于PHP 5及MySQL 5的最新版本:

cd /opt/src
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.2.5/phpMyAdmin-3.2.5-all-languages.tar.gz/download

解压缩后,将其拷贝到/www/htdocs目录下:

tar xvfz phpMyAdmin*
mv phpMyAdmin*/ /www/htdocs/pma
???????
进入phpMyAdmin/libraries/目录,找到config.default.php文件,将该文件改名复制
到上一级目录下。执行命令:

cd /www/htdocs/pma
cp ./libraries/config.default.php config.inc.php
??
修改文件的权限属性:

chown -R www.www /www/htdocs/pma
chmod -R 750 /www/htdocs/pma

编辑config.inc.php文件:

vi config.inc.php

找到:

$cfg['blowfish_secret'] = '';

将该行修改为:

$cfg['blowfish_secret'] = 'ba17c1ec07d65e03';? // 该字串可自定

如果想允许不带密码的 root 用户登录

则找到:

$cfg['Servers'][$i]['AllowNoPasswordRoot'] = false;

将其修改为:

$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;

3.0、3.1的版本可能还需要将:

$cfg['Servers'][$i]['host'] = 'localhost';

修改为:

$cfg['Servers'][$i]['host'] = '127.0.0.1';

才能解决问题。同理,其它PHP应用程序系统在配置DSN连接时,localhost也应改为127.0.0.1。


更详细的安装配置,可查阅文档:http://www.phpmyadmin.net/documentation/


五、结束语

Apache、MySQL、PHP的安装至此结束。系统的优化及PHP的缓存加速扩展安装就不再讲了。
如果大家有需要,可以参看老廖的《CentOS 5.2 安装 Lighttpd+PHP+MySQL》。

?

?

论坛帖:《office服务器安装手记--AMP安装篇》

?

?

热点排行