1 Apache和nginx相关知识
1.1 Apache配置文件
- Listen 80
Listen主要侦听web服务端口状态,默认为:80,即侦听所有的地址的80端口,注意这里也可以写成IP地址的侦听形式,不写即默认的地址:0.0.0.0
- ServerName 127.0.0.1:80/localhost:80
此选项主要用指定Apache默认的服务器名以及端口,默认参数值设置为:ServerName localhost:80即可
- DocumentRoot “/var/www/html”
网页文件存放的目录
- <Directory "/var/www/html">…</ Directory>
对 /var/www/html目录的一个权限的设置
例如:
<Directory "/var/www/icons"> Apache通过配置项 <Directory 所需配置的目录>来实现的
Options Indexes MultiViews FollowSymLinks 默认配置
AllowOverride None
Order allow,deny 命令允许、拒绝
Allow from all 允许来自任何地方的请求
</Directory>
注意,凡是和目录相关的配置,都应该在Directory段完成。
- Alias /download/ "/var/www/download/“
Alias /实际访问路径/ “网站路径“
对于不在DocumentRoot指定的目录内的页面,既可以使用符号连接,也可以使用别名。
访问时可以输入:http://www.custing.com/download/
- DirectoryIndex index.html index.html.var
主要设置Apache默认支持的首页页面,默认只支持:index.html首页,如要支持其他类型的首页,需要在此区域添加:如index.php表示支持index.php类型首页
例如:
Apache:设置首页运行index.html index.php的顺序
问:如何让Apache能自动运行index.php?
答:编辑httpd.conf文件,找到DirectoryIndex在后面加一个index.php。
例如,我把DirectoryIndex这行改为:DirectoryIndex
index.html index.htm index.php index.html.var
保存编辑的内容,重新启动Apache就可以实现了。
- LoadModule version_module modules/mod_version.so
启动时加载的模块, version_module 模块名,modules/mod_version.so模块位置
- Include conf/*conf
引入配置文件
在httpd.conf中有一句,Include conf.d/*.conf
这个指令的意思就是将 conf.d目录下所有以 .conf 结尾的文件都引进来。
1.2 Apache配置php
安装php和php-fpm
Yum/apt-get安装
$ yum/apt-get install php php-fpm
Php 5.3.3版本之后(源码安装的话)在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。
$ ./configure –enable-fpm
修改Apache配置文件
编辑 /usr/local/apache2/conf/httpd.conf 文件时要注意:添加模块
LoadModule php5_module modules/libphp5.so
找到
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在下面添加:
AddType application/x-httpd-php .php(使Apcche支持PHP)
AddType application/x-httpd-php-source .php5
找到:
<IfModule dir_module> DirectoryIndex index.html </IfModule>
添加:
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
1.3 Nginx配置文件
user www www;
定义Nginx运行的用户和用户组
http{ server{ location{ } …} ..}
整个http设置,虚拟主机设置,特定url设置,location后面接的是正则
listen 80
监听端口
server_name www.jd.com jd.com;
域名可以有多个,用空格隔开,本地localhost
root /data/www/jd;
文件根目录
index index.html index.htm index.php
默认主目录
备注:drwx------中的第一位标识该文件的类型标识,如d为目录
1.4 Nginx配置php
- 安装php和php-fpm
Yum/apt-get安装
$ yum/apt-get install php php-fpm
Php 5.3.3版本之后(源码安装的话)在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。
$ ./configure –enable-fpm
修改nginx配置文件
location ~ \.php$ {
root /var/www; #指定phph根目录
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
include fastcgi_params;
}
1.5 Apache和nginx原理
浏览器将Http请求发送给服务器(默认80端口),Apache或者Nginx在监听端口,一旦有请求过来Apache或者Nginx将会处理请求,然后将处理的结果通过端口返回给浏览器,浏览器拿到文件后根据文件进行渲染,最后展示。
1.6 Nginx的server虚拟主机配置
两种方式:
1、直接在主配置文件中设置server字段配置虚拟主机
2、使用include字段设置虚拟主机
***************以下是server主机设置*******
server
{
listen 80; //监听端口为80
server_name www.88181.com; //设置主机域名
charset gb2312; //设置访问的语言编码
access_log logs/www.88181.com.access.log main; //设置虚拟主机访问日志的存放路径及日志的格式为main
location / { //设置虚拟主机的基本信息
root sites/www; //设置虚拟主机的网站根目录
index index.html index.htm; //设置虚拟主机默认访问的网页
}
location /nginx_status{..}
// 查看nginx当前的状态情况,需要模块 “--with-http_stub_status_module”支持 ,这个模块能够获取Nginx自上次启动以来的工作状态,此模块非核心模块,需要在编译的时候手动添加编译参数 --with-http_stub_status_module
1.7 其他常用知识
1.7.1 启动多个端口
nginx 在 server{…}中listen xx;这个配置 可以使用多个server{}进行多个端口配置
1.7.2 查看Apache/Nginx的配置文件位置
Apache/Nginx –V 如果有conf后缀的文件即为该服务的配置文件,没有的话,找到文件的安装目录查看
1.7.3 查看进程和端口
root用户下 netstat –tupln
1.7.4 根据进程查找执行文件路径
根据端口找到pid(进程id)后, cd /proc/xxxx , ll 显示的 exe指向的路径就是。
1.7.5 关于nginx/Apache启动时输出
Warn 只是警告 出现ERROR、EMERG这样的输出才会导致无法启动。
1.7.6 关于nginx/Apache启动和关闭
nginx是可以通过ps aux | grep nginx 获取pid 通过 kill -9 xxxx杀掉 ,或者 到nginx安装目录下 ./nginx –s stop 启动./nginx 重启 ./nginx –s reload(加载配置文件重启)
Apache 不能用kill -9 xx的方式。只能到目录下采用 ./apachectl stop|restart|start方式或者service apache|apache2|httpd|http stop|restart|start启动或者关闭。