我第一次尝试使用OpenShift。我正在使用php-5.4盒式磁带,而我正在尝试部署Laravel项目。
Laravel要求文档根指向public
目录,该目录是框架结构的一个级别。
我在这里看到,php cartridge的document root可以是几个特定目录名中的任何一个,包括public
。
我遇到的问题是:
将项目推送到服务器后,openshift似乎无法自动查看公用文件夹。
我无法找到webroot本身。
当我进入服务器并列出我的主目录时,我看到以下目录:
app-deployments
app-root
git
php
我认为php
目录是文档谈论的根目录,但这似乎包含了php本身的所有配置。然后我认为它可能在app-root
或app-deployments
,但是当我grep -Ri Laravel *
在我家里寻找任何带有laravel的东西(如自述)时我却得不到任何回报(我知道我推到了服务器上。
我知道并相信php盒式磁带将以编程方式查找目录名称以确定根目录,但是它从何处开始搜索?如果文档中的特定位置有解释,有人可以发布链接,因为我似乎无法找到它吗?
修改
我还应该补充一点,我试图检查正常的linux /var/www
目录,但是我的用户无法访问该目录而我的用户却没有(至少我不认为)我是一个超级用户。
答案 0 :(得分:1)
尝试:grep -D skip -Ri Laravel *
它应该在:~/app-root/runtime/repo
答案 1 :(得分:0)
来自PHP Repo Layout上的OpenShift的Developer Portal条目:
Apache DocumentRoot是构成从Web可见的主文档树的目录,它是根据存储库代码中公共目录的存在按以下顺序选择的:
1. php/ # for backward compatibility with OpenShift Origin v1/v2
2. public/ # Zend Framework v1/v2, Laravel, FuelPHP, Surebert etc.
3. public_html/ # Apache per-user web directories, Slim Framework etc.
4. web/ # Symfony etc.
5. www/ # Nette etc.
6. ./ # Drupal, Wordpress, CakePHP, CodeIgniter, Joomla, Kohana, PIP etc.
存储库代码中可能存在的以下应用程序目录将添加到PHP include_path中,因此在调用require(),include()和其他文件I / O函数时会自动搜索:
- lib/
- libs/
- libraries/
- src/
- misc/
- vendor/
- vendors/