如果我有这样的目录结构:
/
/libraries/
/other-nonpublic-stuff/
/webroot/
Run Code Online (Sandbox Code Playgroud)
我如何设置/webroot/document_root,以便只在我的herokuapp的URL下提供它的内容?
我认为Procfile可能是实现这一目标的方法,但它并没有真正记录在案.已经尝试过像
web: php webroot/
Run Code Online (Sandbox Code Playgroud)
要么
web: sh boot.sh webroot/
Run Code Online (Sandbox Code Playgroud)
要么
web: sh webroot/
Run Code Online (Sandbox Code Playgroud)
在Procfile,但我总是最终得到Heroku push rejected, no Cedar-supported app detected
当我在根目录中使用"index.php"推送一个repo时,它工作正常,heroku ps只显示一个运行"boot.sh"的Web进程,但即使这样,Procfile也会被忽略而heroku服务于"/"而不是"/根目录".所以不是真的暗示我如何设置我的Procfile:
Process State Command
------- --------- ----------
web.1 up for 2h sh boot.sh
Run Code Online (Sandbox Code Playgroud)
我通过登录到我的"实例"的控制台heroku run bash并做了一个cat boot.sh.它包含这个:
sed -i 's/Listen 80/Listen '$PORT'/' /app/apache/conf/httpd.conf
for var in `env|cut -f1 -d=`; do
echo "PassEnv $var" >> /app/apache/conf/httpd.conf;
done
touch /app/apache/logs/error_log
touch /app/apache/logs/access_log
tail -F /app/apache/logs/error_log &
tail -F /app/apache/logs/access_log &
export LD_LIBRARY_PATH=/app/php/ext
export PHP_INI_SCAN_DIR=/app/www
echo "Launching apache"
exec /app/apache/bin/httpd -DNO_DETACH
Run Code Online (Sandbox Code Playgroud)
所以Heroku push rejected, no Cedar-supported app detected错误的问题(当没有.php文件在"/"时显然可以通过更改PHP_INI_SCAN_DIR为"/ app/www/webroot"来解决,但那是a)不可能和b)无法解决使用"/webroot"作为docroot.为了解决这个问题,我还必须修改"/app/apache/conf/httpd.conf".
有什么建议?:)
谢谢,乔希
小智 5
你需要使用mod_rewrite来提供Heroku上"webroot"的内容.在.htaccess文件中尝试以下操作:
RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /webroot/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/webroot/.*$
RewriteRule ^(.*)$ /webroot/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /webroot/index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)
为了解决"没有检测到Cedar支持的应用程序"错误,我刚刚在我的存储库的根目录中创建了一个新的index.php文件.这个文件包含什么并不重要,但我添加了一些提醒来记录我自己的应用程序中的这些设置细节.
希望有所帮助!
它实际上归结为创建自定义boot.sh并指向Procfile以在默认情况下运行它.我在github上将它与一个准系统结构放在一起:https://github.com/winglian/Heroku-PHP
它包括一个使用你自己的conf文件的钩子,所以随意玩它并让我知道!
| 归档时间: |
|
| 查看次数: |
4756 次 |
| 最近记录: |