`
taimukang
  • 浏览: 184011 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

linux配置汇总(3)

阅读更多
三、APACHE服务器与APACHE+MYSQL+PHP协同服务
1.Apache的主要配置文件:httpd.conf
/etc/httpd/conf/httpd.conf
或者
/usr/local/apache/conf/httpd.conf

httpd.conf的内容:
Serverroot:设置服务器存在的主目录;

LockFile filename:httpd守护进程的加锁文件,一般不需要设置,如果Serverroot是NFS文件系统,就需要修改参数指定本地文件系统中的路径;

ScoreBoardFile file-path:httpd使用ScoreBoardFile来维护进程的内部数据,因此除非要在一台计算机上运行几个Apache服务器,否则不需要修改;

PidFile /var/run/httpd.pid:指定文件记录httpd的守护进程号;

Timeout number:定义客户程序和服务器连接的超时间隔;

KeepAlive on|off:用于支持http1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个http请求;

MaxKeepAliveRequests number:一次连接可以进行的http请求最大数。如果数值为0,将支持在一次连接内进行无限制的传输请求;

KeepAliveTimeout number:测试一次连接中的多次请求传输之间的时间,如果在完成了一次连接之后没有收到客户程序的下一次请求,超过这个间隔值后,就会断开;

StartServers number:服务器启动时建立的进程数量;

MinSpareServers/MinSpareThreads number:服务器最低维持的空进程数;

MaxSpareServers/MaxSpareThreads number:服务器运行时维持的最大空进程数;

MaxClients number:服务器运行时可以同时处理的客户端最大数量;

MaxRequestsPerChil number:设置每个进程可处理的请求数,达到这个数值后,子进程自动销毁,如果设置为0,则永不销毁子进程;

Listen [IP-address:]portnumber:设置apache监听的端口,默认为80;

LoadModule module filename:在apahce安装过程中,被配置为--enable-module=shared的apache模块,会被独立的编译成*.so的动态共享对象。当服务器需要加载这个动态对象时,必须在httpd.conf中使用LoadModule指令,指定在服务器启动或重新启动时被加载;
举例:LoadModule foo_module modules/foo.so

ExtendedStatus On|Off:apache服务器可以通过特殊的http请求,报告自身的运行状态,打开这个ExtendedStatus参数,可以让服务器报告更全面的运行状态信息;

User unix-userid:服务器以root身分启动以后,改变为设置的用户身份运行;

Group unix-grouprid:服务器以root身分启动以后,改变为设置的组身份进行运行;

ServerName 完整的域名/IP地址[:端口号]:默认不需要修改,如果服务器名字解析有问题,在此修改;

ServerAdmin 邮件地址:设置的在返回给客户端的错误信息中要包含的邮件地址;

UseCanonicalName on|off|dns:on-使用ServerName值生成的默认web站点构造服务器的规范名称,off-使用由客户提供的主机头指令的主机名称和端口号为服务器构造默认的web站点,dns-使用dns执行客户连接IP地址搜索时确定的主机名构造服务器默认的web站点;

DocumentRoot /usr/local/apache/htdocs:设置客户端访问服务器时,可允许访问的根目录;
举例:DocumentRoot /usr/web
注意:最后的目录不要加"/"符号。

<Directory 目录路径>...</Directory>:用于封装一组命令,使之仅对某个目录及其子目录生效;
举例:
<Directory /usr/local/apache/htdocs/pics>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Options [+|-]可选项[+|-]可选项...:设置在特定目录中将使用那些服务器特性,默认为ALL;

AllowOverride All|None|指令类型[指令类型]...:当服务器发现了一个.htaccess文件(由AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令;

Order规则:控制缺省的访问状态和Allow,Deny指令被评估的顺序;
举例:
<Directory /www>
order Allow,Deny
Allow from shuke.com
Deny from no.shuke.com
说明:shuke.com域中的所有主机,除了no.shuke.com子域中包含的主机外都允许访问。所有不在shuke.com域中的主机都不允许访问。

Allow from all|host|env=env-variable [host|env=env-variable]...:哪些主机可以访问服务器的一个区域,可以用主机名,IP地址,IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制;

Deny from all|host|env=env-variable [host|env=env-variable]...:允许基于主机名,IP地址或者环境变量限制对服务器的访问;

UserDir Directory:设定了用户宿主目录下的一个实际目录,存放了该用户提供访问的文档。apache允许系统的每个用户建立自己的网站,用户只需要在自己的主目录下建立一个目录,并以UserDir指令设置目录名(默认为public_html),把提供访问的文件存放在该目录下,则在客户端可以使用类似的地址访问;
举例:http://webserver/~用户名/guess.html
说明:服务器向客户端返回/home/用户名/guess.html页面。

DirectoryIndex filename:设置默认的网站访问页面;
举例:DirectoryIndex index.html
说明:必须在客户端方式index.html为站点的索引文件。

AccessFileName 文件名:指定所有发布目录中的配置文件名;
举例:AccessFileName .htaccess
说明:在返回文档/usr/local/web/index.html之前,服务器会为此指令读取/.htaccess, /usr/.htaccess, /usr/local/.htaccess和/usr/local/web/.Htaccess,除非此功能已为如下代码所禁用:
<Directory />
AllowOverride None
</Directory>

HostnameLookups on|off|double:此指令起用了DNS查询,使得主机名能被记入日志;

ServerSignature On|Off|Email:配置服务器生成文档的页脚,on-简单的增加一行关于服务器版本和正在伺服的虚拟主机的ServerName,off-没有错误行,Email-额外创建一个指向ServerAdmin的"mailto:"部分;

Alias URL-path file-path|directory-path:使文档可以存储在DocumentRoot以外的本地文件系统中;
举例:Alias /image /ftp/pub/image
说明:对http://webserver/image/shuke.w的请求,服务器将返回/ftp/pub/image/shuke.w文件。

ScriptAlias URL-path file-path|directory-path:ScriptAlias指令的行为与Alias指令相同,但同时,他又表明此目录中含有应该由mod_cgi中cgi-script处理器的CGI脚本;
举例:ScriptAlias /cgi-bin /web/cgi-bin/
说明:对http://myserver/cgi-bin/shuke的请求会引导服务器执行/web/cgi-bin/shuke脚本。

AddType MIME-type extension [extension]...:AddType指令在给定的文件扩展名与特定的内容类型间建立映射关系;

AddHandler handler-name extension [extension]...:指定带extension扩展名的文件应被handler-name处理器来处理。这个映射关系会添加在所有有效的映射上,并覆盖所有相同的extension扩展名映射;
举例:AddHandler cgi-script .cgi
说明:把扩展名为.cgi的文件作为CGI脚本处理,一旦这个定义放在httpd.conf文件中,所有包含.cgi扩展名的文件,都会被当作CGI程序。

<VirtualHost 地址[:端口号][地址[:端口号]]...>...</VirtualHost>:用于封装一组仅作用于特定虚拟主机的指令;

2.基于IP地址的虚拟主机:
1) 需要服务器支持一个网卡绑定多个IP地址,在Red Hat Linux9的内核中已默认支持此功能。首先需要为虚拟主机申请域名和IP,假设为本地地址为www.shuke1.com:202.19.0.23,申请新的域名和IP为:www.shuke2.com:202.19.0.55;

2) 为网卡添加新IP地址;
#/sbin/ifconfig eth0 add 202.19.0.35 netmask 255.255.255.0

3) 重新设置httpd.conf,在文件中加入;
<VirtualHost 202.19.0.35>
ServerAdmin webmaster@ shuke1.com
DocumentRoot /home/httpd/www.shuke2.com
ServerName www.shuke2.com
ErrorLog /var/log/httpd/www.shuke2.com/error.log
</VirtualHost>

4) 建立相应的目录;
#mkdir /home/httpd/www.shuke2.com
#mkdir /var/log/httpd/www.shuke2.com

5) 将相应的主业内容存放在DocumentRoot指定的目录中;

6) 重新启动httpd服务进程,即可提供两个web服务器的功能。

3.基于名字的虚拟主机服务:基于名字的虚拟主机服务是比较适合使用的一种方案。他不需要更多的IP地址,而且配置简单,无需什么特殊的软硬件支持。现代的浏览器大都支持这种虚拟主机地实现方法。
1) 在DNS登记新的域名www.shuke2.com指向本地IP地址;
2) 修改配置文件,增加下面内容:
NameVirtualHost 202.19.0.23
<VirtualHost 202.19.0.23>
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/www.shuke1.com
ServerName www.shuke1.com
ErrorLog /var/log/httpd/www.shuke1.com/error.log
</VirtualHost>

<VirtualHost 202.19.0.23>
ServerAdmain webmaster@yourdomain.com
DocumentRoot /home/httpd/www.shuke2.com
ServerName www.shuke2.com
ErrorLog /var/log/httpd/www.shuke2.com/error.log
</VirtualHost>
也就是在基于IP地址的配置基础上增加一句:NameVirtualHost 202.19.0.23,最后是建立相应的目录,将主页内容放到相应的目录中去。

4.Apache的日志配置:
同样需要在httpd.conf中使用配置命令完成。
ErrorLog 文件路径|syslog[:facility]:指定了当服务器遇到错误时记录错误日志的文件名,默认为logs/error_log。

LogLevel级别:设置写入错误日志中信息的详细程度。
注意:建立至少使用crit级别,默认warn级别。
内容:
emerg:紧急-系统无法使用;
举例:Child cannot open lock file. Exiting
alert:必须立即采取错误;
举例:getpwuid: couldn't determine user name from uid
crit:致命情况;
举例:socket: Failed to get a socket, exiting child
error:错误情况;
举例:Premature end of script headers
warn:警告情况;
举例:chile process 1234 did not exit, sending another SIGHUP
notice:一般重要情况;
举例:httpd: caught SIGBUS, attempting to dump core in...
info:普通信息;
举例:Server seems busy, (you may need to increase StarServers, or Min/MaxSpareServers)...
debug:出错级别信息;
举例:Opening config file...

LogFormat format|nickname [nickname]:定义日志文件的记录格式。

CustomLog file|pipe format|nickname [env=[!]environment-variable]:对服务器的请求进行日志记录。

TransferLog file|pipe:不允许直接定义日志格式或根据条件进行日志记录外,与CustomLog指令有完全相同的参数和功能。

5.Apache的安装与验证
1) 安装源代码包httpd-2.0.48.tar.gz
[root@shuke src]#tar -zxvf httpd-2.0.48.tar.gz
[root@shuke src]#cd httpd-2.0.48
[root@shuke httpd-2.0.48]#./configure --prefix=/usr/local/apache --enable-so
[root@shuke httpd-2.0.48]#make
[root@shuke httpd-2.0.48]#make install
[root@shuke httpd-2.0.48]#vi /usr/local/apache/conf/httpd.conf
配置ServerAdmin的值为服务器管理员的邮箱地址:
ServerAdmin webmaster@mail.shuke.com
配置ServerName的值为本机域名:
ServerName webserver.shuke.com:80
[root@shuke httpd-2.0.48]#/usr/local/apache/bin/apachectl start
[root@shuke httpd-2.0.48]#ps -aux | grep httpd
验证apache进程已经启动,通过客户端在浏览器打开站点,看到apache欢迎页面。

2) apache的启动和停止的配置
复制/usr/local/apache/bin/apachectl文件到/etc/rc.d/init.d/目录:
[root@shuke httpd-2.0.48]#cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/
编辑启动文件:
[root@shuke httpd-2.0.48]#vi /etc/rc.d/init.d/apachectl
修改文件,在文件中'#!/bin/sh'后面加入下面两条规则:
#!/bin/sh
#
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web Server
#
使用chkconfig命令把apachectl命令加入到系统启动队列中:
[root@shuke apache]#chkconfig --add apachectl
查看apachectl的状态:
[root@shuke apache]#chkconfig --list apachectl
[root@shuke apache]#reboot
重新启动系统,察看进程,确认apache进程已经伴随系统启动。

3) 查看日志
查看错误日志:
[root@shuke apache]#less /usr/local/apache/logs/error_log
查看访问日志:
[root@shuke apache]#less /usr/local/apache/logs/access_log

6.Apache+Mysql+Php协同服务(顺序:mysql,apache,php)
mysql的安装步骤:
1) 建立一个mysql的组和用户
2) ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql
3) make
4) make install
5) /usr/local/mysql/bin/mysql_install_db
初始化数据库。
6) chown -R mysql /var/lib/mysql
设置mysql目录的权限。
7) cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
复制配置文件。
8) /usr/local/mysql/bin/mysqld_safe --user=root &
使用root用户启动mysql服务。
9) /usr/local/mysql/bin/mysqladmin -u root -p password 1234
因为初始的root密码是空的,因此修改密码,注意(Enter Password:直接回车)。

php的安装步骤:
1) ./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs
2) make
3) make install
4) cp php.ini-dist /usr/local/lib/php/php.ini
复制php配置文件到php目录。
5) vi /usr/local/apache/conf/httpd.conf
修改apache的配置文件,添加内容:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

安装一个论坛(zorum)的步骤:(用一个已经做好的config.php文件)
1) cp -dpR zorum_3_5/* /usr/local/apache/htdocs/zorum/
将文件拷贝到位于apache下的zorum目录下,并赋予它可以被写被读的权限。
2) 启动mysql和apache服务。
通过客户端访问验证,论坛启动成功,则协同服务正常。
分享到:
评论

相关推荐

    Linux网络服务实验配置文件汇总

    Linux网络服务实验配置文件汇总@Linux网络服务实验配置文件汇总

    linux配置信息汇总

    关于LINUX配置的一些描述,能够容易地理解LINUX

    常用LINUX硬件配置参数查看语句汇总

    常用LINUX硬件配置参数查看语句汇总,包括CPU数量内存大小,硬盘分布

    Linux安装配置Cognos11详细手册

    ### Linux环境下Cognos 11的安装与配置详解 #### 一、环境准备与确认 在进行IBM Cognos Analytics 11的安装之前,首先需要确认所使用的操作系统及软件版本符合要求。 - **操作系统**:Red Hat Enterprise Linux ...

    CVSwindows+Linux配置常见问题汇总50问

    【CVS配置常见问题汇总50问】是一个针对CVS版本控制系统在Windows和Linux环境下配置过程中遇到的问题集合,适合初级到中级水平的IT从业者参考。本文主要关注的是CVS的配置、复杂权限设置以及问题解答。 一、基于...

    linux文件共享服务汇总

    - **安装和启动**:在Linux上安装NFS服务器后,配置`/etc/exports`文件,然后启动NFS服务。 - **设置**:服务器端配置文件中指定要共享的目录和访问权限,客户端通过挂载NFS服务器的目录来访问共享。 4. **SSH与...

    年度十佳Linux技巧汇总

    ### 年度十佳Linux技巧汇总 #### Linux技巧总结概述 本文档汇集了2009年度最实用且全面的Linux技巧,旨在帮助管理员们更好地掌握Linux系统的管理与维护。涵盖了从漏洞检测到新版本评估等多个方面,每个技巧都旨在...

    Linux常用命令汇总

    整体来看,Linux常用命令汇总包括了对Java运行环境的检查与配置、Linux虚拟机网络设置以及对Linux系统网卡配置文件的理解和编辑。这些知识点对于Linux系统管理和开发人员来说是基本而重要的操作技能。

    Linux 操作系统 汇总

    3. **权限管理**:`chmod`改变文件或目录的权限,`chown`和`chgrp`改变所有者和组。 4. **进程管理**:`ps`查看当前进程,`kill`发送信号终止进程,`nohup`后台运行程序,`top`实时监控系统资源。 5. **网络操作**:...

    Linux 编译资料总汇

    Linux 编译资料总汇是一份集合了关于深入理解、分析和编译Linux内核的综合资源。Linux的开源特性使得其源代码可供全世界的开发者和爱好者研究,从而吸引了一大批计算机专业人士和程序员投身于Linux内核的探索之中。...

    Linux驱动书籍汇总

    本篇文章将详细探讨Linux驱动书籍汇总中涉及的主要知识点。 1. **《LINUX设备驱动程序(第3版)》** 这本书是Linux驱动程序开发的经典之作,全面覆盖了从基础到高级的Linux驱动编程技术。书中主要讲解了以下内容: ...

    linux的各种服务器架设总汇

    文件中没有提及NFS服务器配置,但在Linux中配置NFS通常涉及到修改/etc/exports文件,设置共享目录、允许访问的主机和访问权限等参数。 5. VNC服务器架设: 虚拟网络计算(VNC)服务器允许远程连接和控制桌面环境。...

    linux 初学资料汇总大全

    这份"Linux初学资料汇总大全"包含了一系列的学习资源,旨在帮助新手快速入门Linux的世界。 首先,我们来看《Linux+命令全集.chm》。这个文件很可能是一个包含Linux常用命令详解的电子书。在Linux系统中,命令行是...

    Linux常用命令汇总.md

    ### Linux常用命令汇总知识点 #### 一、Linux简介与重要性 **1.1 Linux的起源与发展** Linux是由芬兰程序员林纳斯·托瓦兹(Linus Torvalds)于1991年创建的一个开放源代码操作系统。起初,它是作为个人兴趣项目开始...

    Linux网卡安装配置.pdf

    Linux网卡安装配置知识汇总: Linux系统是开源的操作系统,其中网络功能是其重要组成部分。网卡是计算机网络中用于实现物理层和数据链路层功能的网络组件。在Linux中,网卡设备通常被识别为eth0、eth1等。为了在...

    dsniff linux 软件汇总

    **dsniff Linux软件汇总** 在Linux环境中,dsniff是一个强大的网络安全工具,主要用于网络嗅探、数据包截取和网络欺骗。这个工具集包含了多种功能,如邮件嗅探、HTTP会话劫持、密码嗅探等。dsniff是Artem R. ...

    Linux课件ppt汇总

    "Linux课件ppt汇总"是一个包含Linux相关教学材料的压缩包,适合初学者和进阶者系统学习Linux操作系统的基础知识和高级特性。 首先,Linux的起源与发展是学习Linux的起点。Linux由芬兰程序员林纳斯·托瓦兹在1991年...

    Linux面试题大全及答案.pdf

    知识点3:Linux进程管理 Linux系统中,每个进程都有一个唯一的进程ID,进程可以处于不同的状态,如运行态、就绪态和等待态(阻塞态)。在Linux系统中,可以使用Ctrl+c终止前台起动的进程。 知识点4:Linux网络管理 ...

    经典LINUX书籍汇总之一

    ### 经典LINUX书籍汇总之一 #### Linux操作系统概述与特点 Linux作为一款开源、免费且高度可定制化的操作系统,自问世以来便以其强大的功能、灵活性及稳定性在多个领域占据了重要地位。无论是在大型的数据中心还是...

Global site tag (gtag.js) - Google Analytics