真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

nginx實(shí)現(xiàn)文件上傳和下載

這篇文章給大家分享的是nginx實(shí)現(xiàn)文件上傳和下載的方法。小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí)。如下資料是關(guān)于實(shí)現(xiàn)文件上傳和下載的方法的內(nèi)步驟。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供萬源網(wǎng)站建設(shè)、萬源做網(wǎng)站、萬源網(wǎng)站設(shè)計(jì)、萬源網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、萬源企業(yè)網(wǎng)站模板建站服務(wù),10多年萬源做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

系統(tǒng)版本:

[root@vhost8 local]# cat /etc/redhat-release 

CentOS Linux release 7.5.1804 (Core) 

用戶準(zhǔn)備:

useradd -s /sbin/nologin -M nginx

目錄及權(quán)限準(zhǔn)備

[root@vhost8 local]#

mkdir -p /export/share/upload/

mkdir -p /export/tmp/upload/

cd /export/tmp/upload/

mkdir 0  1  2  3  4  5  6  7  8  9  state

chown -R nginx:nginx /export/

[root@vhost8 export]# tree                        

.                                                 

├── share                                         

│   └── upload                                    

│       ├── eclipse-cpp-2019-09-R-win32-x86_64.zip    

└── tmp                                           

    └── upload                                    

        ├── 0                                     

        │   ├── 0001559170                                            

        ├── 1                                     

        │   ├── 0000000001                                            

        ├── 2                                                      

        ├── 3                                                                      

        ├── 4                                                                          

        ├── 5                                     

        ├── 6                                                    

        ├── 7                                                                            

        ├── 8                                                                     

        ├── 9                                                                             

        └── state                                 

                                                  

15 directories, 26 files

[root@vhost8 local]# 

nginx 安裝:

yum remove nginx

yum -y install gcc gcc-c++ autoconf automake gd gd-devel zlib zlib-devel openssl openssl-devel pcre-devel 

mkdir /root/thb

cd /root/thb

wget http://nginx.org/download/nginx-1.17.7.tar.gz

git clone https://github.com/hongzhidao/nginx-upload-module.git

git clone https://github.com/masterzen/nginx-upload-progress-module.git

tar -xzvf nginx-1.17.7.tar.gz 

cd nginx-1.17.7/

./configure  --with-debug --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --add-module=/root/thb/nginx-upload-module --add-module=/root/thb/nginx-upload-progress-module --with-stream --with-http_image_filter_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-file-aio --with-cc-opt='-Wno-format-security -Wno-unused-but-set-variable -Wno-unused-result -D NGX_HAVE_OPENSSL_MD5_H=1 -D NGX_OPENSSL_MD5=1 -D NGX_HAVE_OPENSSL_SHA1_H=1 -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2  -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'

make && make install

修改nginx配置:

cd /etc/nginx/

vi nginx.conf

[root@vhost8 nginx]# cat nginx.conf

worker_processes  4;  

  

#error_log  logs/error.log;  

#error_log  logs/error.log  notice;  

#error_log  logs/error.log  info;  

  

#pid        logs/nginx.pid;  

  

  

events {  

    worker_connections  1024;  

}  

  

  

http {  

    include       mime.types;  

    default_type  application/octet-stream;  

  

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  

    #                  '$status $body_bytes_sent "$http_referer" '  

    #                  '"$http_user_agent" "$http_x_forwarded_for"';  

  

    #access_log  logs/access.log  main;  

  

    sendfile        on;  

    #tcp_nopush     on;  

  

    #keepalive_timeout  0;  

    keepalive_timeout  65;  

    upload_progress proxied 8m;  

  

    #gzip  on;  

    server {

        listen       80;

        

        auth_basic "Please input password"; #這里是驗(yàn)證時(shí)的提示信息

        auth_basic_user_file /etc/nginx/passwd/testpwd;

        

        # upload

        client_max_body_size 100g; # 這個(gè)配置表示最大上傳大小,但是我沒有驗(yàn)證過是否能傳 100g 的文件

        

        # Upload form should be submitted to this location

        location /upload {

                # Pass altered request body to this location

                upload_pass /upload.php;

        

                # 開啟resumable

                upload_resumable on;

        

                # Store files to this directory

                # The directory is hashed, subdirectories 0 1 2 3 4 5 6 7 8 9 should exist

                # 記得修改目錄的讀寫權(quán)限

                upload_store /export/tmp/upload 1;

                upload_state_store /export/tmp/upload/state;

        

                # Allow uploaded files to be read by all

                upload_store_access all:r;

        

                # Set specified fields in request body

                upload_set_form_field "${upload_field_name}_name" $upload_file_name;

                upload_set_form_field "${upload_field_name}_content_type" $upload_content_type;

                upload_set_form_field "${upload_field_name}_path" $upload_tmp_path;

        

                # Inform backend about hash and size of a file

                upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5;

                upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size;

        

                upload_pass_form_field "^submit$|^description$";

        }

        

        location ~ \.php$ {

           # fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;

           fastcgi_pass   127.0.0.1:9000;

           fastcgi_index  index.php;

           # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

           fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;

        

           include        fastcgi_params;

        }

        

        location /myfiles {

            alias /export/share/upload/;        # 文件存放目錄,注意要以 '/' 結(jié)尾;

            index index.html;               # 如果文件存放目錄有 index.html,會跳轉(zhuǎn)到 index.html;

            autoindex on;               # 自動列出目錄下的文件;

            autoindex_exact_size off;   # 文件大小按 G、M 的格式顯示,而不是 Bytes;

        }

    

    }

}

