如果我有这样的目录结构:
在
当我推送一个在根目录下有"index.php"文件的仓库时,一切都正常,
因此,当根目录中没有.php文件时,出现“Heroku push rejected, no Cedar-supported app detected”错误的问题显然可以通过将“PHP_INI_SCAN_DIR”更改为“/app/www/webroot”来解决,但这是不可能的,并且不能解决使用“/webroot”作为文档根目录的问题。为了解决这个问题,我还需要修改“/app/apache/conf/httpd.conf”。
有什么建议吗? :)
谢谢, Josh
/
/libraries/
/other-nonpublic-stuff/
/webroot/
我该如何将/webroot/
设置为文档根目录,以便在我的Heroku应用程序的URL下仅提供其内容?
我认为Procfile
可能是实现这一目标的方法,但它并没有很好地记录。已经尝试了以下方法:
web: php webroot/
或者
web: sh boot.sh webroot/
或者
web: sh webroot/
在
Procfile
中指定了,但我总是得到Heroku push rejected, no Cedar-supported app detected
的错误提示。当我推送一个在根目录下有"index.php"文件的仓库时,一切都正常,
heroku ps
命令只显示一个运行着 "boot.sh" 的web进程,但即使如此,Procfile
显然被忽略了,而 heroku 运行的是 "/" 而不是 "/webroot"。 因此无法提示我如何设置Procfile
:Process State Command
------- --------- ----------
web.1 up for 2h sh boot.sh
我通过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
因此,当根目录中没有.php文件时,出现“Heroku push rejected, no Cedar-supported app detected”错误的问题显然可以通过将“PHP_INI_SCAN_DIR”更改为“/app/www/webroot”来解决,但这是不可能的,并且不能解决使用“/webroot”作为文档根目录的问题。为了解决这个问题,我还需要修改“/app/apache/conf/httpd.conf”。
有什么建议吗? :)
谢谢, Josh