apache基础

2020-03-03

安装:

linux:
yum -y install httpd-devel 或 yum -y install httpd

windows:
修改conf的Define SRVROOT的路径
在bin目录下执行命令 安装服务  -n参数为指定服务的名字,如果服务名部位apache,那么启动,重启,停止时需用-n参数执行服务名;安装时提示套接字只允许使用一次(针对443端口时) 可以将conf/extra/ https-ssl.conf和httpd-ahssl.conf的端口443修改或注释
httpd -k install -n Apache 
 
httpd -k uninstall  卸载服务

启动:

linux:
systemctl start httpd.service  启动
systemctl enable httpd.service 设置开机自启
systemctl httpd reload 重载配置
systemctl httpd restart 重启

windows:
httpd -k start 启动不会提示详细的错误信息。
httpd -k start -n apache  会提示详细的错误信息,其中的"apache"修改为你的Apache服务名,可以到计算机服务里找。
httpd -k restart -n apache 重启。
httpd -k stop -n apache  停止服务

net start apache   利用Windows托管服务命令(启动)。
net start apache   利用Windows托管服务命令(重启)。
net start apache   利用Windows托管服务命令(停止)。

公共配置

取消apache的默认欢迎页,linux下:conf.d/welcome.conf (将这个文件的内容注释或改名或删除都可以)

设置访问权限 在 Directory下
    AllowOverride None
    Order allow,deny order 最后面的优先级更高,当前为先允许后禁止
    Allow from 192.168.0.1/24
    Deny from 192.168.0.1/24

别名 当访问网站/phpdata/时 资源会转跳转
    Alias /phpdata/ "/usr/www/wwwroot/" 
    <Directory "/usr/www/wwwroot/"> 
        2.4的配置设置为不允许直接访问程序目录,否则程序报错时会直接访问到程序目录
    	Options +Indexes +FollowSymLinks +ExecCGI
         2.2的配置
    	Options -Indexes FollowSymLinks
    	AllowOverride None
    	Rquire all granted
    </Directory>

访问验证:
	<Directory "/usr/www/wwwroot/"> 
	    Options Indexes FollowSymLinks  将当前行注释后,设置为不允许直接访问程序目录,否则程序报错时会直接访问到程序目录
	     AllowOverride None
	     authtype basic
	     authname "me web site"
	     authuserfile /etc/httpd/conf/ 用户密码文件位置
	     reruire valid-user
	</Directory>
密码文件生成:htpasswd为httpd自带工具
    htpasswd -cm /etc/httpd/conf/passwd.secret tom 创建用户tom的密码文件 第一次创建参数为-cm 第二次开始参数为-m 在第一次的基础上累加

配置虚拟主机:三种模式
示例:
<VirtualHost '192.168.0.1:80'>
	DocumentRoot /var/www/wwwroot
	ServerAdmin admin@server.com
	Servername www.1.com
    #可以在此处设置多个域名,绑定到一个网站上,多个用空格隔开
    ServerAlias
    #指定php版本
	FcgidInitialEnv PHPRC "E:/phpstudy_pro/Extensions/php/php7.3.4nts"
	AddHandler fcgid-script .php
	FcgidWrapper "E:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .php
	Error logs/1.error_log
	Customlog logs/1.assess_log common
	<Directory "E:/PHPproject/certification">
		#禁止显示 Apache 文件夹列表
	    Options FollowSymLinks ExecCGI
	    AllowOverride All
	    Order allow,deny
	    Allow from all
	    Require all granted
		#配置起始页
		DirectoryIndex index.php index.html error/index.html
	</Directory>
</VirtualHost>
1、不同ip
	<VirtualHost '192.168.0.1:80'>
		ServerAdmin admin@server.com
		DocumentRoot /var/www/wwwroot
		Servername www.1.com
		Error logs/1.error_log
		Customlog logs/1.assess_log common
	</VirtualHost>

	<VirtualHost '192.168.0.2:80'>
		ServerAdmin admin@server.com
		DocumentRoot /var/www/wwwroot
		Servername www.1.com
		Error logs/1.error_log
		Customlog logs/1.assess_log common
	</VirtualHost>
2、不同域名 
	<VirtualHost '192.168.0.1:80'>
		ServerAdmin admin@server.com
		DocumentRoot /var/www/wwwroot
		Servername www.1.com
		Error logs/1.error_log
		Customlog logs/1.assess_log common
	</VirtualHost>

	<VirtualHost '192.168.0.1:80'>
		ServerAdmin admin@server.com
		DocumentRoot /var/www/wwwroot
		Servername www.2.com
		Error logs/1.error_log
		Customlog logs/1.assess_log common
	</VirtualHost>

3、不同端口
	<VirtualHost '192.168.0.1:80'>
		ServerAdmin admin@server.com
		DocumentRoot /var/www/wwwroot
		Servername www.1.com
		Error logs/1.error_log
		Customlog logs/1.assess_log common
	</VirtualHost>

	<VirtualHost '192.168.0.1:81'>
		ServerAdmin admin@server.com
		DocumentRoot /var/www/wwwroot
		Servername www.2.com
		Error logs/1.error_log
		Customlog logs/1.assess_log common
	</VirtualHost>

apache监控:status监控(自带模块) apachetop(三方的监控)
	1、打开status模块 将#号去处 LoadModule status_module modules/mod_status.so
	2、开启扩展日志信息 ExtendedStatus On
	3、配置status模块
		<Location /server-status>
			SetHandler server-status
			Order deny,allow
			Deny from all;
			Allow  from all
		</Location>
	4、进入监控页面 ip/server-status?auto&refresh=5  auto 自动刷新  refresh 刷新间隔时间 可以不使用这两个参数

 

{/if}