【问题标题】:Generate a file by PHP通过 PHP 生成文件
【发布时间】:2017-01-19 21:48:54
【问题描述】:

我想通过batch.php生成一个文件,链接到this page中的按钮:

<?php
  echo "Hello world!";
  'cat 123 > uploads/cat.txt';
  echo "Bye world!";
?> 

单击按钮会启动batch.php,但是,cat.txt 不会在服务器端生成。

有谁知道如何解决这个问题?也许我需要为该文件夹设置一些权限?

编辑 1

ps aux|grep -E 'apache|www-data|http|php' 返回:

root     12269  0.0  2.1 278256 10796 ?        Ss   Aug02   3:38 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)                    
www-data 12301  0.0  0.8  97728  4044 ?        S    Aug02   3:27 nginx: worker process
www-data 12302  0.0  0.8  98104  4296 ?        S    Aug02   3:54 nginx: worker process
www-data 12303  0.0  0.9  97940  4520 ?        S    Aug02   3:46 nginx: worker process
www-data 12304  0.0  0.9  98132  4544 ?        S    Aug02   3:47 nginx: worker process
timur    14888  0.0  0.1  11712   932 pts/0    S+   15:04   0:00 grep --color=auto -E apache|www-data|http|php
www-data 18748  0.0  8.7 298196 43668 ?        S    Sep07   0:12 php-fpm: pool www                                                       
www-data 18749  0.0  6.4 286660 32432 ?        S    Sep07   0:11 php-fpm: pool www                                                       
www-data 21100  0.0  8.3 296204 42048 ?        S    Sep05   1:02 php-fpm: pool www    

ls -l 返回:

total 20
-rw-r--r-- 1 root     root       84 Sep 12 08:33 batch.php
-rw-r--r-- 1 timur    timur    5120 Sep 12 09:00 generateFile.exe
-rw-rw-r-- 1 timur    timur     138 Sep 12 08:28 index.html
drwxrwxrwx 2 timur    timur    4096 Sep 12 15:03 uploads

我将777 授予uploads,并尝试了所有可能的所有者名称和所有者组(即timur:timurwww-data:www-dataroot:root),但它们都不起作用......

【问题讨论】:

  • 你的网站对 generateFile 所在的文件夹有写权限吗?
  • 是的,这也是我的猜测......那么我在哪里可以修改这些权限?
  • 我不知道,我看不到您的文件夹结构或您放置 generateFile.exe 的位置。
  • index.htmlbatch.phpgenerateFile.exe 都在同一个文件夹 /var/www/matrixandcompany.com/html 中。
  • 您对服务器有什么访问权限? SSH、FTP?假设至少 FTP 检查文件夹和文件的 chmod,出于测试目的将它们设置为 777(尽管不要永远保留它)。你可能会得到 774 甚至 744。

标签: php apache nginx file-upload file-permissions


【解决方案1】:

关键是写exec('cat 123 &gt; uploads/cat.txt')shell_exec('cat 123 &gt; uploads/cat.txt')而不是'cat 123 &gt; uploads/cat.txt'

那么,虽然drwxrwxrwx 2 timur timur 4096 Sep 12 15:03 uploads 有效,但将755www-data:www-data(保留给PhP)分配给uploads 更正确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多