nginx配置文件
user www www;
worker_processes auto;
error_log /home/wwwlogs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
multi_accept on;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
#limit_conn_zone $binary_remote_addr zone=perip:10m;
##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.
server_tokens off;
access_log off;
server
{
listen 80;
#listen [::]:80;
server_name ty.com;
index index.html index.htm index.php default.html
default.htm default.php;
root /home/wwwroot/default/public/;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
location ~ \.php {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi_params;
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
#set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME
$document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
#fastcgi_param PATH_INFO $path_info;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log /home/wwwlogs/access.log;
}
include vhost/*.conf;
}
防跨目錄設(shè)置
LNMP 1.1及之前的版本使用php.ini里面,open_basedir設(shè)置
LNMP 1.2及更高版本防跨目錄功能使用.user.ini熟吏,該文件在網(wǎng)站根目錄下湾盒,可以修改.user.ini 里面的open_basedir的值來設(shè)置限制訪問的目錄或刪除來移除防跨目錄的設(shè)置拯勉。
.user.ini文件無法直接修改沟使,如要修或刪除需要先執(zhí)行:chattr -i /網(wǎng)站目錄/.user.ini
可以使用winscp文件管理青扔、vim編輯器或nano編輯器進行修改嚎京。
刪除的話rm -f /網(wǎng)站目錄/.user.ini 就可以馆揉。
修改完成后再執(zhí)行:chattr +i /網(wǎng)站目錄/.user.ini
.user.ini不需要重啟一般5分鐘左右生效业舍,也可以重啟一下php-fpm立即生效。
如果要更改網(wǎng)站目錄必須要按上述方法修改防跨目錄的設(shè)置升酣,否則肯定報錯O夏骸!
LNMP 1.4上如果不想用防跨目錄或者修改.user.ini的防跨目錄的目錄還需要將 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在該行行前添加 # 或刪除改行噩茄,需要重啟nginx下面。
LNMP 1.4上也可以直接使用lnmp1.4/tools/ 目錄下的 ./remove_open_basedir_restriction.sh 進行移除。
在Thinkphp绩聘、codeigniter沥割、Laravel等框架下耗啦,網(wǎng)站目錄一般是在public下,但是public下的程序要跨目錄調(diào)用public上級目錄下的文件机杜,因為LNMP默認是不允許跨目錄訪問的帜讲,所以都是必須要將防跨目錄訪問的設(shè)置去掉,有時候這些框架類的程序提示500錯誤也可能是這個問題引起的椒拗。
LNMPA或LAMP 模式1.2版本以上的防跨目錄的設(shè)置使用的對應(yīng)apache虛擬主機配置文件(lnmp管理工具添加的話文件是 /usr/local/apache/conf/vhost/域名.conf )里的php_admin_value open_basedir參數(shù)進行設(shè)置似将。如果不需要設(shè)置可以在前面加 # 進行注釋,或自行修改目錄的限制蚀苛。
重啟apache生效在验。