dtpd58676 2013-11-17 13:12
浏览 45
已采纳

Laravel 4,Ubuntu,Apache将文件作为所有者上传到一个文件夹中

I am using Laravel 4. My operating system is Ubuntu 13.10 and my local server is Apache. What I am trying to do is upload a file to the server under a folder. The problem is that both the folder and the file after the upload are owned by 'nobody' while I want me to be the owner and have all the permissions too. I don t want a solution such as cmod or chown on terminal cause both of them need to be executed every time I upload a file. Even if a change the owner of the folder uploads the files are not correctly uploaded.Here is my form(firstform.blade.php):

<form action="{{ url('form-handler') }}" method="POST" enctype="multipart/form-data" />

<input  name="foo"  /><br/>
<input  name="baz"  />
<br/>

<input type="file" name="book" />
<input type="submit" value="Send" />


</form>

And here is my routes:

Route::get('firstform', function()
{
    return View::make('firstform');


});


Route::post('form-handler',function(){

$name = Input::file('book')->getClientOriginalName();

$path=Input::file('book')->move('uploads/', $name);

echo 'The file uploaded is : ' .$name .' and is located in ' .$path ;


});
  • 写回答

2条回答 默认 最新

  • dongzou7134 2013-11-18 12:49
    关注

    You should change the user under which the Apache server is operating - to the same user as yours. That makes the files/folders created by Apache owned by the proper user (you) so they are accessible.

    To switch the Apache user in Ubuntu you have to:

    Edit the envvars file:

    sudo gedit /etc/apache2/envvars
    

    Change:

    export APACHE_RUN_USER=nobody
    export APACHE_RUN_GROUP=nobody
    

    to:

    #export APACHE_RUN_USER=nobody
    #export APACHE_RUN_GROUP=nobody
    export APACHE_RUN_USER=YOUR_USER_NAME
    export APACHE_RUN_GROUP=YOUR_USER_NAME
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?