<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://protegewiki.stanford.edu/index.php?action=history&amp;feed=atom&amp;title=Protege4ClientServerAdvancedInstallation</id>
		<title>Protege4ClientServerAdvancedInstallation - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://protegewiki.stanford.edu/index.php?action=history&amp;feed=atom&amp;title=Protege4ClientServerAdvancedInstallation"/>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4ClientServerAdvancedInstallation&amp;action=history"/>
		<updated>2026-04-29T09:11:32Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4ClientServerAdvancedInstallation&amp;diff=11348&amp;oldid=prev</id>
		<title>Tredmond at 00:10, October 25, 2012</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4ClientServerAdvancedInstallation&amp;diff=11348&amp;oldid=prev"/>
				<updated>2012-10-25T00:10:42Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 00:10, October 25, 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hopefully at the point of the release we will have automated the installation process and these pages will be for advanced users.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The purpose of these pages is to allow people to know what is installed by the server installation and what options the user can change.&amp;#160; The installation setup is slightly different depending on whether the operating system in question is Linux, OS X or Windows.&amp;#160; The Protege Server should run on other platforms as well though we don't yet support its installation.&amp;#160; The key things that need to be figured out for an installation to some other platform is obtaining a version of Java that is at least Java 1.6 and determining how to make the Protege 4 Server start at boot time.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The purpose of these pages is to allow people to know what is installed by the server installation and what options the user can change.&amp;#160; The installation setup is slightly different depending on whether the operating system in question is Linux, OS X or Windows.&amp;#160; The Protege Server should run on other platforms as well though we don't yet support its installation.&amp;#160; The key things that need to be figured out for an installation to some other platform is obtaining a version of Java that is at least Java 1.6 and determining how to make the Protege 4 Server start at boot time.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tredmond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4ClientServerAdvancedInstallation&amp;diff=11346&amp;oldid=prev</id>
		<title>Tredmond: Created page with &quot;Hopefully at the point of the release we will have automated the installation process and these pages will be for advanced users.  The purpose of these pages is to allow people t...&quot;</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4ClientServerAdvancedInstallation&amp;diff=11346&amp;oldid=prev"/>
				<updated>2012-10-25T00:02:43Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;Hopefully at the point of the release we will have automated the installation process and these pages will be for advanced users.  The purpose of these pages is to allow people t...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Hopefully at the point of the release we will have automated the installation process and these pages will be for advanced users.&lt;br /&gt;
