设置私有文件目录(nginx) -- 7 领域 和 files 领域 drupal 相关 的问题

Setting up the private file directory (nginx)


3
vote

问题

中文

问题

我正在尝试在LEMP堆栈上为Drupal设置私人文件目录(Ubuntu 12.04,Nginx,MySQL,PHP),我不是100%确定权限或设置,所以我以为我'D问,你应该怎么做?

到目前为止

需要是网络服务器可写的文件夹,但无法从Web访问。

示例:

位置:drupal_root / privatefiles

权限: chgrp 775 www-data privatefiles

nginx配置:(进入 /etc/nginx/sites-available/mysite ):

  server {          listen 8080;            root /srv/www/mysite/public;              location ^~ /privatefiles {              internal;            }          ...         }   

这是足够的吗?它建议在官方页面上拥有Drupal Root以外的文件夹。这会让什么不同?

英文原文

Problem

I'm trying to set-up a private file directory for Drupal on an LEMP stack (Ubuntu 12.04, nginx, MySQL, PHP), I wasn't 100% sure about the permissions or set-up so I thought I'd ask, how should you do it?

So Far

It needs to be a folder which is writable by the webserver but not accessible from the web.

Example:

Location: drupal_root/privatefiles

Permission: chgrp 775 www-data privatefiles

Nginx config: (goes into /etc/nginx/sites-available/mysite):

server {          listen 8080;            root /srv/www/mysite/public;              location ^~ /privatefiles {              internal;            }          ...         } 

Would that be enough? It recommends on the official page to have the folder outside the Drupal root. What difference would this make?

     

回答列表

1
 
vote
vote
最佳答案
 

看看 perusio的config ,它有您需要的所有信息和解释。这是一个引用:

此配置假定私有文件存储在目录下 命名为私人。我建议 sites/default/files/private sites/<sitename>/files/private 但可以在网站内的任何地方 只要您保留顶级目录名称私有。 (...) 示例:调用受保护的顶级私有文件 而不是私密。

  location ^~ /sites/default/files/protected {             internal;         }   

现在任何尝试直接访问此目录下的文件 返回404。

...

通常的实践涉及在外面设置一个目录 文件目录并为Web服务器用户提供写入权限。 (...)我认为这是不太可取的,从此感觉到现在是服务器的另一个目录。

我更愿意在文件下使用目录,这是唯一的目录 Web服务器可写,并使用上面的位置(受保护或 私有)阻止客户端访问它。

简而言之,将其标记为内部足够。

 

Have a look at Perusio's config, it has all the information and explanation you need. Here is a quote from it:

This config assumes that private files are stored under a directory named private. I suggest sites/default/files/private or sites/<sitename>/files/private but can be anywhere inside the site root as long as you keep the top level directory name private. (...) Example: Calling the top level private files directory protected instead of private.

location ^~ /sites/default/files/protected {             internal;         } 

Now any attempt to access the files under this directory directly will return a 404.

...

The usual practice involves setting up a directory outside of files directory and giving write permissions to the web server user. (...) I think it to be less advisable, in the sense that now there's another directory that is writable by the server.

I prefer to use a directory under files, which is the only one that is writable by the web server, and use the above location (protected or private) to block access by the client to it.

In short, marking it as internal is enough.

 
 
   
   

相关问题

1  如何在以编程方式在Drupal Commerce中保存订单后立即启用付款方式?  ( How to enable a payment method as soon as an order is saved in drupal commerce p ) 
我正在尝试使用Drupal Commerce创建会员网站。我创建了一种自定义表单,可以收集用户的所有帐单详细信息和成员身份类型,然后在提交创建并保存Drupal Commerce Order(已创建的产品)。 现在我想在节省订单时激活订单的支付系统,但我没有能够这样做。所有这些都应该在后端发生,我不想将用户重定向到...

