从服务器运行时,我从PHP中收到以下错误
PHP警告:重命名(var / www / vhosts / example.com / httpdocs / dir1 / papers / 1632813138.pdf,var / www / vhosts / example.com / httpdocs / dir1 / papers / 00000006.pdf):否这样/var/www/vhosts/example.com/httpdocs/dir1/processes/generate_abstract_pages.php中第98行的文件或目录
如果我再运行
less var/www/vhosts/example.com/httpdocs/dir1/papers/1632813138.pdf
在命令行上,它将找到文件。我正在复制/粘贴地址,因此不会意外更改它。
我也尝试过给重命名一个../papers/1632813138.pdf
的相对路径,但是给出了相同的错误。
相对路径在浏览器中运行时有效,https://example.com/dir1/processes/generate_abstract_pages.php
<?php
$abstract["pdf_url"] = "1632813138.pdf";
$abstractId = 7;
$pdfFilename = str_pad($abstractId, 8, "0", STR_PAD_LEFT).".pdf";
$fileRenameSuccess = rename("../papers/$abstract[pdf_url]","../papers/$pdfFilename");
echo ($fileRenameSuccess ? "y":"n");
正在运行PHP 7.1.23运行CentOSLinux 7.6.1810(核心)
您可以使用getcwd()获取脚本的当前工作目录,以确保该脚本正在从您期望的相对路径起作用的位置运行。
您需要以“ /”开头的绝对路径才能工作。