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