[FreeBSD] FREEBSD系统上配置APACHE WEB服务器及其常用模块

weixin_38049770 2005-01-12 06:54:43

在FREEBSD系统上配置APACHE WEB服务器及其常用模块

apache+mod_gzip+mod_perl+mod_php+modssl+mod_fastcgi+mysql

在磁盘上建立一个工作目录/ 列如:mkdir /www

1:到APACHE的网络站下载APACHE WEB SERVER http://www.apache.org (目前版本是1.2.23)

2:到php的网络站下载php解析器 http://www.php.net (目前版本是 4.1.1)

3:到mod_gzip的网站下载mod_gzip.c http://www.remotecommunications.com/apache/mod_gzip/ (目前版本1.3.19.1a)

4:到mysql的网站下载 mysql http://sourceforge.net/projects/mysql/ (目前版本 3.23.49a)

5:到mod_perl的站点下载mod_perl http://perl.apache.org/dist/ (目前版本1.26)

更多APACHE模块 http://cpan.valueclick.com/modules/by-module/Apache/

6:到modssl网站下载 modssl http://www.modssl.org/contrib/ (目前版本2.87 for apache 1.3.23)这个模块要符合你的apache版本,
如:2.87只可以编译到apache 1.3.23的版本里。

7:到openssl的网站下载 openbssl http://www.openssl.org/(目前版本0.9.6c)

8:到mod_fastcgi网站下载mod_fastcgi http://www.fastcgi.com/dist/ (目前版本 2.2.12)

以上软件都下载到你的工作目录 /www 里。

cd /www

tar -zxvf apache_1.3.23.tar.gz

解开以后把目录更名为 mv apache_1.3.23 apache

tar -zxvf mod_perl-1.26.tar.gz

解开以后把目录更名为 mv mod_perl-2.26 mod_perl

tar -zxvf php-4.1.1.tar.gz

解开以后把目录更名为 mv php-4.1.1 php4

tar -zxvf mod_fastcgi-2.2.12.tar.gz

解开以后把目录更名为 mv mod_fastcgi-2.2.12 mod_fastcgi

tar -zxvf mod_ssl-2.8.7-1.3.23.tar.gz

解开以后把目录更名为 mv mod_ssl-2.8.7-1.3.23 mod_ssl

tar -zxvf openssl-0.9.6c.tar.gz

解开以后把目录更名为 mv openssl-0.9.6c openssl

tar -zxvf mysql-3.23.49.tar.gz

解开以后把目录更名为 mv mysql-3.23.49 mysql

先安装mysql

首先要为mysql 添加组和用户。

pw groupadd mysql (添加mysql用户组)

pw useradd mysql -g mysql -s /nonexistent (添加mysql用户)

用户和组添加完毕下一步我们开始编译安装mysql

cd mysql

./configure --prefix=/usr/local/mysql (这里指定把你的mysql安装到/usr/local/mysql 的目录里。)

make

make install

cd /usr/local/mysql/bin/

执行 ./mysql_install_db

cd /usr/local/mysql/share/mysql

执行 ./mysql.server

至此mysql安装完毕。让我们来看一下运行情况,

/usr/local/mysql/mysql

如果出先如下提示,说明mysql安装运行正常。

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.49-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>;
在 mysql>;提示符下执行,
mysql>;status
显示如下。
--------------
mysql Ver 11.16 Distrib 3.23.49, for unknown-freebsdelf4.5 (i386)

Connection id: 4
Current database:
Current user: root@localhost
Current pager: stdout
Using outfile: ''
Server version: 3.23.49-log
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: latin1
UNIX socket: /tmp/mysql.sock
Uptime: 3 hours 22 min 32 sec

Threads: 1 Questions: 6 Slow queries: 0 Opens: 6 Flush tables: 1 Open tables: 0 Queries per second avg: 0.000
--------------
执行
mysql>;exit

退出mysql

/usr/local/mysql/bin/mysqladmin -u root password 123 (给mysql用户加上密码。密码为 123 或自己定义)

/usr/local/mysql/bin/mysqladmin -u root -h lhs.westxj.net password 123 (给mysql用户加上密码。密码为 123 或自己定义)

看看密码是否设置成功。

/usr/local/mysql/bin/mysql -u root -p (回车,然后输入你的mysql密码)

