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安装篇》
?
?