在生产服务器上,我的nfs挂载路径正在转换为本地目录。有什么想法会导致这种情况吗?
parameters.yml
parameters:
files_dir: /n/fs/web/doc_root/Files
services.yml
app.file_manager:
class: AppBundle\Services\FileManager
public: true
arguments: ["%files_dir%"]
FileManager.php
namespace AppBundle\Services;
class FileManager
{
/**
* @var string
*/
private $filesDir;
/**
* FileManager constructor.
* @param $filesDir
*/
public function __construct($filesDir)
{
echo $filesDir;
$this->filesDir = $filesDir;
}
}
预期输出:/ n / fs / web / doc_root / Files
实际输出:/ opt / rh / httpd24 / root / var / www / sites / web / doc_root / Files
编辑:
所以看起来在容器类文件appProdProjectContainer.php中,files_dir参数被视为动态参数。
$dir = __DIR__;
for ($i = 1; $i <= 5; ++$i) {
$this->targetDirs[$i] = $dir = dirname($dir);
}
...
case 'files_dir': $value = ($this->targetDirs[5].'/Files'); break;
这会破坏我的环境,因为在命令行上安装composer的上下文中__DIR__的输出是/ n / fs / web / doc_root,但是当通过apache运行时__DIR__的输出是/ opt / rh / httpd24 / root / var / www / sites / web / doc_root。我能够删除var / cache / prod目录并通过Web浏览器或curl访问该站点来重新生成容器类文件,它解决了我的问题。有更好的方法吗?