/usr/local/mysql/bin/mysql -u root -h you.com.cn -p (回车,然后输入你的mysql密码)

接下来我们准备安装apache和其他模块。

cd /www/apache

./configure --prefix=/usr/local/apache --enable-module=so(这个我们把apache 安装目录指定到 /usr/local/apache 里。)

为apache准备php模块。

cd /www/php4

./configure --with-mysql=/usr/local/mysql --with-apache=/www/apache --enable-track-vars

make

make install

为apache准备mod_perl 模块。

cd /mod_perl

perl Makefile.PL PL APACHE_SRC=/www/apache/src

perl Makefile.PL DO_HTTPD=1

perl Makefile.PL USE_APACI=1

perl Makefile.PL PERL_HTTPD=1

perl Makefile.PL EVERYTHING=1

(以上指令在Apache目录中创建perl的mod-perl模块)

make

make test

make install

为mod_ssl安装准备openssl

cd /www/openssl

./configure

make

make install

为apache 准备modssl模块。

cd /www/mod_ssl

./configure --with-apache=/www/apache --with-ssl=/www/openssl

make

make install

为apache 准备mod_fastcgi模块。

cd /www

将mod_fastcgi搬移并更名到apache的src/modules/目录里。

mv mod_fastcgi /www/apache/src/modules/fastcgi

为apache准备mod_gzip模块。

先在apache的src/modules/的目录里建立一个叫mod_gzip的目录。

mkdir /www/apache/src/modules/mod_gzip

cp mod_gzip.c /www/apache/src/modules/mod_gzip/

至此准备工作完毕,我们开始编译安装apache

cd /www/apache



/configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a
--activate-module=src/modules/perl/libperl.a --activate-module=src/modules/ssl/libssl.a
--activate-module=src/modules/fastcgi/libfastcgi.a --add-module=src/modules/mod_gzip/mod_gzip.c --enable-module=so

make

make certificate TYPE=custom (设置mod_ssl)
这一步要生成你自己的 CA (认证中心),和用它来为你的服务器签署证书。 有很多东西要输入。

STEP 0: 选择算法,使用缺省的 RSA
STEP 1: 生成 ca.key,CA的私人密钥
STEP 2: 为CA生成X.509的认证请求 ca.csr 要输入一些信息:

Country Name: cn 国家代码,两个字母
State or Provice name: xin jiang 省份
Locality Name: urmqi 城市名
Organization Name: Home CA 组织名,随便写吧
Organization Unit Name: Mine CA
Common Name: Mine CA
Email Address: lhs@westxj.net 我的Email
Certificate Validity: 365 默然为一年。

STEP 3: 生成CA的签名,ca.crt
STEP 4: 生成服务器的私人密钥,server.key
STEP 5: 生成服务器的认证请求,server.csr 要输入一些信息,和STEP 2类似,
不过注意 Common Name是你的网站域名,如 www.you.com.cn Certificate Validity不要太大,365就可以了。
STEP 6: 为你的服务器签名,得到server.crt
STEP 7-8 :为你的 ca.key 和 server.key 加密,要记住pass phrase。

最后我们来完成apache的安装

make install

再做一些收尾工作。

cd /www/php4

把php.ini-dist配置文件拷贝并更名到/usr/local/lib/ 名为php.ini

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

再去配置一下apache下的/conf/httpd.conf文件。

cd /usr/local/apache/conf/

vi httpd.conf


ServerAdmin lhs@westxj.net (管理员邮箱,改成你自己的。)

#ServerName westxj.net (网站域名,该成你自己的域名,并把#号去掉!)

# And for PHP 4.x, use修改支持php脚本的配置,把#号去掉修改为如下列子。)
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

AddType application/x-tar .tgz

列子:
# And for PHP 4.x, use:
#
AddType application/x-httpd-php .php .php3 (如果要支持老脚本php3,在这里加上.php3就可以了。)
AddType application/x-httpd-php-source .phps

AddType application/x-tar .tgz


修改完毕,下面我们来测试一下配置文件是否正确。

/usr/local/apache/bin/httpd -t

如果显示如下。
Syntax OK
说明配置无误。

让我们运行apache服务。

/usr/local/apache/bin/apachectl startssl (回车,输入你设置的mod_ssl 密码)

浏览一下看是否服务启动起来。

lynx localhost

或在其他浏览器里输入地址。

