httpd的里面的详细参数
首先可以分成三个部分
1.Section 1:Global Environment
本部分指令主要是影响整个apache服务器,例它能所处理的并发请求或者在哪里能够找到他的配置文件
Server Root “/etc/httpd”
apache的根目录,一般不用修改
PidFile run/httpd.pid
只有相对路径,考虑SeverRoot设定值,存放在/etc/httpd/run/httpd.pid
PidFile指令是设置服务器用于记录父进程PID的文件
(PidFile指令设置服务器用于记录父进程(监控进程)PID的文件。如果指定的不是绝对路径,那么将视为基于ServerRoot的相对路径。
示例
PidFile /var/run/apache.pid
这个文件通常用来便于给服务器父进程发送一个信号,用于关闭或重启服务器,以重新打开ErrorLog和TransferLog文件、重新读取配置文件。这些可以通过发送一个"SIGHUP"(kill -1)信号到PidFile记录的进程PID。
PidFile和其他日志文件一样要注意放置位置和安全问题。
注意
从Apache2开始,推荐使用apachectl脚本来启动或停止服务器。)
Timeout 120秒
定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。,超过120秒后将强行退出,设置0表示永不超时,也就是服务器必须处理尚未完成的请求,才能退出,此值一般在300秒左右即可,不建议修改。
KeepAlive On
表示是否持续性的连接,一个TCP的连接可以处理多个请求
比如说,你的网页内含有多个文档,可一次处理多个文档要求,一般都是On
MaxKeepAliveResquests 100
表示一次连接可以进行http请求的最大请求次数。设置0将支持一次连接无限次的传输请求。
KeepAliveTimeout 15
测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连
<IfModule prefork.c>
StartServers 8 启动httpd时的几个进程数
MinSpareServers 5 最小的预备使用的PID数量
MaxSpareServers 20 最大的预备使用的PID数量
ServerLimit 256 服务器的限制
MaxClients 256 最多可以容许多少个用户端同时连线到的httpd的意思!
MaxRequestsPerChild 4000
每个程序能够提供的最大传输次数要求。举例来说,如果有个使用者连上伺服器后(一个过程),却要求数百个网页,当他的要求数量超过此一数值,则该程序会被 丢弃,另外切换一个新程序,这个设定可以有效的控管每个进程在系统上的“存活时间”,因为根据观察所得,新程序的效能较佳啦!
显示对应的拉丁字符的拼音
</IfModule>
为什么要设置连接数限制
答:比如说一时间网站的访问人数达到上万,达到设置的某个值,这时会导致网站的瘫痪,遇到大规模的DDos攻击,避免出现这种情况,还是有必须进行设置的
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
一般都使用prefork最好
Listen 80
LoadModule foo_module modules/mod_foo.so
apache提供一些很多的组件给我们使用
Include conf.d/*.conf
Include conf.d/*.conf因为有这一行才能设定额外的值,不需要修改httpd.conf的配置,可以在.conf.d下面修改
Section 2:'Main' server configuration
ServerAdmin [email protected]定义邮件地址,当这个服务出现的时候会向这个邮件发送信息
ServerName www.centos.vbird设置主机名称
UseCanonicalName Off
# 是否使用��手�C名�Q?如果你的主�C有多��主�C名�Q,若�@���O定�� On,
# 那�N Apache 只接受上�^ servername 指定的主�C名�Q�B�而已。�使用 Off。
DocumentRoot "/var/www/html"存放用户网页的地方
重点为:
<Directory 目录>
控制语句
〈Directory>
例子:以配置文件中对根目录和文档目录的默认设置为例子
〈Directory />
Options FollowSymLinks
AllowOverride None
〈Directory>
Options字段是定义目录使用哪些特性
常用选项有
FollowSymlinks 允许在目录中使用符号链接
Indexs。允许目录浏览,当客户端没有指定访问目录下的具体哪个文件,而且该目录下也没有首页文件时,刚显示该目录的结构,包括该目录下的子目录和文件
MultiViews允许内容协商多重视图
ExecCGI 允许在该目录下执行CGi脚本
Includes允许服务器包含功能
AllowOverride None (AllowOverride控制那些被放置在.htaccess文件中的指令)
ALL 全部的权限均可被覆写
AuthConfig 仅有网页认证(账号和密码)可覆写
Indexes仅允许Index方面的覆写
Limits允许使用者利用Allow,Deny与Order管理可浏览的权限
None 不可覆写,让.htaccess失效
Order allowe,deny
表示默认情况下禁止所有客户端访问,且allowe字段在deny字段之前被匹配,如果既匹配allowe字段又匹配Deny字段,最后deny字段最终生效。也就是说Deny会覆盖allowe
Order deny,allowe
表示默认情况下允许所有客户端访问,且deny字段在allowe字段之前被匹配,如果既匹配allowe字段又匹配Deny字段,最后allow字段最终生效。也就是说allowe会覆盖deny
很重要的知识点:
Order allowe,deny 开放所有的,拒绝特定的
Order deny,allow 拒绝所有的,开放特定的
例子:允许所有客户端访问
Order allow,deny
Allow from all
例子:拒绝IP地址为10.20.30.40网段的客户端访问,但其中192.168.1.1客户端能访问
Order allow,deny
deny from 10.20.30.40
allow from 192.168.1.1
例子:仅允许192.168.1.0/24网段的客户端访问,但其中192.168.1.1不能访问
Order allowe,deny
allow from 192.168.1.0/24
deny from 192.168.1.1
DirectoryIndex index.html index.php设置首页顺序
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
alias做别名
alias 要别名的地方 原来的路径
Alias /icons/ "/var/www/icons/"
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#<Directory "/var/www/cgi-bin">
# AllowOverride None
# Options None
# Order allow,deny
# Allow from all
#</Directory>
跟Alias差不多,不过具有 ExecCGI 能力的目录所在喔
下面来介绍php配置文件
路径:/etc/httpd/cond/httpd.conf
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so 根据不同的PID模式给予不同的PHP 动作模组
</IfModule>
AddHandler php5-script .php -----》所以副档名一定要是.php结尾
AddType text/html .php ------》.php结尾的档案是纯文字档
DirectoryIndex index.php 首页的档名增加index.php
注意:这三个基本上不用修改
#AddType application/x-httpd-php-source .phps 特殊用法、
下面来简单介绍一下php.ini配置文件
路径:/etc/php.ini
register_globals = Off
这个值最不需要修改,因为改成On时会不安全,容易被攻击
log_errors = On
ignore_repeated_errors = On 这个值调整一下原来是Off
ignore_repeated_source = On 这个值调整一下原来是Off
注意:这三个可以决定是否要将php程式的错误记录起来
display_errors = Off
display_startup_errors = Off
建议设置为Off
php用户需要上传下载资料,默认是2M左右,这个值是可以修改2
vi /etc/php.ini
post_max_size =10M ,大约在477行
file_uploads =On 一定要是On才行
upload_max_filesize =2M 修改成上传的限制为16M 大约在582行
upload_max_filesize =16M 默认是2M,现在用户上传的可以是16M了
post_max_siza比upload_max_filesize的值大才行
[root@localhost /]# /etc/init.d/httpd configtest 测试设定档语法
Syntax OK
[root@localhost /]# /etc/init.d/httpd start
Starting httpd: [ OK ] 启动httpd服务
[root@localhost /]# chkconfig httpd on 开机启动www服务
另外httpd还有一个apachectl这支程式
跟/etc/init.d/httpd差不多可以启动httpd服务
[root@localhost /]# /usr/sbin/apachectl stop 停止apache
[root@localhost /]# /usr/sbin/apachectl start 启动apache
[root@localhost mysql]# netstat -tulnp |grep 'mysql'
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 6011/mysqld
mysql端口是3306
设置数据库密码方法
mysqladmin -u root password 'edong250'
进入数据库方法
[root@localhost mysql]# mysql -uroot -pedong250
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases; --->注意:第一个指向必须加上;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |---->用来记录mysqlm账号主机等 重要资料
| test |
| vbirddb |
+--------------------+
4 rows in set (0.00 sec)
mysql>
下面我们来介绍一下mysql的配置文件
路径:/etc/my.cnf
mysql root密码忘记了怎么办
解决方法:可以在网上找一些工具处理,或者如果你的资料不是很重要的话,先把mysql服务停止掉,然后再把/var/lib/mysql/*那个目录内的资料删除掉,然后再重新重动mysql,那么mysql就会重建,root密码就找回来了
<IfModule mod_userdir.c>
UserDir disable
#UserDir public_html
</IfModule>
这个作用是用户可以控制自己的首页
linux apache+cgi执行应用
CGI(公共网关接口)定义了web服务器与外部内容生成程序之间交互的方法,通常是指CGI程序或者CGI脚本,它是在网站上实现动态页面的最简单和常用的方法。本文将对如何在Apache web服务器上建立CGI以及如何编写CGI程序进行介绍。
假�O想要�绦� CGI 的程式附�n名�� .cgi 或 .pl ,且放置的目�在 /var/www/html/cgi/ �r,你可以�@�幼�
vi /etc/httpd/conf/http.conf
找到#AddHandler cgi-script .cgi
在.cgi后面添加一个.pl的扩展然后去掉#
AddHandler cgi-script .cgi .pl
然后加上具体目录
<Directory "/var/www/html/cgi">
Options +ExecCGI
AllowOverride None
Order allowe,deny
Allowe from all
</Directory>
mkdir /var/www/html/cgi
vi helloworld.pl
#!/usr/bin/perl
print "Content-type: text/html\r\n\r\n";
print "Hello, World.";
最重要的权限
chmod a+x /var/www/html/cgi/helloworld.pl
重启/etc/init.d/httpd restart
第二个方法配置:apache+cgi
假�O想要�绦� CGI 的程式附�n名�� .cgi 或 .pl ,且放置的目�在 /var/www/perl�r,你可以�@�幼�
vi /etc/httpd/conf/http.conf
找到#AddHandler cgi-script .cgi
在.cgi后面添加一个.pl的扩展然后去掉#
AddHandler cgi-script .cgi .pl
然后加入底下这几行来决定开放某个目录的cgi执行权限
ScriptAlias /perl "/var/www/perl/"
mkdir /var/www/perl
vi helloworld.pl
#!/usr/bin/perl
print "Content-type: text/html\r\n\r\n";
print "Hello, World.";
最重要的权限
chmod a+x /var/www/per/helloworld.pl
重启/etc/init.d/httpd restart
linux下实现apache 找不到网页时,提示自己设置的信息
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
找到这些信息
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
然后把#ErrorDocument 404 /missing.html的#去掉
#ErrorDocument 500 "The server made a boo boo."
ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
然后重启httpd
[root@localhost ~]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
注意:在编辑missing.html的文件时,一定要根据apache的网页存放路径下面
[root@localhost html]# vi missing.html
sorry ! error,please Contact zhanghan
然后我们保存:missing.html内容是sorry ! error,please Contact zhanghan
我的是[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
cgi missing.html
然后你就可以输入http://192.168.1.200/fdsafdafds
结果会提示:sorry ! error,please Contact zhanghan
查看服务器和网页的状态
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
首先必须有模块的加入LoadModule status_module modules/mod_status.so
找到这一行把它的注释去掉ExtendedStatus On
然后在找到下面的这些信息,全部把注释去掉
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
Allow from 127.0.0.1
</Location>
[root@localhost ~]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
访问用httpd://192.168.1.200/server-status