熟悉服务器都清楚一个事情,就是ng对php的处理可能比Apache稍微差点,所以就出现了静态文件用ng处理,php用Apache处理。
安装lnmpa很简单,整理就不多说了,管网有很完整的安装流程 点击这里跳转到lnmpa安装流程。
安装好之后,配置一个网站需要做几步:
1、在ng目录下的conf文件中添加配置,默认目录是 /usr/local/nginx/conf/vhost,添加一个www.域名.com.conf文件
server
{
listen 80;
server_name www.域名.com ;
index index.html index.htm index.php default.html default.htm default.php;
root 对应程序文件目录;
#error_page 404 /404.html;
include proxy-pass-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log 日志输出目录;
}
2、在Apache目录下添加配置文件,默认目录 /usr/local/apache/conf/vhost ,添加一个www.域名.com.conf文件
<VirtualHost *:88>
ServerAdmin admin@email.com
php_admin_value open_basedir "php可执行目录:/tmp/:/var/tmp/:/proc/"
DocumentRoot "php程序根目录"
ServerName www.域名.com
ErrorLog "错误日志输出文件"
CustomLog "日志输出文件" combined
<Directory "php程序根目录">
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
</Directory>
</VirtualHost>
之前配置总是只配置了ng,忘记配置apache,结果出现只能访问静态文件的尴尬局面。
在ng配置文件中有一个 include proxy-pass-php.conf; 这个就是ng处理php的方式,里面代码就是把php代码交给Apache处理,这个是默认文件,感兴趣的可以研究下。
这个是 proxy-pass-php.conf
location /
{
try_files $uri @apache;
}
location @apache
{
internal;
proxy_pass http://127.0.0.1:88;
include proxy.conf;
}
location ~ [^/]\.php(/|$)
{
proxy_pass http://127.0.0.1:88;
include proxy.conf;
}
而这个文件中又有一个 proxy.conf的配置文件,下面是这个配置文件
proxy_connect_timeout 300s;
proxy_send_timeout 900;
proxy_read_timeout 900;
proxy_buffer_size 32k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_redirect off;
proxy_hide_header Vary;
proxy_set_header Accept-Encoding '';
proxy_set_header Host $http_host;
proxy_set_header Referer $http_referer;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
转载请标明出处: https://blog.csdn.net/u012533474/article/details/81735571