Linux 配置 Apache+PHP+MySQL+ProFTP 的方法

 

到下列官方网站下载一下软件

Apache   http://www.apache.org
MySQL   http://www.mysql.com
PHP      http://www.php.net

ProFTP   http://www.proftpd.org

 

Linux上的软件通常有着很快的升级速度,这可能是开放源码软件的优点之一吧。就Apache而言,有1.3.X版本与2.X版本两个分支。由于2.X是在1.3.X上进行重写,因此在结构和功能上都有很大的改进。关于Apache 1.3.X的安装介绍比较多,故本文选用了Apache 2.X版本。同样,也选用了支持Apache 2.X版本的PHP版本。大家可以从其各自的网站上去下载Apache、MySQL、PHP的最新版本。

 

mysql-standard-4.0.20-pc-linux-i686.tar.gz
php-4.3.7.tar.gz
httpd-2.0.50.tar.gz
proftpd-1.2.10rc1.tar.gz

有了这四个软件包,就可以开始在Linux下构建一个支持PHP+MySQL的Web服务器了。这也正是目前常用的Web应用环境。

我们把下载的些软件包放到 /var/local目录下(这是笔者个人的习惯),它们都是tar.gz包,可以用命令tar -xzpvf 包名,把它们在当前目录(/var/local/)中解开:

cd /var/local

tar –xzpvf mysql-standard-4.0.20-pc-linux-i686.tar.gz
tar -xzpvf php-4.3.7.tar.gz
tar -xzpvf httpd-2.0.50.tar.gz
tar -xzpvf proftpd-1.2.10rc1.tar.gz

解包后可以开始进入正式安装。

1、安装MySQL

 

编译

cd mysql-4.0.20/
./configure --prefix=/usr/local/mysql
make
make install

cd ..

初始化并设置目录权限

 

cd /usr/local/mysql
scripts/mysql_install_db

groupadd mysql

useradd -g mysql mysql

chown -R root .

chown -R mysql data

chgrp -R mysql .

 

加入库

 

echo /usr/local/mysql/lib/mysql/lib >> /etc/ld.so.conf

cd /sbin/

./ldconfig

 

使之启动时自动运行

 

echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.d/rc.local

 

启动MySQL

 

/usr/local/mysql/bin/mysqld_safe &

 

修改MySQL的root密码

 

/usr/local/mysql/bin/mysqladmin –p root

 

2、安装Apache

 

注意,关于Apache2 的安装参数 mpm,建议修改 /server/mpm/prefork/prefork.c 文件,

方法如下:

cd /var/local/httpd-2.0.50/server/mpm/prefork/

vi prefork.c

找到 DEFAULT_SERVER_LIMIT 256

修改为 DEFAULT_SERVER_LIMIT 10000

保存文件并退出。

 
cd /var/local/httpd-2.0.50
./configure --prefix=/usr/local/httpd  --enable-so --with-mpm=prefork
make
make install

cd ..

 

现在已经将Apache 2.0.50安装到 /usr/local/httpd目录中,安装好的Apache支持可装载模块和标准的MPM prefork。如果安装过程中没有出现错误,便可以使用如下命令启动Apache服务

 

/usr/local/httpd/bin/apachectl start

 

如果启动成功,将启动命令加入rc.local,使之在系统启动时自动运行

 

echo "/usr/local/httpd/bin/apachectl start &" >>/etc/rc.d/rc.local

 

停止Apache服务,并继续安装PHP

 

/usr/local/httpd/bin/apachectl stop

 

3、安装PHP

cd php-4.3.7


./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/lib --with-config-file-scan-dir=/usr/local/php/lib
 

如果Apache 为 1.3.x 版本,请用:
 
./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php/lib --with-mysql=/usr/local/mysql --enable-track-vars --with-xml
 
make
make install

cp php.ini-dist /usr/local/lib/php.ini

 

这种安装方式是将PHP作为Apache的SAPI模块来进行安装,它仅是其中的一种安装方式,更多的方法请参阅相关文档。

 

PHP和Apache安装后的基本配置

 

Apache的配置

Apache的配置文件是/usr/local/httpd/conf/httpd.conf,编辑httpd.conf 文件,在文件结尾加上以下两行:

 

LoadModule php4_module modules/libphp4.so

AddType application/x-httpd-php .php .php3

 

同时修改DirectoryIndex为

DirectoryIndex index.html index.php index.php3

 

Apache 的虚拟主机配置:

 

<VirtualHost xxx.xxx.xxx.xxx> ## 服务器的IP地址

    ServerName www.yourname.net ## 您的域名

    ServerAdmin web@yourname.net  ## 您的管理电子邮箱

    DocumentRoot /home/yourname ## 您的存放WEB的目录

</VirtualHost>

 

Apache的配置内容比较丰富,其它Apache相关配置请参考Apache的相关文档。

 

PHP的配置

Apache的配置文件是/usr/local/lib/php.ini,编辑php.ini文件来配置PHP的选项。特别注意的是,安装完成后register_globals变量默认设置为Off,需要将它改成On。否则会出现PHP读不到post的数据的现象。

 

register_globals = On

 

其它PHP的选项请参考相关文档。

 

测试

可以写一个简单的PHP文件来测试安装,文件包含下列一行:

 

<? phpinfo();?>

 

将其保存为/usr/local/httpd/htdocs/info.php,启动Apache,然后在浏览器中浏览。

 

本文与其它介绍Apache安装的文章不同,不是介绍Apache 1.3.x,而是介绍了如何用Red Hat 9.0+Apache 2.0+PHP 4.3+MySQL 4.0来架构Web开发环境,所选取的是目前最新版本的软件,均从源代码开始编译,而不是下载二进制文件来进行安装。

 

4、安装 ProFTP:

 

cd proftpd-1.2.10rc1

./configure –prefix=/usr/proftp

make

make install

cd..

 

创建系统账户

 

创建组         #  groupadd ftpusers

加入组         #  useradd -g ftpusers -d /home/ftp caiqing

(创建系统帐户caiqing到ftpusers组,并设定只可访问/home/ftp 目录)

设置帐户密码   #  passwd caiqing

设置访问权限   #  chown -R caiqing /home/ftp

(设置帐户caiqing只可对 /home/ftp 目录进行读写)

 

配置 proftpd.conf 文件

 

加入:

 

AllowOverwrite on         (可覆盖)

AllowRetrieveRestart on   (可断点续上传)

AllowStoreRestart on      (可断点续上载)

 

DefaultRoot ~  (设置帐户只能访问自己的目录)