In order to remove conflict with my wordpress installation, I've decided to have webwork as a subdomain, under Ubuntu 14.04 server.
All I should need to do is to add a file in my /etc/apache2/sites-available folder called webwork.conf, which includes something like:
<VirtualHost *:80>
ServerName webwork.myserver.net
ServerAdmin webmaster@localhost
DocumentRoot /opt/webwork/webwork2
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
I then used a2ensite to enable this subdomain, and restarted apache2.
But I get the message
You don't have permission to access / on this server.
and the reason is that apache looks for an index file (index.html, index.php, index.cgi or whatever) in the root folder of the subdomain. And there isn't such a file in /opt/webwork/webwork2.
Note that the server webwork.myserver.net exists: I set it up with my webhosting people, and ping confirms its existence.
I just need the directory in DocumentRoot to point to something that apache2 can serve up.
Can anybody advise me here?
Thanks,
Alasdair
Unfortunately because of the way WeBWorK is structured, this might not be simple.
WeBWorK is built in such a way that all pages are served via perl handlers, and not through actual html or php files. When you navigate to a webwork URL, apache intercepts it, and runs some perl code compiled into the apache process to generate the page.
The first implication is that there isn't a DocumentRoot for WeBWorK. If you want a workaround, you can set up a dummy DocumentRoot directory which redirects to /webwork2/, then the perl should kick in and serve the appropriate page.
Because WeBWorK code is compiled directly into the apache processes, I suspect that even if you set up virtual hosts they will all serve WeBWorK pages if you navigate to /webwork2/. It may be possible to specify perl handlers for only certain virtual hosts, but this would involve some messing with httpd.conf and webwork-apache2.conf.
Danny
Thanks for your reponse.
In actual fact I worked it out: in the virtual host file, I need to include the extra line which sources the necessary config file, thus:
<VirtualHost *:80>
ServerName webwork.myserver.net
ServerAdmin webmaster@localhost
DocumentRoot /opt/webwork/webwork2
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include conf-enabled/webwork.conf
</VirtualHost>
This file contains all the perl handlers needed, and apache manages fine with it. I also had to change the server url in webwork's site.conf:
$server_root_url = "http://webwork.myserver.net";
This means that the url for accessing webwork is
http://webwork.myserver.net/webwork2
but that's OK, even though it would have been nice not to have to have the extra webwork2 at the end. (I tried changing the value of $webwork_url to "", but that didn't work.)
In actual fact I worked it out: in the virtual host file, I need to include the extra line which sources the necessary config file, thus:
<VirtualHost *:80>
ServerName webwork.myserver.net
ServerAdmin webmaster@localhost
DocumentRoot /opt/webwork/webwork2
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include conf-enabled/webwork.conf
</VirtualHost>
This file contains all the perl handlers needed, and apache manages fine with it. I also had to change the server url in webwork's site.conf:
$server_root_url = "http://webwork.myserver.net";
This means that the url for accessing webwork is
http://webwork.myserver.net/webwork2
but that's OK, even though it would have been nice not to have to have the extra webwork2 at the end. (I tried changing the value of $webwork_url to "", but that didn't work.)