欢迎访问 FreeeLAMP.com Tutorial  Tips  Apache  Opinion  PHP 
 搜索
 首页


全文搜索
RDF新闻订阅

LAMP 组合的安装
Tutorial徐永久 发表于 2001年10月17日 09:34。  

奥索网,曾经是国内开放源码界的一个很好的例证,可惜终于要赶上网站倒闭的潮流,在2000年9月开始到2001年上半年,没有生存了多少时间和空间。但是笔者实施了那个网站的整个系统的架构,并且是奥索网让笔者开始接触开放源码,知道了美妙的 LAMP 架构。

LAMP (Linux + Apache + MySQL + PHP/Perl/Python) 近几年来,已经成为Web 社区的事实标准。本文我们将介绍LAMP组合的安装,本文假定你的机器上已经安装了Linux ,如果你对Linux 的安装还有什么问题的话,可以去相关的一些开放源码站点论坛上发表贴子,向其他网友寻求帮助。也可以向相关的厂商寻求技术支持。本文的LAMP中的 P,暂时解释为PHP,因为本站是基于 Zope + Python 结构架构的,所以本站在以后的文章中将着重向这方面倾斜。

所有LAMP组合中的软件都是开放源代码产品,所以您不必担心产品的价格以及版权问题。相反,有广大的开放源码社区开发人员的不断努力,这些产品的版本更新速度反而比那些昂贵的专有软件更快。虽然Linux 因为界面问题,会让您望而却步,但是您不必担心,现在,这些软件都采用了浏览器管理界面,好多都提供phpMyAdmin(一个利用PHP 语言在浏览器上管理MySQL的程序)以及WebMin(通过浏览器来管理系统)来让您方便的管理系统。

PHP现在的版本已经到了4.0.4pl1,是一门面向对象的交叉平台的服务器端脚本语言。可以嵌入HTML语言中,可以作为Apache 的模块来运行。下面我们以 tarball(.tar.gz)格式(和它相对的是RPM 格式)的版本为例子,来介绍安装过程。

首先,去对应的网站下载最新版本的源码。为了保持系统目录分布的一致性,建议把他们解开到/usr/local/src 目录:

#cd /usr/local/src
#tar xvfz filename.tar.gz
先介绍MySQL的安装:

# cd /usr/locl/src/mysql-3.23.35
# ./configure --prefix=/usr/local/mysql
这样就把MySQL 的安装目录设置为 /usr/local/mysql ,然后运行make 来编译源代码,接下来就可以用 make install 来安装了。

安装完毕后,需要把MySQL 库加入系统,采用ldconfig 命令来实现:

#echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
#ldconfig -v | grep libmysqlclient
然后可以看到系统返回:

libmysqlclient.so.10 => libmysqlclient.so.10.0.0
让MySQL 在启动时自动运行:

#echo "/usr/local/mysql/bin/safe_mysqld > /dev/null &" >> /etc/rc.d/rc.local

接下来初始化数据库(切换到/usr/local/mysql 目录):

# ./scripts/mysql_install_db
启动MySQL 服务:

# bin/safe_mysqld > /dev/null &
增加路径:

# PATH="$PATH:/usr/local/mysql/bin"
测试 MySQL:

#mysqladmin version
如果能返回MySQL 的所有信息,就表示您的MySQL 已经安装成功了。下面为了安全起见,需要给root用户(数据库中的超级用户),设置口令:

#mysql -h -u root -p
按照提示输入口令以后,MySQL 的设置就算大功告成了。

接下来的部分就是 Apache 和 PHP 的安装了。如果你的系统已经存在Apache ,那么需要首先做好备份。然后进入Apache 的源代码目录:

#cd /usr/local/src/apache_1.3.19
输入配置命令:

#./configure --prefix=/usr/local/apache
然后改变到 PHP 的源代码目录:

#cd /usr/local/src/php-4.0.4pl1
配置PHP 的编译命令:

#./configure --with-apache=../apache_1.3.19 --with-mysql=/usr/local/mysql
运行 make 和 make install , PHP就安装成功了。

改变目录到 Apache 源代码所在:

#cd ../apache_1.3.19
因为增加了 PHP 模块,所以需要重新配置Apache 的编译文件。

#./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a (注意这里的路径,后面的文件确实是不存在的,不要担心。)

然后运行make 和 make install 您就可以在 /usr/local/apache 目录下看到apache 的几个目录了。为了让Apache 能认识那些以 PHP 结尾的文件,我们需要修改 /usr/local/apache/conf/httpd.conf

找到下面的行,把行首用作注释的#号去掉:

AddType application/x-httpd-php .php
这样,Web 服务器就能认识那些 .php 结尾的文件,否则当您浏览网站时,浏览器会提示您存盘。为了让Apache 自动认识 index.php 作为首页我们还必须修改DirectoryIndex 行,添加 index.php:

DirectoryIndex index.html index.php
然后,重新启动 Apache:

#killall -HUP httpd
可以在 /usr/local/apache/htdocs 目录下,建立一个 testphp.php 的文件,内容为:

?php
phpinfo();
?〉
然后在浏览器上输入 http://localhost/testphp.php 就应该看到你当前的 PHP 设置情况。

以上介绍的 Apache/PHP 安装方法为静态编译的方法。以后每次有新的版本出来或者添加新的模块时,必须重新编译Apache ,需要花费较长的时间,我们不推荐这种方法,Apache 1.3 以后的版本采用了 DSO(动态共享对象)技术,实现了模块的动态安装,这种方法不仅适用于PHP ,对其他模块,例如 mod_perl,mod_python 都适用,因此,笔者推荐采用这种方法:

编译Apache:

