Re-Enabling the Wiki Service on Multiple Sites after Upgrading to Mavericks

Photo of Greg
Photo by ralphbijker - http://flic.kr/p/4WHXzW

In an earlier article, I explained how to use the OS X Server wiki service on more than one virtual host on the same machine. After the upgrade to Mavericks, the web app which enables the multi-site wiki service needs to be updated.

The set of relevant configuration files which will let us know how OS X Server provides the wiki service has changed slightly from Mountain Lion. (See “How to Enable Wiki Services on Multiple Virtual Hosts with Mountain Lion Server”.) Now we need to peek at the following .conf files in .../apache2/ along with their corresponding .plist files from .../apache2/webapps/:

  • httpd_webdavsharing.conf
  • httpd_corecollaboration_shared.conf
  • httpd_corecollaboration_webauth.conf
  • httpd_corecollaboration_wiki.conf

These are the underlying web apps:

  • com.apple.webapp.webdavsharing
  • com.apple.webapp.collabd
  • com.apple.webapp.auth
  • com.apple.webapp.wiki

Using exactly the same method as before — namely, running through each and creating a single consolidated web app which does the combined job — we can come up with a revised wiki enabler web app that can be used to provide the wiki service to multiple individual virtual hosts, just with a single checkbox in the Server interface.

Here’s the combined result, which in this case I’ve named net.mulhauser.webapp.wikienabler.3, with the “3” intended to distinguish it as being intended specifically for version 3.x of Server.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>name</key>
	<string>net.mulhauser.webapp.wikienabler.3</string>
	<key>displayName</key>
	<string>Wiki enabler 3</string>
	<key>includeFiles</key>
	<array>
		<string>/Library/Server/Web/Config/apache2/httpd_corecollaboration_shared.conf</string>
		<string>/Library/Server/Web/Config/apache2/httpd_webdavsharing.conf</string>
		<string>/Library/Server/Web/Config/apache2/httpd_corecollaboration_wiki.conf</string>
		<string>/Library/Server/Web/Config/apache2/httpd_corecollaboration_webauth.conf</string>
	</array>
		<key>launchKeys</key>
		<array>
			<string>com.apple.collabd.preview</string>
			<string>com.apple.collabd.quicklook</string>
			<string>com.apple.collabd.expire</string>
			<string>com.apple.collabd.stats</string>
			<string>com.apple.collabd.notifications</string>

		</array>
		<key>proxies</key>
		<dict>
			<key>/__collabd/preview</key>
			<dict>
				<key>keysAndValues</key>
				<string></string>
				<key>path</key>
				<string>/__collabd/preview</string>
				<key>urls</key>
				<array>
					<string>http://localhost:4444/preview</string>
				</array>
			</dict>
			<key>/wiki</key>
			<dict>
				<key>keysAndValues</key>
				<string></string>
				<key>path</key>
				<string>/wiki</string>
				<key>urls</key>
				<array>
					<string>http://localhost:4444/app-context/wiki</string>
				</array>
			</dict>
			<key>/wiki/files/download</key>
			<dict>
				<key>keysAndValues</key>
				<string></string>
				<key>path</key>
				<string>/wiki/files/download</string>
				<key>urls</key>
				<array>
					<string>http://localhost:4444/files</string>
				</array>
			</dict>
			<key>/wiki/files/upload</key>
			<dict>
				<key>keysAndValues</key>
				<string></string>
				<key>path</key>
				<string>/wiki/files/upload</string>
				<key>urls</key>
				<array>
					<string>http://localhost:4444/upload_file</string>
				</array>
			</dict>
			<key>/wiki/ipad</key>
			<dict>
				<key>keysAndValues</key>
				<string></string>
				<key>path</key>
				<string>/wiki/ipad</string>
				<key>urls</key>
				<array/>
			</dict>
			<key>/collabdproxy</key>
			<dict>
				<key>path</key>
				<string>/collabdproxy</string>
				<key>urls</key>
				<array>
					<string>http://localhost:4444/svc</string>
				</array>
			</dict>
			<key>/__collabd/streams/activity</key>
			<dict>
				<key>path</key>
				<string>/__collabd/streams/activity</string>
				<key>urls</key>
				<array>
					<string>http://localhost:4444/streams/activity</string>
				</array>
			</dict>
			<key>/auth</key>
			<dict>
				<key>keysAndValues</key>
				<string></string>
				<key>path</key>
				<string>/auth</string>
				<key>urls</key>
				<array>
					<string>http://localhost:4444/auth</string>
				</array>
			</dict>
		</dict>
		<key>requiredModuleNames</key>
		<array>
			<string>proxy_module</string>
			<string>xsendfile_module</string>
			<string>headers_module</string>
			<string>expires_module</string>
			<string>deflate_module</string>
			<string>rewrite_module</string>
			<string>bonjour_module</string>
		</array>

		<key>requiredWebAppNames</key>
		<array>
			<string>com.apple.webapp.collabd</string>
			<string>com.apple.webapp.auth</string>
			<string>com.apple.webapp.wiki</string>
			<string>com.apple.webapp.webdavsharing</string>
		</array>

		<key>requiresSSL</key>
		<false/>
		<key>sslPolicy</key>
		<integer>0</integer>
		<key>startCommand</key>
		<string></string>
		<key>stopCommand</key>
		<string></string>

		<key>installationIndicatorFilePath</key>
    	    <string>/Library/Server/Web/Config/apache2/extra/httpd_grm_wikienabler_3.conf</string>

</dict>
</plist>

Just as with the original version, saving this as a .plist and dropping it into .../apache2/webapps/, along with a blank httpd_grm_wikienabler_3.conf placed in .../apache2/extra/ will provide a wiki service that can be enabled easily for any individual virtual host via the Server interface.

For this to work, of course, the wiki service as a whole does still need to be switched on in the Server interface. And as with the original version, don’t forget that the ProxyPass directives for /wiki/ that get placed in the default site’s .conf file once the server’s wiki service is enabled will bypass .htaccess digest authentication protection, so it’s preferable to use a web app for that job instead. (See “Password Protecting Directories, Files or Whole Domains via a Web App”.)

All material on this site is carefully reviewed, but its accuracy cannot be guaranteed, and some suggestions offered here might just be silly ideas. For best results, please do your own checking and verifying. This specific article was last reviewed or updated by Greg on .

This site is provided for informational and entertainment purposes only. It is not intended to provide advice of any kind.