1, apache工作方式:
监听一个端口(eg.80), 文件把内容通过tcp/http协议传到这个端口,apache查看文件后缀,决定用哪个库解读它,用哪个库是怎么决定的呢,在配置文件中有若干LoadModule xxx/../xxx.so这样的东西,.so就是一个库,解读特定文
件的库。那个库解读完后返回给apache,apache再把内容返回给客户端.
eg(#代表注释).
LoadModule authn_file_module libexec/apache2/mod_authn_file.so
#LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so
#LoadModule request_module libexec/apache2/mod_request.so
#LoadModule include_module libexec/apache2/mod_include.so
LoadModule filter_module libexec/apache2/mod_filter.so
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
#LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so
2, nginx工作方式
nginx的配置文件中有一个server{}.里面的内容有监听端口,webRoot目录,等,然后有个重要的就是,对于接收到什么文件怎么处理的部分如 location ~\.php${……fastcgi_pass portNum;}这个就说明接收到.php文件就当作快速公共网关接口传到portNum,然后把那个端口返回的东西再返回给客户端.
eg(#代表注释).
server {
listen 8080;
server_name localhost;
root /Users/tys/phpWeb/; # 该项要修改为你准备存放相关网页的路径
location / {
index index.php index.html;
autoindex on;
}
#proxy the php scripts to php-fpm
location ~ \.php$ {
include /usr/local/etc/nginx/fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
}
} 3, php-fpm 它只有一个功能,就是解读.php文件,它也要监听一个端口,也就是前面nginx的fastcgi_pass端口,nginx把文件传过来后,hph-fpm解读它,解读完成后返回给nginx. cgi: Common Gateway Interface. fpm: Fast CGI Process Manager.