摘要:下載以及相關模塊下載以及模塊并解壓。接著執行,即可完成編譯安裝。運行需要的配置首先需要在的上下文里增加一條這條是表示每上傳就更新進度信息。
這篇文章的目的是在編譯安裝Nginx的同時,安裝upload和uploadprogress模塊,以及運行Drupal 8所需要的配置。
由于使用的是Raspberry pi 3B,所以系統用的Raspbian,Debian/Ubuntu應該也是差不多的。
下載Nginx以及相關模塊
下載Nginx以及PCRE模塊并解壓。
進入解壓后的Nginx目錄,執行命令:
./configure --prefix=/etc/nginx --with-pcre=/tmp/pcre-8.39 --sbin-path=/usr/sbin/nginx --with-http_ssl_module --add-module=/mnt/sources/nginx-upload-module --add-module=/mnt/sources/nginx-upload-progress-module
第一個參數是Nginx安裝位置,第二個參數是PCRE源文件位置,第三個參數是Nginx啟動的位置。
接著執行 make && make install,即可完成編譯安裝。
Drupal 8運行需要的配置
首先需要在nginx.conf的http上下文里增加一條:
upload_progress proxied 1m;
這條是表示每上傳1M就更新進度信息。
接下來就是Drupal網站的配置:
server { server_name d8.local.dev; root /mnt/apps/d8; client_max_body_size 1024m; client_body_buffer_size 2048k; # 這個地址是用來獲取進度信息,proxied是http里配置的信息。 location ^~ /progress { report_uploads proxied; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Very rarely should these ever be accessed outside of your lan location ~* .(txt|log)$ { allow 192.168.0.0/16; deny all; } location ~ ..*/.*.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Allow "Well-Known URIs" as per RFC 5785 location ~* ^/.well-known/ { allow all; } location ~ (^|/). { return 403; } location / { # 如果是自定義字段上傳的文件,就交由下面的代碼處理 if ($query_string ~ "X-Progress-ID=d+"){ rewrite ^(.*)$ /upload; } try_files $uri /index.php?$query_string; # For Drupal >= 7 } location /upload { # 文件上傳成功后,處理文件的頁面。index.php是Drupal的入口文件 upload_pass /index.php; # 是否附帶QueryString參數 upload_pass_args on; # 臨時存放文件的目錄 upload_store /tmp/nginx_upload; # 存放上傳狀態的目錄,用于斷點續傳 upload_state_store /tmp/nginx_state; # 臨時目錄的權限 upload_store_access user:rw group:rw all:rw; # 提交到后臺的字段名 set $upload_field_name "tmp_file"; # 文件名 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"; # 文件MD5信息 upload_aggregate_form_field "$upload_field_name.md5" "$upload_file_md5"; # 文件大小 upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size"; # 原樣提交到后臺的表單字段,這里表示所有字段都提交給PHP upload_pass_form_field "^.*$"; upload_cleanup 400 404 499 500-505; } # Don"t allow direct access to PHP files in the vendor directory. location ~ /vendor/.*.php$ { deny all; return 404; } location ~ ".php$|^/update.php" { fastcgi_split_path_info ^(.+?.php)(|/.*)$; include fastcgi_params; fastcgi_param HTTP_PROXY ""; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param QUERY_STRING $query_string; fastcgi_intercept_errors on; # PHP 7 socket location. fastcgi_pass 127.0.0.1:9090; track_uploads proxied 60s; } location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7 try_files $uri @rewrite; } # Handle private files through Drupal. Private file"s path can come # with a language prefix. location ~ ^(/[a-z-]+)?/system/files/ { # For Drupal >= 7 try_files $uri /index.php?$query_string; } location ~* .(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } }
在Drupal 8里的具體應用,請看我的另一篇文章:Drupal 8 結合Nginx實現文件上傳進度,提高上傳文件性能
程序員客棧,匯集各路碼農,找到你的靠譜技術小伙伴 http://t.cn/RXz4ONT
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39468.html
摘要:自帶的上傳進度功能,需要擴展支持。于是想到利用的模塊來實現上傳進度。接下來使用模塊替代的文件上傳功能,目的是提高文件上傳的性能。而且可以避免上傳大文件時執行超時引起錯誤。新建一個對象,把設置成剛上傳的文件。 Drupal 8 自帶的上傳進度功能,需要PECL uploadprogress library擴展支持。安裝后發現效果還是不太好,不知道什么原因,進度條不能正常顯示,而且上傳較大...
摘要:自帶的上傳進度功能,需要擴展支持。于是想到利用的模塊來實現上傳進度。接下來使用模塊替代的文件上傳功能,目的是提高文件上傳的性能。而且可以避免上傳大文件時執行超時引起錯誤。新建一個對象,把設置成剛上傳的文件。 Drupal 8 自帶的上傳進度功能,需要PECL uploadprogress library擴展支持。安裝后發現效果還是不太好,不知道什么原因,進度條不能正常顯示,而且上傳較大...
摘要:測試運行多次并取平均值。文章數量測試的基準測試基準測試結果基準測試結果基準測試結果基準測試結果基準測試結果基準測試結果不支持再次成為冠軍請注意的運行環境需要或以上。同時,再次不能正常工作并拋出錯誤。 showImg(https://segmentfault.com/img/remote/1460000013690286); 我們每年都會嘗試深入了解不同版本的 PHP 和 HHVM 在各...
摘要:前言近期在準備搭建一個全棧開發的社區,之前由于沒有云服務器搭建經驗,這篇文章做一下相關的記錄,后續再深入學習研究。或用戶登錄云服務器,直接使用命令進行連接,如云服務器公網,然后輸入用戶的初始密碼,即可完成登錄。云服務器的端口,必須填。 前言 近期在準備搭建一個vue.js+node.js全棧開發的社區,之前由于沒有云服務器搭建經驗,這篇文章做一下相關的記錄,后續再深入學習研究。本文不局...
閱讀 2565·2021-10-11 10:58
閱讀 1148·2021-09-29 09:34
閱讀 1486·2021-09-26 09:46
閱讀 3830·2021-09-22 15:31
閱讀 730·2019-08-30 15:54
閱讀 1458·2019-08-30 13:20
閱讀 1251·2019-08-30 13:13
閱讀 1486·2019-08-26 13:52