http://localhost
http://127.0.0.1
看到apache测试页说明服务启动起来了。

最后再来让我们测试一下php模块是否工作正常。

cd /usr/local/apache/htdocs/

建立一个TEST的php脚本。

vi test.php

<?
phpinfo ()
?>;

http://localhost/test.php

如果看到内容说明工作正常。
如果你在安装中有什么问题,欢迎你给我发信提问。dzzs@westxj.net
...全文
29 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
1. 介绍 Subversion是什么? Subversion的历史 Subversion的特性 Subversion的架构 安装Subversion Subversion的组件 快速入门 2. 基本概念 版本库 版本模型 文件共享的问题 锁定-修改-解锁 方案 拷贝-修改-合并 方案 Subversion实战 工作拷贝 修订版本 工作拷贝怎样追踪版本库 修订版本混合的限制 摘要 3. 指导教程 帮助! 导入 修订版本: 号码、关键字和日期,噢,我的! 修订版本号 修订版本关键字 修订版本日期 初始化的Checkout 基本的工作周期 更新你的工作拷贝 修改你的工作拷贝 检查你的修改 svn status svn diff svn revert 解决冲突(合并别人的修改) 手工合并冲突 拷贝覆盖你的工作文件 下注:使用svn revert 提交你得修改 检验历史 svn log svn diff 比较本地修改 比较工作拷贝和版本库 比较版本库与版本库 svn cat svn list 关于历史的最后一个词 其他有用的命令 svn cleanup svn import 摘要 4. 分支与合并 什么是分支? 使用分支 创建分支 在分支上工作 分支背后的关键概念 在分支间拷贝修改 拷贝特定的修改 合并背后的关键概念 合并的最佳实践 手工追踪合并 预览合并 合并冲突 关注还是忽视祖先 常见用例 合并一条分支到另一支 取消修改 找回删除的项目 常用分支模式 发布分支 特性分支 转换工作拷贝 标签 建立最简单的标签 建立复杂的标签 分支维护 版本库布局 数据的生命周期 摘要 5. 版本库管理 版本库基本知识 理解事务和修订版本 未受版本控制的属性 版本库数据存储 Berkeley DB FSFS 版本库的创建和配置 钩子脚本 Berkeley DB配置 版本库维护 管理员的工具箱 svnlook svnadmin svndumpfilter svnshell.py Berkeley DB工具 版本库清理 管理磁盘空间 版本库的恢复 版本库的移植 版本库备份 添加项目 选择一种版本库布局 创建布局,导入初始数据 摘要 6. 配置服务器 概述 网络模型 请求和响应 客户端凭证缓存 svnserve,一个自定义的服务器 调用服务器 内置的认证和授权 创建一个用户文件和域 设置访问控制 SSH认证和授权 SSH配置技巧 初始设置 控制调用的命令 httpd,Apache的HTTP服务器 必备条件 基本的Apache配置 认证选项 基本HTTP认证 SSL证书管理 授权选项 整体访问控制 每目录访问控制 关闭路径为基础的检查 额外的糖果 版本库浏览 其它特性 支持多种版本库访问方法 7. 高级主题 运行配置配置区布局 配置和Windows注册表 配置选项 服务器 config 属性 为什么需要属性? 处理属性 特别属性 svn:executable svn:mime-type svn:ignore svn:keywords svn:eol-style svn:externals svn:special 自动属性设置 Peg和实施修订版本 外部定义 卖主分支 常规的卖主分支管理过程 svn_load_dirs.pl 本地化 理解地区 Subversion对地区的支持 Subversion版本库URL 8. 开发者信息 分层的库设计 版本库层 版本库访问层 RA-DAV(使用HTTP/DAV版本库访问) RA-SVN(自定义协议版本库访问) RA-Local(直接版本库访问) 你的RA库在这里 客户端层 使用API Apache可移植运行库 URL和路径需求 使用C和C++以外的语言 进入工作拷贝的管理区 条目文件 原始拷贝和属性文件 WebDAV 使用内存池编程 为Subversion做贡献 加入社区 取得源代码 开始熟悉社区政策 作出修改并测试 贡献你的修改 9. Subversion完全参考 Subversion命令行客户端:svn svn选项 svn子命令 svn add svn blame svn cat svn checkout svn cleanup svn commit svn copy svn delete svn diff svn export svn help svn import svn info svn list svn log svn merge svn mkdir svn move svn propdel svn propedit svn propget svn proplist svn propset svn resolved svn revert svn status svn switch svn update svnadmin svnadmin Switches svnadmin Subcommands svnadmin create svnadmin deltify svnadmin dump svnadmin help svnadmin hotcopy svnadmin list-dblogs svnadmin list-unused-dblogs svnadmin load svnadmin lstxns svnadmin recover svnadmin rmtxns svnadmin setlog svnadmin verify svnlook svnlook选项 svnlook svnlook author svnlook cat svnlook changed svnlook date svnlook diff svnlook dirs-changed svnlook help svnlook history svnlook info svnlook log svnlook propget svnlook proplist svnlook tree svnlook uuid svnlook youngest svnserve svnserve选项 svnversion svnversion mod_dav_svn mod_dav_svn Configuration Directives A. Subversion对于CVS用户 修订版本号现在不同了 目录的版本 更多离线操作 区分状态和更新 分支和标签 元数据属性 冲突解决 二进制文件和转化 版本化的模块 认证 转化CVS版本库到Subversion B. 故障解决 共同问题 使用Subversion的问题 每当我尝试访问版本库,我的Subversion客户端挂起。 每当我尝试运行svn,它告诉我工作拷贝已经锁定。 我在查找和打开版本库时得到错误,而我知道我的版本库URL是正确的。 我怎样在file://的URL中指定一个Windows驱动器盘符? 通过网络对Subversion版本库进行写操作发生问题。 在Windows XP下,Subversion服务器有时候看起来发送损坏的数据。 跟踪Subversion客户端和Apache服务器通话最好的方法是什么? 我刚刚编译了二进制分发版本,当我尝试检出Subversion,我得到一个“Unrecognized URL scheme”错误。 为什么svn revert命令要有一个明确的目标?为什么缺省不是递归的?它的行为方式与大多数其它子命令不同。 当我启动Apache,mod_dav_svn抱怨说发现一个“bad database version”,它发现了db-3.X而不是db-4.X。 我在RedHat 9得到“Function not implemented”错误,无法工作,我如何修正这个问题? 为什么日志说通过Apache(ra_dav)提交或导入的文件“(no author)”? 我偶然在Windows得到“Access Denied”错误,它们看起来随即出现。 在FreeBSD,某些操作(特别是svnadmin create)有时会挂起。 我可以在web浏览器看到我的版本库,但是svn checkout给我一个301 Moved Permanently错误。 我尝试察看我的文件的一个老版本,但是svn告诉我“path not found”。 C. WebDAV和自动版本化 WebDAV基本概念 仅是平常的WebDAV DeltaV扩展 Subversion和DeltaV 影射Subversion到DeltaV 自动版本化支持 选择mod_dav_lock 自动版本化交互性 Win32网络文件夹 Mac OS X Unix: Nautilus 2 Linux davfs2 D. 第三方工具 客户端和插件 语言绑定 版本库转化 高级工具 版本库浏览工具 E. 版权 术语表 插图清单 1.1. Subversion的架构 2.1. 一个典型的客户/服务器系统 2.2. 需要避免的问题 2.3. 锁定-修改-解锁 方案 2.4. 拷贝-修改-合并 方案 2.5. 拷贝-修改-合并 方案(续) 2.6. 版本库的文件系统 2.7. 版本库 4.1. 分支开发 4.2. 开始规划版本库 4.3. 拷贝后的版本库 4.4. 一个文件的分支历史 8.1. 二维的文件目录 8.2. 版本时间—第三维! 表格清单 2.1. 版本库访问URL 5.1. 版本库数据存储对照表 6.1. 网络服务器比较 8.1. Subversion库的摘要目录 范例清单 5.1. 使用svnshell浏览版本库 5.2. txn-info.sh(异常事务报告) 6.1. 匿名访问的配置实例。 6.2. 一个认证访问的配置实例。 6.3. 一个混合认证/匿名访问的配置实例。 6.4. 关闭所有的路经检查 7.1. 注册表条目(.reg)样本文件。 8.1. 使用版本库层 8.2. 使用Python处理版本库层 8.3. 一段检出工作拷贝的简单脚本 8.4. 典型的.svn/entries文件内容 8.5. 有效地池使用
摘要 用于制作应用软件的安装程序,支持任何开发平台,灵活性强,性能突出,对JAVA程序的支持也相当完善。 组件列表 技术特性 &#9830;;;;&nbsp;;;;通用安装、配置和客户化 ·在终端用户的系统上,将文件和文件夹安装于任何位置 ·在Read Me, License Agreement和其他的安装面板中完全支持HTML格式的文本。 ·使用GIF, JPEG, 和PNG文件,并借助透明和动作功能完全客户化图形、公告牌、主题和品牌。 ·内置安装步骤列表,突出安装的每一阶段 ·内置的安装器面板:介绍、要点、协议、选择安装文件、用户输入、密码、序列号、功能集、部件、安装摘要,等等。 ·内置的命令行控制台的交互以匹配图象化的面板 ·内置动作:创建快捷键、释放归档文件、使用搜索和替代功能修改文本文件,安装并控制Windows Services、设置注册表录入、设置环境变量执行命令和脚本,等等。 ·内置规则:检验平台、对比变量、验证用户输入、检验位置、确认文件/文件夹的属性 ·卸载表中可自定义动作,支持Windows的注册表的重运行。 ·用户可使用Java和基于JavaBeans的开放API,扩展设计自定义的动作、面板和控制台 ·在 XML或文本格式中安装日志 ·性能优化,提升安装时间两倍之多 ·XML的支持功能---包括了重新设计项目的文件格式,通过修改或是转换XML文件的方式检索数据。 ·卸载工具可以实现部分或全部的卸载功能 ·合并模块技术可以方便地创建&quot;;;;整套&quot;;;;安装器,子安装器和模版。可以在你的开发团队甚至是整个企业内部,将安装器的可重用性由一个项目传递到另一个项目也可源自于第三方的供应商。 ·完全的鼠标拖动支持,上下文右击菜单可以快速地获取常用的功能。 ·源路径管理,开发者可以方便地将开发的项目和源文件转移到构建的系统,或者是开发者之间进行转移。 ·Apache Ant 集成工具在安装之前、之中、之后执行Ant targets功能 ·针对 Java 应用程序配置的功能 ·自动安装Java VM ·完全支持所有的Java1.3版本,甚至包括Java 1.4 和J2EE 1.3 ·创建 LaunchAnywhere? (Zero G的Java应用程序发布技术) ,终端用户只需双击 Windows或Mac上的光标,或是在Solaris和Linux上输入简单的命令,就可以启动Java 程序。 ·Java Classpath 和主类的自动检测。 ·完全支持所有的Java运行选项。 &#9830;;;;&nbsp;;;;针对服务器, Web Services, 和J2EE 配置的功能 ·针对数据库注册选项的用户自定义面板 ·使用高级的搜索和替代功能修改服务器属性文件 ·安装、启动、停止并暂停Windows services ·安装EJBs, servlets, JSPs, JAR, WAR, 和EAR archives ·自动修改起始的脚本文件和 UNIX daemons文件 &#9830;;;;&nbsp;;;;平台支持 ·几乎支持每一种平台,包括最新版本的of Windows, Mac OS, Solaris, Linux, HP-UX, AIX, Tru64, IRIX, Free BSD以及其他。 ·适用于Windows XP和Mac OS X的日志证明。 &#9830;;;;&nbsp;;;;针对平台的功能 ·Windows 注册:检索, 设置, 并检验现有的主键和数据 ·Windows 快捷键:Mac aliases (with Dock support), UNIX 链接 ·Windows 服务:安装、启动、停止、暂停任何服务 ·本地化的Windows, Mac OS, UNIX 使用效果 ·Mac OS X 鉴定 ·设置Windows和UNIX环境下的系统环境变量 ·集成 Linux RPM ·Windows 卸载工具支持注册表的重新运行以及新增/移动程序 ·Magic FoldersTM:为桌面、系统、主页、性能、字体以及其他位置提供的专用文件夹 应用场景 适用于各种环境下安装程序的制作 运用优势 安装于任何应用程序、任何平台、任何地方 InstallAnywhere 简化了软件配置于任何客户端及服务器平台的工作,自动处理完成所有的复杂环节。每次每一时间都可以按照你的要求精确地配置软件。 InstallAnywhere 几乎支持每一种平台,包括最新版本的of Windows, Mac OS, Sola

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