canvas和Apache权限被拒绝

我正在为canvas-LMS设置一个testing服务器。 但是,当我按照生产启动指南中的所有步骤安装所有要求并执行所有初始设置后尝试访问它时,我遇到了可怕的“您无权访问/在此服务器上”。

Apache提供的默认网站工作正常,但是当我注册canvas时,我得到了错误。 这里是我的/ etc / apache2 / sites-available / canvas:

<VirtualHost *:80> ServerName canvas.example.com ServerAlias files.canvas.example.com ServerAdmin [email protected] DocumentRoot /var/canvas/public RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteCond %{REQUEST_URI} !^/health_check RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] ErrorLog /var/log/apache2/canvas_errors.log LogLevel warn CustomLog /var/log/apache2/canvas_access.log combined SetEnv RAILS_ENV production <Directory /var/canvas/public> Allow from all Options -MultiViews </Directory> </VirtualHost> <VirtualHost *:443> ServerName canvas.example.com ServerAlias files.canvas.example.com ServerAdmin [email protected] DocumentRoot /var/canvas/public ErrorLog /var/log/apache2/canvas_errors.log LogLevel warn CustomLog /var/log/apache2/canvas_ssl_access.log combined SSLEngine on BrowserMatch "MSIE [2-6]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown # the following ssl certificate files are generated for you from the ssl-cert package. SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SetEnv RAILS_ENV production <Directory /var/canvas/public> Allow from all Options -MultiViews </Directory> </VirtualHost> 

这是默认文件。 我根本没有改变任何东西。 开始指南: https : //github.com/instructure/canvas-lms/wiki/Production-Start

我对Apache很陌生,所以任何帮助表示赞赏! 谢谢!

从使用Rails / Passenger和直接处理Canvas的经验来看,对于Passenger处理的请求,我听起来并不是这样,结果是试图拉取/ var / canvas / public的目录列表,这可能是基于你所得到的错误而被禁用的。

我会仔细检查Passenger模块是否正在加载; 你应该喝啤酒来确认:

apachectl -t -D DUMP_MODULES

你应该看到“passenger_module(shared)”的一些东西 – 如果你需要确保它被加载的话。 如果你确实看到了它,你需要确保它被正确configuration(你可能需要设置PassengerRoot和PassengerDefaultRuby指令,具体取决于你的部署)。 您可能想重新访问关于此的生产启动文档部分了解更多细节。

如果你仍然有麻烦,请告诉我。 我对处理canvas有点熟悉。

编辑:

如果Passenger实际上已经加载,但仍然显示一个空白页面,可能正如我之前提到的,有一些Passengerconfiguration指令丢失。 我可以通过从我的passenger.conf中注释掉PassengerDefaultRuby和PassengerRoot指令来复制你描述的行为。 您希望看到的path将因您的系统/部署方法而异,但为了给您一个想法,以下是使用RVM的cPanel沙箱服务器上的样子:

PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p448/gems/passenger-4.0.19 PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p448/ruby

你应该能够通过重新运行passenger-install-apache2-module来得到这些指令的理想设置 – 它应该给你输出的指令。

您可以在Passenger文档中看到更多关于这些指令的信息。

我可以在这里基地,但这听起来像这可能是你的问题。