0  视图#3自定义处理程序错误  ( Views3 custom handler error ) 
我正在学习如何实现客户的观点3字段处理程序。 使用以下处理程序代码: class views_handler_filter_sub_nodes extends views_handler_field_custom{ function options_form(&$form, &$form_state){...

1  WebForm上传字段模板  ( Webform upload field template ) 
for drupal的file_managed窗口小部件我创建了自己的" theme_file_widget " 功能。 我需要为webform的文件窗口小部件做同样的事情,但我不知道要使用什么主题挂钩。任何想法? ...

0  如何从$ form_state ['值']恢复表单值?  ( How to restore form values from form statevalues ) 
我在数据库中保存 $form_sate['values'] 。当我的用户返回到我想要之前所提出的值的表格。类似: function my_form($form, &$form_sate) { $form_state_saved = get_form_state_values_from_db(); $fo...

2  在第一级显示父母,然后在每个页面中的孩子[关闭]  ( Show parents at first level then child in each page ) 
关闭。这个问题需要详细信息或清晰度。它目前不接受答案。 想要改进这个问题?添加详细信息并阐明编辑此帖的问题。 关闭 1年前。 ...

2  Drupal Commerce:全面设置订单  ( Drupal commerce set order as paid in full ) 
我正在尝试从CSV文件(来自另一个非Drupal数据库)导入记录,以便我移植到Drupal 7.我有Drupal Commerce,Commerce经常性框架设置。当你经历适当的工作流程时,一切都应该起作用。但是,我有2000多个需要添加到网站并通过该过程的记录并没有意义。换句话说,我正在编写一个脚本来设置订单,然后...

0  查询将大数字视为字符串  ( Query treating large number as a string ) 
我正在尝试在表上运行一个选择语句。 该列是十进制(20,0)无符号。 可以使用SELECT语句找到大部分条目: db_query('SELECT * FROM {foo_table} WHERE foo_id = :other_id',array(':other_id' => $value)) 和$ val...

1  Drupal 7 Commerce - 当您选择一个属性时,如何样式请等待加载消息/图标?  ( Drupal 7 commerce how do you style the please wait loading message icon when y ) 
我正在尝试在Drupal 7 Commerce中选择产品的属性时,请等待加载程序图标。我正在使用chrome,我无法弄清楚右键单击inspect元素的方式,因为它加载到快速。还是有另一种方式来暴露这一点?我只需要与它关联的HTML和类。 ...

1  设置订单已完成  ( Setting an order as completed ) 
在代码中,我尝试标记为已完成的订单。我在 hook_commerce_payment_order_paid_in_full 中这样做 function my_module_commerce_payment_order_paid_in_full($transaction) { $orderid = $tran...

2  我的菜单只会半翻译  ( My menu will only semi translate ) 
我在我的网站上创建了一个菜单,并使用了使用功能来导出它。前2个菜单项转换为不同的语言,但第三项不是。 第三个单词是联系人。我已经去了 99887664 并搜索联系人。我得到了以下内容。 在我的特征底部,它有 // Translatables // Included for use with stri...

5  jQuery.cookie.js仅用于jQuery更新模块的经过身份验证的用户  ( Jquery cookie js is loaded only for authenticated users by jquery update module ) 
jquery.cookie.js仅为经过身份验证的用户加载,我无法真正弄清楚为什么。 页面缓存已禁用。 任何想法? ...

0  订购用户使用中使用  ( Ordering users for use in view ) 
我有一个显示每个用户的数据的视图。现在我希望能够订购用户。 一个解决方案是将一个名为 99887661 的新字段添加一个新的字段到用户内容类型,然后使用此字段对视图进行排序,但最好是通过拖放来执行此操作来自 admin/people 配置页面。 我安装了权重模块,但似乎支持为用户设置权重。 是否有一个可以执行此操作的...

2  删除内容类型现在无法删除或编辑该类型的节点,但它在网站上可见  ( Deleted the content type now cannot delete or edit node of that type but it is ) 
我有一个我可以在我的网站上看到的节点,但是当我尝试编辑它时,我收到错误: Notice: Undefined index: my_node_name_node_form in drupal_retrieve_form() (line 763 of /home/sites/my-site-url/includes/...

0  Drupal PHP视图 - 如何引用嵌套Braket阵列变量? [关闭]  ( Drupal php views how to reference nested braket array variables ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

7  如何设置活动注册和PayPal付款?  ( How to setup event registration and paypal payment ) 
我们有活动,我们为他们注册。 实体注册模块是为此目的而安装的,它的工作很大。现在,由于这些事件是付费事件,我们也希望实现 PayPal付款方法。 问题是我们需要 combine 注册过程和paypal付款到一个过程中。也就是说,用户应该点击按钮寄存器&amp;支付,应该做2件事: 注册用户的事件(这已作为模块)...

0  登录后如何将用户发送到结算信息页面?  ( How to send user to the billing information page immediately after logging in ) 
我正在使用Drupal Commerce创建订阅站点。我的网站在创建帐户后使用LogintoBoggan登录用户。我计划以编程方式创建订单,然后将用户重定向到可以输入信用卡信息和计费信息的页面。我还没有想出如何将它们重定向到该页面。任何帮助,将不胜感激。 ...

-3  Drupal 7 DPM一个对象,但不确定如何渲染递归变量?  ( Drupal 7 dpm an object but not sure how to render a recursion variable ) 
在Drupal 7视图PHP。我正在尝试呈现和字符串替换内容:path字段使用全局php视图字段。我拥有的问题是我不确定如何引用内容:Path字段为$行 - &gt; path显示空值。我可以看到内容:$ View对象中存在path变量,但它显示递归。当我进行打印时,如何将递归值渲染递归值? ...

0  在区域设置中找不到“语言”  ( Languages is not found in regional settings ) 
我安装了drupal commons 7.3.4, 我想添加额外的语言。我试着遵循本手册: https://docs.acquia。 COM /文章/添加 - 另一种语言 - 您的drupal-7-site#language go to Configuration > Regional and langu...

1  仅显示某些幻灯片仅在幻灯片上的特定URL上  ( Show certain slides only on specific urls on views slideshow ) 
使用视图幻灯片,我希望能够控制内容类型"幻灯片" 节目的节点,具体取决于什么网址,任何想法?例如,在页面前面,我想在节点/ 43上显示Slide1和Slide2,我想显示Slide3和Slide4。 具有单独的视图不是一个选项,因为这是一款位于数百页和不同内容类型的滑块。 ...

7  在视图表中组合两个列  ( Combining two columns in views table ) 
我继续拥有不同的要求,我总是陷入意见。这次要求是组合视图表的两个列/字段,但以不同的行显示它。 EG:我当前的字段:(下面是添加的图片) 表中视图的输出(由逗号分隔的昵称多值) 同时将多个值字段放在不同的行中 在表设置中,我确实组合了两个字段,如 i.e。 name 和 ick name...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.