&lt;br /&gt;
The purpose of these pages is to allow people to know what is installed by the server installation and what options the user can change.  The installation setup is slightly different depending on whether the operating system in question is Linux, OS X or Windows.  The Protege Server should run on other platforms as well though we don't yet support its installation.  The key things that need to be figured out for an installation to some other platform is obtaining a version of Java that is at least Java 1.6 and determining how to make the Protege 4 Server start at boot time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The protege user account ==&lt;br /&gt;
&lt;br /&gt;
Depending on a Protege server administrators security requirements, the administrator may want to run the Protege server from a unprivileged system account.  The Protege server does not require very many privileges; it requires a port that it can listen on and read-write access to a portion of a file-system.  For this reason, in accordance with the [http://en.wikipedia.org/wiki/Principle_of_least_privilege principle of least privilege], it makes sense that the Protege server should run under a user account that is distinct from any user account (so that it does not necessarily have the potential to access any user files) and distinct from any account with special privileges such as the root account.&lt;br /&gt;
&lt;br /&gt;
We are attempting to support this mode of operation in the scripts that allow Protege to run as a daemon on the linux, os x and windows platforms.  The current status is that &lt;br /&gt;
* on linux we have worked out all the details and have the Protege server running on a couple of machines in this mode. The command to create a system user on a linux system is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    adduser --system --home /usr/local/protege protege&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on os x we have the ability to specify the user account which will run the Protege server but we have not yet determined how to make the account be a system user account rather than a regular user account.  There is a discussion on [http://bsteinberg.wordpress.com/ the web] describing how use directory services to make this work and I seem to remember this from the days when I was an OS X user.&lt;br /&gt;
* we don't yet have the daemon mode working at all on windows.&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a linux system the following files and directories are created:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;/usr/local/protege&amp;lt;/i&amp;gt; which contains the core server installation in the subdirectory &amp;lt;i&amp;gt;server&amp;lt;/i&amp;gt;, the users data files in the subdirectory &amp;lt;i&amp;gt;data&amp;lt;/i&amp;gt; and some&lt;br /&gt;
        command line utilities in the &amp;lt;i&amp;gt;bin&amp;lt;/i&amp;gt; subdirectory.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;/etc/init.d/protege&amp;lt;/i&amp;gt; which is a script that ensures that the Protege server is started at boot time.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;/etc/default/protege&amp;lt;/i&amp;gt; which is a properties file that configures the init.d script above.  The user will have to modify this file before the server will run correctly.&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;/etc/rc#.d/K20protege&amp;lt;/i&amp;gt; which are a symbolic links to &amp;lt;i&amp;gt;/etc/init.d/protege&amp;lt;/i&amp;gt; for '#=0,1,6'.  These scripts ensure that the Protege Server is correctly shutdown when the computer stopped.  In particular, if the sever has unsaved files (a temporary condition in any case) this script give Protege some time to save the files before the system exits. The best way to configure these files is through the &amp;lt;i&amp;gt;update-rc.d&amp;lt;/i&amp;gt; script as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;/etc/rc#.d/S20protege&amp;lt;/i&amp;gt; which are symbolic links to &amp;lt;i&amp;gt;/etc/init.d/protege&amp;lt;/i&amp;gt; for '#=2,3,4,5'.  These scripts ensure that the Protege Server is running at system startup.  The best way to configure these files is through the &amp;lt;i&amp;gt;update-rc.d&amp;lt;/i&amp;gt; script as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
When the protege server runs, it will write some system logs to the &amp;lt;i&amp;gt;/var/log/protege&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
An example&amp;lt;i&amp;gt;/etc/default/protege&amp;lt;/i&amp;gt; file looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# This file goes into /etc/default/protege and holds the default&lt;br /&gt;
# settings for the Protege Server.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
HOSTNAME=`hostname`&lt;br /&gt;
PROTEGE_SERVER_PREFIX=/usr/local/protege&lt;br /&gt;
PROTEGE_SANDBOX_USER=tredmond&lt;br /&gt;
JAVA_CMD=/usr/local/java/jdk1.7.0_06/bin/java&lt;br /&gt;
PID=/var/log/protege/PID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The HOSTNAME property tells the Protege 4 server how to advertise itself to the world.  On a well-configured desktop or server machine that is not hidden by NAT the given setting will probably usually work.  If not an IP address works fine.  The sandbox user parameter is important and must be changed.  This is a user account on the system that is set aside to run the server.  Ideally it would be a user account that has minimal access to the system as a whole excepting write access to the &amp;lt;i&amp;gt;/usr/local/protege/data&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
To configure the &amp;lt;i&amp;gt;/etc/rc#.d&amp;lt;/i&amp;gt; scripts first install the &amp;lt;i&amp;gt;protege&amp;lt;/i&amp;gt; script into the &amp;lt;i&amp;gt;/etc/init.d&amp;lt;/i&amp;gt; directory.  Then run the &amp;lt;i&amp;gt;sudo update-rc.d protege defaults&amp;lt;/i&amp;gt; command and the results should look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Neptune:init.d% sudo update-rc.d protege defaults&lt;br /&gt;
 Adding system startup for /etc/init.d/protege ...&lt;br /&gt;
   /etc/rc0.d/K20protege -&amp;gt; ../init.d/protege&lt;br /&gt;
   /etc/rc1.d/K20protege -&amp;gt; ../init.d/protege&lt;br /&gt;
   /etc/rc6.d/K20protege -&amp;gt; ../init.d/protege&lt;br /&gt;
   /etc/rc2.d/S20protege -&amp;gt; ../init.d/protege&lt;br /&gt;
   /etc/rc3.d/S20protege -&amp;gt; ../init.d/protege&lt;br /&gt;
   /etc/rc4.d/S20protege -&amp;gt; ../init.d/protege&lt;br /&gt;
   /etc/rc5.d/S20protege -&amp;gt; ../init.d/protege&lt;br /&gt;
Neptune:init.d% &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Server can be stopped with the command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               sudo /etc/init.d/protege stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The Server can be started with the command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               sudo /etc/init.d/protege start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The Server can be restarted with the command &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               sudo /etc/init.d/protege restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following command will make a first cut estimation of the status of the server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               sudo /etc/init.d/protege status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OS X==&lt;br /&gt;
&lt;br /&gt;
On an OS X system the following files and directories are created:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;/usr/local/protege&amp;lt;/i&amp;gt; which contains the core server installation in the subdirectory &amp;lt;i&amp;gt;server&amp;lt;/i&amp;gt;, the users data files in the subdirectory &amp;lt;i&amp;gt;data&amp;lt;/i&amp;gt; and some&lt;br /&gt;
        command line utilities in the &amp;lt;i&amp;gt;bin&amp;lt;/i&amp;gt; subdirectory.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;/Library/LaunchDaemons/org.protege.owl.server.plist&amp;lt;/i&amp;gt; which is a launchctl file to ensure that the Protege Server starts at boot time. This file must be editted in order for the Protege Server to be automatically started.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
When the protege server runs, it will write some system logs to the &amp;lt;i&amp;gt;/var/log/protege&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
The launchctl file is as follows&lt;br /&gt;
[[File:OSXServerPList.png||org.protege.owl.server.plist]]&lt;br /&gt;
&lt;br /&gt;
The two options that must be changed are circled in the above diagram.  As in the Linux case, the username is the user under which the Protege server runs.  Ideally this user has minimal access to the system as a whole except for write access to the &amp;lt;i&amp;gt;/usr/local/protege/data&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;/var/log/protege&amp;lt;/i&amp;gt; directories.&lt;br /&gt;
&lt;br /&gt;
The server can be restarted with the command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sudo launchctl stop org.protege.owl.server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It will restart immediately after stopping.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be determined.&lt;/div&gt;</summary>
		<author><name>Tredmond</name></author>	</entry>

	</feed>