#./configure --prefix=/usr/local/apache --enable-module=most --enable-shared=max
#make
#make install
然后编译PHP:

#./configure --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
#make
#make install
之后的步骤和静态部分一样,主要就是修改httpd.conf 。 区别两种安装方法最简单的办法就是使用命令:

#httpd -l
看输出结果,静态编译没有 mod_so.c 模块。

笔者相信 LAMP ,作为一个廉价的,开放源码的,高性能的Web 开发平台,在我国相对落后的互联网建设中,在这些年“政府上网”、“企业上网”、“金字工程”的号召下,会发出璀璨的光芒,照亮Web 平台。在这光芒的后面,只有两个字来衬托:“服务”。

FreeLAMP 将会为这两个字而努力,再努力!




<  |  >

 

相关连接
  • 有关Tutorial 的文章
  • 作者徐永久的所有文章
  • 联系作者
    Google
    Web freelamp.com

  • 共列出 10 个点评,仅显示索引。
    MySQL 忘记口令的解决办法
    by 徐永久 on 2001年10月16日 20:36
    如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
    启动 MySQL :bin/safe_mysqld --skip-grant-tables &
    就可以不需要密码就进入 MySQL 了。

    然后就是
    >use mysql
    >update user set password=password("new_pass") where user="root";
    >flush privileges;
    重新杀 MySQL ,用正常方法启动 MySQL 。


    MySQL 最好从 source 编译
    by 徐永久 on 2001年10月16日 20:37
    编译参数:
    ./configure --prefix=/usr/local/mysql --with-berkeley-db --with-innodb --without-docs --with-charset=latin1 --with-extra-charsets=gb2312

    然后是 make;make install


    Apache 的 .htaccess 文件
    by 徐永久 on 2001年10月16日 20:37
    AuthType Basic
    AuthUserFile C:\.htuser.dat
    AuthGroupFile C:\.htgroup.dat
    AuthName "My Private Area"
    require user user1 user2
    require group group1 group2

    其中的 UserFile 由 htpasswd -c filename username
    产生。 以后添加用户不需要 -c 参数。

    GroupFile 的内容为:
    groupname:user1 user2 user3 ...

    另外在 httpd.conf 中最好对需要保护的目录写上:

    <Directory "/my/private/dir">
    Options None
    AllowOverride AuthConfig
    Order Allow, Deny
    Allow from All
    </Directory>

    这样你就可以根据用户来保护自己的目录了。


    徐永久谢谢你!
    by caozhengh on 2002年01月12日 04:37
    因为有你的网站,我入门学习LAMP碰到的大量问题,终于有地方可以解决了。 跟随你的caozhengh

    在组合的最后,包括一个jsp不好吗?
    by monkey on 2002年01月14日 22:29
    我觉得jsp也是个不错的选择!

    安装方法的简化版本
    by 徐永久 on 2002年03月03日 02:48
    首先安装 MySQL:
    # ./configure --prefix=/usr/local/mysql
    # make
    # make install
    # ./scripts/mysql_install_db
    # bin/safe_mysqld > /dev/null &
    # PATH="$PATH:/usr/local/mysql/bin"
    # mysqladmin version

    然后安装 Apache :
    # ./configure --prefix=/usr/local/apache --enable-module=most --enable-shared=max
    # make
    # make install
    然后编译PHP:
    # ./configure --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
    # make
    # make install
    然后安装 Zend Optimizer:
    # ./install.sh

    看看 phpinfo() 的输出,就成功了。


    Apache 2.0.35 和最新版本的 PHP 4.3-Dev 的集成
    by 徐永久 on 2002年04月10日 14:19
    如果您要查找最新版本的 Apache 2 和 PHP 的集成,请看本文:

    Apache 2.0.35 和最新版本的 PHP 4.3-Dev 的集成


    Re: LAMP 组合的安装
    by xm on 2002年10月30日 18:17
    请问我想在sun 公司的solaris 8系统上安装Apache + MySQL + PHP,请问如何设置及安装,我浏览了www.sunsoftware.com和sunsite.unc.edu等网站,下载了一些符合GNU的软件,如gcc、tar等,但不知是否有文章介绍在solaris 8系统上安装Apache + MySQL + PHP,以及qmail邮件系统

    MySQL 的安装
    by 徐永久 on 2003年08月12日 00:19
    MySQL 1040 错误:
    Too many connections

    修改 my.cnf
    添加:

    max_connections = 1000

    ERROR 2002:
    '/var/lib/mysql/mysql.sock' does exist
    有人解释为权限问题。
    本人遇到的问题是 PHP 应用默认使用 /var/lib/mysql/mysql.sock 。
    修改 php.ini :
    mysql.default_socket = /tmp/mysql.sock



    Re: LAMP 组合的安装
    by leo on 2003年11月24日 16:28
    我在solaris 2.8 sparc 上面安装时,make 出错! 不知道是怎么回事?? 麻烦您能看看吗1?! error code 137 make: Fatal error: Command failed for target `sql_lex.o' Current working directory /export/home/software/mysql-4.0.16/sql *** Error code 1 make: Fatal error: Command failed for target `all-recursive' Current working directory /export/home/software/mysql-4.0.16/sql *** Error code 1 make: Fatal error: Command failed for target `all' Current working directory /export/home/software/mysql-4.0.16/sql *** Error code 1 make: Fatal error: Command failed for target `all-recursive' Current working directory /export/home/software/mysql-4.0.16 *** Error code 1 make: Fatal error: Command failed for target `all'

    禅道 须在生活中修,在日常言语、形式里面契合、印证
    自我的觉醒却是光阴偷不走,人拿不走的。
    Back to Top| About 我家小子 版权所无 2001,2007 FreeLAMP.com