`
taimukang
  • 浏览: 180878 次
  • 性别: 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文件共享服务汇总

    3、UNIX类操作系统文件共享-NFS 3.1NFS说明 3.2NFS示意图 3.3安装和启动NFS服务器 3.4NFS服务器端设置 3.5NFS客户端设置 3.6NFS开机自动挂载 4、SSH与rsync 4.1介绍和使用ssh 4.2远程传输,备份 4.3使用rsync实现...

    嵌入式开发中linux系统需要的基本配置方法

    一般嵌入式开发都是基于linux平台的,大公司用linux服务器供多人使用,那么个人开发或者出差就需要搭建虚拟机了。文档会介绍嵌入式开发过程中虚拟机系统的安装及可能用到的Samba、TFTP、NFS、SSH2这几个基本的服务...

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

    细心整理 初级中级都可以参看 window有43常见问题 Linux有7个常见问题

    Linux服务器管理与应用书籍汇总

    教程名称:Linux服务器管理与应用书籍汇总       课程目录: 【】Linux大型服务器学习笔记以及常用命令   【】LINUX教程(偏向服务器内容)   【】Linux服务器配置与管理 ...

    Linux服务器配置与管理课件汇总全书电子教案完整版课件(最新).pptx

    Linux服务器配置与管理课件汇总全书电子教案完整版课件(最新).pptx

    企业级Linux服务攻略

    10.4 客户端配置Linux客户端的使用 10.5 NFS排错 10.6 本章练习 10.7 字段汇总 第11章 NIS 11.1 NIS原理 11.1.1 NIS简介 11.1.2 NIS工作原理 11.1.3 NIS工作模式 11.2 NIS的安装 11.2.1 NIS所需软件 11.2.2 安装...

    Linux运维小白光速入门必备视频.zip

    3Linux系统安装及IP配置远程连接 4Linux系统安装及IP配置远程连接 5Linux下目录及经典命令实战 6Linux下目录及经典命令实战 7Linux下必备命令演练 8Linux下必备命令演练 9Linux下vi编辑器及用户权限演练 10...

    H3C Workspace云桌面产品最新配置指导书汇总集.rar

    02 H3C Workspace云桌面 Linux桌面镜像配置指导(办公场景) 03 H3C Workspace云桌面 vGPU配置指导(办公场景) 04 H3C Workspace云桌面 安全管理配置指导 05 H3C Workspace云桌面 动态桌面池典型配置举例 06 H3C ...

    Linux常见的持久化后门汇总1

    1、Linux软连接ssh后门需要ssh配置允许PAM认证才能使用 2、将sshd文件软连接名称设置为su,这样应用在启动过程中他会去PAM配置文件夹中寻找是否

    荔枝派nano汇总资料(uboot、主线Linux、buildroot及dl包、编译烧录工具、配置及烧录文件)

    全志F1C100S/F1C200S芯片。荔枝派nano汇总资料(uboot、主线Linux、buildroot及dl包、编译烧录工具、配置及烧录文件)。使用请查看:https://blog.csdn.net/p1279030826/category_10743092.html

    RHEL5企业级Linux服务全攻略

    教程名称:RHEL5企业级Linux服务全攻略课程目录:【】RHEL5 LAMP整体环境搭建【】RHEL5.1主从NIS服务器配置及测试【】rhel5_RHCE官方培训教材【】RHEL5下搭建DNS服务器【】RHEL5企业级Linux 资料汇总及各种服务器...

    Linux开发运维常用命令整理

    本文档是日常工作中实践环境下的linux下常用命令汇总,包括开发、运维、日常监控、系统常用配置文件修改、系统调优、系统常见问题解决等。

    RedHat基本配置汇总

    RedHat配置

    简洁而易学的Linux命令文档

    该文档主要针对于Linux常用命令进行汇总与简化,从而让您易学且轻松,该文档虽然不大,但是覆盖了Linux中常用命令,如:mkdir, rm, touch,echo,vim(vim编辑器中常用的快捷键),chmod, chown,useradd,passwd,主机名...

    Linux下安装并配置Apache+PHP+MySQL

    这是本人在网上收集几个网友的方法并加上自己的心得,现在将它汇总到一起。一来为自己保存起来,二来可以帮助其他网友..本人比较推崇的是网友4的方法,按照那样的步骤安装基本上没问题

    H3C 云计算CAS产品典型配置案例汇总集.rar

    H3C_CAS_CAStools安装操作指导书(Red Hat Enterprise Linux Server 7.x ) H3C_CAS_CAStools升级特性操作指导书 H3C_CAS支持OVF虚拟机格式操作指导书 H3C_CAS资源性能监控操作指导书 H3C_CAS虚拟机磁盘限速功能...

    linux常用命令明细(详细)

    本文汇总了Linux系统中最常用的命令,提供了简明的命令列表以及它们的基本用法。无论你是初学者还是有经验的Linux用户,这份速查手册都将帮助你更高效地操作Linux系统。 适用人群: Linux初学者:提供了基本的命令...

Global site tag (gtag.js) - Google Analytics