Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从命令行拒绝对php的权限_Php_Phpexcel - Fatal编程技术网

从命令行拒绝对php的权限

从命令行拒绝对php的权限,php,phpexcel,Php,Phpexcel,我正在尝试使用crontab运行脚本,但即使在命令行中也无法使其正常工作。脚本在浏览器中运行良好,它在reports/文件夹中创建了一些excel文件,该文件夹由apache所有。脚本文件归我所有:john 当我尝试从命令行运行脚本时,我收到以下警告,并且excel文件无法创建。我尝试了完整的路径,但得到了相同的结果 这是我尝试从命令行运行脚本后得到的结果 public_html]$ php include/tests/mailme.php PHP Warning: fopen(report

我正在尝试使用crontab运行脚本,但即使在命令行中也无法使其正常工作。脚本在浏览器中运行良好,它在
reports/
文件夹中创建了一些excel文件,该文件夹由
apache
所有。脚本文件归我所有:
john

当我尝试从命令行运行脚本时,我收到以下警告,并且excel文件无法创建。我尝试了完整的路径,但得到了相同的结果

这是我尝试从命令行运行脚本后得到的结果

public_html]$ php include/tests/mailme.php

PHP Warning:  fopen(reports/4-March.xls): failed to open stream: Permission denied in /home/john/public_html/PHPExcel/Shared/OLE/PPS/Root.php on line 90

Warning: fopen(reports/4-March.xls): failed to open stream: Permission denied in /home/john/public_html/PHPExcel/Shared/OLE/PPS/Root.php on line 90
PHP Fatal error:  Uncaught exception 'Exception' with message 'Can't open reports/4-March.xls. It may be in use or protected.' in /home/john/public_html/PHPExcel/Shared/OLE/PPS/Root.php:93
Stack trace:
#0 /home/john/public_html/PHPExcel/Writer/Excel5.php(233):   PHPExcel_Shared_OLE_PPS_Root->save('reports/...')
#1 /home/john/public_html/include/generate_daily_excel.inc(401): PHPExcel_Writer_Excel5->save('reports/...')
#2 /home/john/public_html/include/tests/mailme.php(41): generateDailyExcel('04-02-2013')
#3 {main}
 thrown in /home/john/public_html/PHPExcel/Shared/OLE/PPS/Root.php on line 93

Fatal error: Uncaught exception 'Exception' with message 'Can't open reports/4-March.xls. It may be in use or protected.' in /home/john/public_html/PHPExcel/Shared/OLE/PPS/Root.php:93
Stack trace:
#0 /home/john/public_html/PHPExcel/Writer/Excel5.php(233): PHPExcel_Shared_OLE_PPS_Root->save('reports/...')
#1 /home/john/public_html/include/generate_daily_excel.inc(401): PHPExcel_Writer_Excel5->save('reports/...')
#2 /home/john/public_html/include/tests/mailme.php(41): generateDailyExcel('04-02-2013')
#3 {main}
  thrown in /home/john/public_html/PHPExcel/Shared/OLE/PPS/Root.php on line 93

我假设如果我更改
报告的所有者
,则不允许保存浏览器版本。我不熟悉linux和权限。

当您从命令行运行php代码时。脚本使用您的用户权限运行,而不是www数据用户权限

您应该以root用户身份运行脚本(不推荐),或者更改文件权限:

  sudo chown yourUser:www-data file
  sudo chmod 664 file
您应该对目录执行几乎相同的操作:

  sudo chown yourUser:www-data dir
  sudo chmod 775 dir

当您从命令行运行php代码时。脚本使用您的用户权限运行,而不是www数据用户权限

您应该以root用户身份运行脚本(不推荐),或者更改文件权限:

  sudo chown yourUser:www-data file
  sudo chmod 664 file
您应该对目录执行几乎相同的操作:

  sudo chown yourUser:www-data dir
  sudo chmod 775 dir

错误非常明确地向您说明:“未能打开流:权限被拒绝”。当您从命令行运行此命令时,您就是用户“john”(我假设是从您的主路径)。用户“john”是否具有在报告目录中写入的权限

ls -al /home/john/public_html/reports
实际报告目录的权限是什么

ls -al /home/john/public_html/reports

错误非常明确地向您说明:“未能打开流:权限被拒绝”。当您从命令行运行此命令时,您就是用户“john”(我假设是从您的主路径)。用户“john”是否具有在报告目录中写入的权限

ls -al /home/john/public_html/reports
实际报告目录的权限是什么

ls -al /home/john/public_html/reports

我不会特别推荐以root身份运行,除非您必须以root身份运行,否则不要以root身份运行。我不会特别推荐以root身份运行,除非您必须以root身份运行,否则不要以root身份运行