Chinaunix首页 | 论坛 | 博客
  • 博客访问: 531966
  • 博文数量: 119
  • 博客积分: 3167
  • 博客等级: 中校
  • 技术积分: 1215
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-20 21:21
文章分类

全部博文(119)

文章存档

2015年(21)

2012年(4)

2011年(1)

2007年(11)

2006年(50)

2005年(32)

分类: LINUX

2006-01-16 03:33:10

==============
安装和基本配制
==============
因为是最小安装FC1  很多包都没有装   而且FC1里面自带的 MYSQL是3.x版本的   有次改成4.x版本的后发现  php连接数据库错误   因为mysql版本的原因    所以 这次没有用rpm包来装了
如果 系统中已经安装了这两个的话  可以
rpm -e rpmName --nodeps
来卸载后安装
一些URL资料
# apache 安装手册 包括核心模块列表 扩展模块列表

 
apache
模块
Apache是模块化的服务器,核心服务器种只包含了功能最常用的模块,而扩展功能由其他模块提供。设置过程中,你必须指定需要包含的模块。文档中有模块清单备查,其中状态为"Base"的模块会被默认地包含进核心服务器,如果你不需要包含某个模块(比如mod_userdir),则必须明确地禁用它;其他状态的模块(比如mod_expires),也必须明确启用以使之包含进核心服务器。
Apache有两种使用模块的方法,其一是永久性包含进核心;如果操作系统支持动态共享对象(DSO),而且能为autoconf所检测,则模块还可以被动态编译。DSO模块的存储是独立与核心的,可以被核心使用由mod_so模块提供的运行时刻配置指令包含或排除。如果编译中包含有任何动态模块,则mod_so模块会被自动包含进核心。如果希望核心能够装载DSO,而不实际编译任何动态模块,需要明确指定-- enable-so。
DBM
Apache的某些功能,如mod_auth_dbm和 mod_rewrite中的DBM RewriteMap使用简单的 键/值数据库来实现信息快速检索。Apache内置了支持SDBM的源代码,所以数据库总是被支持的。如果要使用其他数据库类型,可以使用的configure 选项有:
--with-gdbm[=path]
--with-ndbm[=path]
--with-berkeley-db[=path]
如果没有指定path,Apache会在常规搜索路径中寻找头文件和库;明确地指定path会引导Apache到path/lib和path/include中寻找这些文件,另外,path可以指定特定的头文件和库的路径,并用冒号隔开。

shell > cd httpd-2.0.50
shell > ./configure --prefix=/usr/local/apache \
--mandir=/usr/share/man \
--enable-mods-shared=all \
--enable-so
# 选择所有模块  核心和扩展模块都支持

# 如果是linux的2.0以上的APACHE最好使用worker方式
运行apache --with-mpm=worker

 
shell > ./make install

 
安装PHP

进入PHP源码目录
shell > ./configure --with-mysql=/usr/local/mysql \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-gd --enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-freetype-dir=/usr/local/freetype \
--with-jpeg-dir=/usr/local/jpeg-6b \
--with-png-dir=/usr/local/libpng \
--with-zlib=/usr/local/zlib \
--with-bz2=/usr/local/bzip2 \
--with-inifile --with-hyperwave \
--enable-xml --enable-track-vars \
--enable-dba --enable-dbase \
--enable-filepro --enable-ftp \
--enable-versioning \
--enable-memory-limit \
--enable-calendar \
--enable-session \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-tokenizer \
--enable-overload \
--enable-ctype \
--enable-sigchild \
--enable-magic-quotes \
--disable-debug


shell > make
shell > make install

make install 后可以看到会把libphp4.so从./lib目录拷贝到/usr/local/apache/modules下面
其他相关路径 也会输出在屏幕上
Wrote PEAR system config file at: /usr/local/etc/pear.conf
You may want to add: /usr/local/lib/php to your php.ini include_path
Installing build environment:     /usr/local/lib/php/build/
Installing header files:          /usr/local/include/php/
Installing helper programs:       /usr/local/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/man/man1/
  page: phpize.1
  page: php-config.1


安装完成后  可以把mysql apache 的bin目录下的可执行文件做个连接
ln -sf /usr/local/mysql/bin/* /sbin
ln -sf /usr/local/apache/bin/* /sbin

修改apache/conf/httpd.conf

1.加入php支持
LoadModule php4_module        modules/libphp4.so
AddType application/x-httpd-php .php

2. 默认主页
DirectoryIndex index.html index.html.var index.php
当默认主页不存在的时候是否显示目录列表
Options indexes
是否可以使用连接
Options FollowSymLinks
也可以两个一起用
Options indexes FollowSymLinks

3. 默认语言
AddDefaultCharset GB2312

=======================
用户验证的配置
====================

用户验证的配制
1> 指定验证配置文件
AccessFileName .htaccess

2> 指定某目录使用验证
Alias /mrtg/ "/var/www/html/mrtg/"

Options Indexes
AllowOverride AuthConfig

3> 创建密码文件
htpasswd -c $apache/conf/passwords juey
htpasswd $apache/conf/passwords yida

4> 编辑需要验证目录下面的配置文件
vi /var/www/html/mrtg/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/conf/passwords
Require user juey
#Require valid-user   # all valid user

说明:
AllowOverride   :    指定一些参数可以被覆盖,一般有
Options                 如Indexes  ,   ExecCGI ..  等 
AuthConfig 网页认证 
Limit  安全的设定
All  上面的规定都可以使用.htaccess来设定 
None  不允许.htaccess来设定 

如我们对每个用户主目录下的网页的配置
vi /usr/local/apache/conf/httpd.conf
AccessFileName .htaccess  #访问规则配置文件
   # 防止.htaccess和.htpassword 文件被客户浏览器访问到 
 Order allow,deny
 Deny from all

 #匹配用户主目录下面的public_html
 AllowOverride AuthConfig #允许使用AccessFile的设定 .htaccess
 Order allow,deny
 Allow from all

添加密码
su - test
mkdir public_html
cd public_html
echo "Hello " > test.html
htpasswd -c ~/apache.passwd test

配置访问规则文件
vi .htaccess
AuthName "Protect test by .htaccess"  #注释说明
Authtype Basic
AuthUserFile /home/test/apache.passwd
Require valid-user

测试时 要注意文件的属性问题
chmod 755 /home/user
chmod 755 /home/user/public_html


==============
虚拟主机配置
==============
apache手册中虚拟主机

一些帖子:
=虚拟主机
=虚拟主机

==============
为什么APACHE的options属性没有生效
==============
问题分析:Options属性有一个非常特别的功能:如果你没有用“+”或者“-”来增加或者减少一个功能的时候,每个之前定义的Options的所有功能都会被取消,直到你又为它指定一些功能。所以options属性在整体设置和虚拟主机设置的是不相关的,互相不起作用,因为他们在特定的范围内被重载了。
解决:如果要在虚拟主机里面使用在整体设置中的Options的设置,那么就不要在虚拟主机设置中指定Options属性。如果要增加或者减少功能,那么用“+”或者“-”符号来实现。例如:
Options Includes ExecCGI

    Options Indexes

整体设置的Options属性是Includes和ExecCGI,而在/www/htdosc目录里面的Options属性只有Indexes。如果要让 /www/htdocs目录具有Includes和ExecCGI以及Indexes属性,除了单独指定以外,还可以使用下面的方法:
Options Includes ExecCGI

    Options +Indexes

==============
其他问题:
==============
一篇优化的文章:
http://blog.linuxeden.com/post/102235/3593
阅读(1765) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~