2013-11-17 13:12
浏览 43

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"  />

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


And here is my routes:

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



$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


    export APACHE_RUN_USER=nobody
    export APACHE_RUN_GROUP=nobody


    #export APACHE_RUN_USER=nobody
    #export APACHE_RUN_GROUP=nobody
    解决 无用
    打赏 举报
  • doubo3384 2013-11-17 13:34

    firstly you should create root folder in which you are suppose to upload file into it change group of that root dir..

    chgrp dirname  groupname

    and make www-data apache user member of that group then you will be able to access that file..

    解决 无用
    打赏 举报

相关推荐 更多相似问题