[root@vhost8 local]# 

編輯上傳文件

[root@vhost8 local]# 

cd /etc/nginx/html

vi upload.php 

[root@vhost8 html]# cat upload.php 

$header_prefix = 'file';

$slots = 6;

?>

Test upload

if ($_POST){

    echo "

Uploaded files:

";

    echo "

";

    echo "

";

    for ($i=1;$i<=$slots;$i++){

        $key = $header_prefix.$i;

        if (array_key_exists($key."_name", $_POST) && array_key_exists($key."_path",$_POST)) {

            $tmp_name = $_POST[$key."_path"];

            $name = $_POST[$key."_name"];

            $content_type = $_POST[$key."_content_type"];

            $md5 = $_POST[$key."_md5"];

            $size = $_POST[$key."_size"];

            $final_path = "/export/share/upload";

            if (copy($tmp_name, "$final_path/$name")) {

                    echo "SUCCESS!";

            } else {

                    echo "FAIL!";

            }

            $scp_cmd = "scp team@***:/export/share/upload/$name .";

            $wget_cmd = "wget http://***/files/upload/$name";

            echo "

";

        }

    }

    echo "

NameLocationContent typeMD5SizeScp CommandWget Command
$name$final_path$content_type$md5$size$scp_cmd$wget_cmd
";

}else{?>

Select files to upload







}

?>

[root@vhost8 local]# 

增加nginx 網(wǎng)頁登錄驗(yàn)證

yum  -y install httpd-tools

mkdir -p /etc/nginx/passwd/

htpasswd -c /etc/nginx/passwd/testpwd user1

輸入2遍user1 登錄密碼

增加nginx啟動文件

[root@vhost8 local]# 

vi /lib/systemd/system/nginx.service

[root@vhost8 local]# cat /lib/systemd/system/nginx.service

[Unit]

Description=The nginx HTTP and reverse proxy server

After=network.target remote-fs.target nss-lookup.target

 

[Service]

Type=forking

PIDFile=/run/nginx.pid

# Nginx will fail to start if /run/nginx.pid already exists but has the wrong

# SELinux context. This might happen when running `nginx -t` from the cmdline.

# https://bugzilla.redhat.com/show_bug.cgi?id=1268621

ExecStartPre=/usr/bin/rm -f /run/nginx.pid

ExecStartPre=/usr/sbin/nginx -t

ExecStart=/usr/sbin/nginx

ExecReload=/bin/kill -s HUP $MAINPID

KillSignal=SIGQUIT

TimeoutStopSec=5

KillMode=process

PrivateTmp=true

 

[Install]

WantedBy=multi-user.target

[root@vhost8 local]# 

php安裝

[root@vhost8 nginx]# 

yum -y install gcc automake autoconf libtool make

yum -y install gcc gcc-c++ glibc

yum -y install libmcrypt libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

cd ~

wget https://museum.php.net/php5/php-5.4.7.tar.gz

tar -xzvf php-5.4.7.tar.gz 

cd php-5.4.7

./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt --enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath --enable-inline-optimization --with-bz2  --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-MySQL --with-mysqli --with-gd --with-jpeg-dir

make all install

cd /usr/local/php

cp etc/php-fpm.conf.default etc/php-fpm.conf

vi etc/php-fpm.conf

修改

user = nginx  

group = nginx         

啟動php-fpm服務(wù):

cd /usr/local/php

./sbin/php-fpm &

啟動nginx:

[root@vhost8 local]# 

systemctl enable nginx.service

systemctl start nginx

systemctl status nginx

文件瀏覽:

http://192.168.187.137/myfiles/

nginx實(shí)現(xiàn)文件上傳和下載

文件上傳:

http://192.168.187.137/upload.php

nginx實(shí)現(xiàn)文件上傳和下載

nginx實(shí)現(xiàn)文件上傳和下載

關(guān)于nginx實(shí)現(xiàn)文件上傳和下載的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


分享名稱:nginx實(shí)現(xiàn)文件上傳和下載
網(wǎng)頁鏈接:http://weahome.cn/article/iespsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部