Windows 7 and Windows Server 2008

Note

You must move the data directory outside of your public root (See advanced install settings)

This section describes how to install ownCloud on Windows with IIS.

It assumes that you have a vanilla, non-IIS enabled Windows machine – Windows 7 or Server 2008. After enabling IIS, the steps are essentially identical for Windows 7 and Windows Server 2008.

For installing ownCloud physical access or a remote desktop connection is required. You should leverage MySQL as the backend database for ownCloud. If you do not want to use MySQL, it is possible to use Postgres or SQLite instead. Microsoft SQL Server is not yet support.

Enabling SSL is not yet covered by this section.

Note

If you make your desktop machine or server available outside of your LAN, you must maintain it. Monitor the logs, manage the access, apply patches to avoid compromising the system at large.

There are 4 primary steps to the installation, and then a 5th step required for configuring everything to allow files larger than the default 2MB.

  1. Install IIS with CGI support – enable IIS on your Windows machine.
  2. Install PHP – Grab, download and install PHP.
  3. Install MySQL – Setup the MySQL server manager and enable ownCloud to create an instance.
  4. Install ownCloud – The whole reason we are here!
  5. Configure upload sizes and timeouts to enable large file uploads – So that you can upload larger files.

Activate IIS with CGI Support

Windows 7

  1. Go to Start –> Control Panel –> Programs.
  2. Under Programs and Features, there is link titled Turn Windows Features on and Off. Click on it.
  3. There is a box labeled Internet Information Services, expand it.
  4. Expand World Wide Web Services and all the folders underneath.
  5. Select the folders as illustrated in the picture below to get your IIS server up and running.
Windows features required for ownCloud on Windows 7

Windows Features required for ownCloud on Windows 7

You do not need an FTP server running, so you should tune that feature off for your server. You definitely need the IIS Management Console, as that is the easiest way to start, stop, restart you server, as well as where you change certificate options and manage items like file upload size. You must check the CGI box under Application Development Features, because CGI is how you enable PHP on IIS.

You have to turn off WebDAV publishing or the Windows WebDAV conflicts with the ownCloud WebDAV interface. This might already be turned off for you, just make sure it stays that way. The common HTTP features are the features you would expect from a web server. With the selections on this page, IIS will now serve up a web page for you.

Restart IIS by going to the IIS manager (Start –> IIS Manager).

Select your website, and on the far right side is a section titled Manage Server. Make sure that the service is started, or click Start to start the services selected. Once this is complete, you should be able to go to a web browser and navigate to http://localhost.

This should open the standard IIS 7 splash page, which is just a static image that says your web server is running. Assuming you were able to get the splash page, it is safe to say your web server is now up and running.

Continue by installing PHP.

Windows Server 2008

  1. Go to Start –> Control Panel –> Programs.
  2. Under Programs and Features, there is link titled Turn Windows Features on and Off. Click on it.
  3. This will bring up the Server Manager.
  4. In the server manager, Click on Roles, and then click Add Roles.
  5. Use the Add Roles Wizard to add the web server role.
server roles required for ownCloud

Server roles required for ownCloud

  1. Make sure that, at a minimum, the same boxes are checked in this wizard that are checked in the Windows 7 Section. For example, make sure that the CGI box is checked under Application Development Features, and that WebDAV Publishing is turned off. With Remote Desktop Sharing turned on, the detailed role service list looks like the figure “Role Services”.
  2. Restart IIS by going to the IIS manager (Start –> IIS Manager).
  3. Select your website, and on the far right side is a section titled Manage server. Make sure that the service is started, or click “Start” to start the services selected.
  4. Once this is complete, you should be able to go to a web browser and type localhost. This should open the standard IIS 7 splash page, which is just a static image that says your web server is running. Assuming you were able to get the splash page, it is safe to say your web server is now up and running.

Continue by installing PHP.

Installing PHP

  1. Go to the PHP for Windows download page.

Note

The instructions below are for IIS only. If using a different server software, make sure to follow the hints on “Which version do I choose” on the left hand side of the page linked above.

  1. Download the Installer for PHP 5.3, the “VC9 Non Thread Safe” version, either 32 or 64 bit, depending on your system.
  2. Run the downloaded installation executable.
  3. Read the license agreement, agree, select an install directory.
  4. Then select IIS FastCGI as the install server.
  5. Take the default selections for the items to install, and click next. Then click install.
  6. Once the installer is finished, PHP is installed.

Continue by installing MySQL.

Installing MySQL

This part installs MySQL on your Windows machine.

  1. Point your browser to http://dev.mysql.com/downloads/ and download the latest community edition for your OS – the 32 or 64 bit version. Please download the MSI Installer as it will make life easier.
  2. Once downloaded, install MySQL (5.5 at the time of writing). Select the Typical installation.
  3. When that finishes, check the box to launch the MySQL Instance Configuration Wizard and click Finish.
  4. Select a standard configuration, as this will be the only version of MySQL on this machine.
  5. Select to install as a windows service, and Check the Launch the MySQL Server Automatically button.
  6. Select the modify security settings box on the next page, and enter a password you will remember. You will need this password when you configure ownCloud.
  7. Uncheck “enable root access from remote machines” for security reasons.
  8. Click execute, and wait while the instance is created and launched.
  9. Click Finish when this is all complete.

Take particular note of your MySQL password, as the user name root and the password you select will be necessary later on in the ownCloud installation. As an aside, this link is an excellent resource for questions on how to configure your MySQL instance, and also to configure PHP to work with MySQL. This, however, is not strictly necessary as much of this is handled when you download ownCloud.

More information in this topic can be found in a tutorial on the IIS web site.

Installing ownCloud

  1. Download the latest version of ownCloud from http://owncloud.org/download.
  2. It will arrive as a tar.bz2 file, and I recommend something like jZip for a free utility to unzip it.
  3. Once you have the ownCloud directory unzipped and saved locally, copy it into your wwwroot directory (probably C:\inetpub\wwwroot).

Note

You cannot install directly into the directory wwwroot from jzip, as only the administrator can unzip into the wwwroot directory. If you save it in a different folder, and then move the files into wwwroot in windows explorer, it works. This will install ownCloud locally in your root web directory. You can use a subdirectory called owncloud, or whatever you want – the www root, or something else.

  1. It is now time to give write access to the ownCloud directory to the ownCloud server: Navigate your windows explorer over to inetpub/wwwroot/owncloud (or your installation directory if you selected something different).
  2. Right click and select properties. Click on the security tab, and click the button “to change permissions, click edit”.
  3. Select the “users” user from the list, and check the box “write”.
  4. Apply these settings and close out.

Continue by following the Installation Wizard. Select MySQL as the database, and enter your MySQL database user name, password and desired instance name – use the user name and password you setup during MySQL installation, and pick any name for the database instance.

Ensure Proper HTTP-Verb handling

IIS must pass all HTTP and WebDAV verbs to the PHP/CGI handler, and must not try to handle them by itself. If it does, syncing with the Desktop and Mobile Clients will fail. Here is how to ensure your configuration is correct:

  1. Open IIS Manager7.
  2. In the Connections bar, pick your site below Sites, or choose the top level entry if you want to modify the machine-wide settings.
  3. Choose the Handler Mappings feature click PHP_via_fastCGI.
  4. Choose Request Restrictions and find the Verbs tab.
  5. Ensure All Verbs is checked.
  6. Click OK.
  7. Next, choose Request Filtering feature from IIS Manager.
  8. Ensure that all verbs are permitted (or none are forbidden) in the Verbs tab.

Also, ensure that you did not enable the WebDAV authoring module, since ownCloud needs to be able to handle WebDAV on the application level.

Configuring ownCloud, PHP and IIS for Large File Uploads

Before going too nuts on ownCloud, it is important to do a couple of configuration changes to make this a useful service for you. You will probably want to increase the max upload size, for example. The default upload is set to 2MB, which is too small for even most MP3 files.

To do that, simply go into your PHP.ini file, which can be found in your C:\Program Files (x86)\PHP folder. In here, you will find a PHP.ini file. Open this in a text editor, and look for a few key attributes to change:

  • upload_max_filesize – change this to something good, like 1G, and you will get to upload much larger files.
  • post_max_size – also change this size, and make it larger than the max upload size you chose, like 1G.

There are other changes you can make, such as the timeout duration for uploads, but for now you should be all set in the PHP.ini file.

Now you have to go back to IIS manager and make one last change to enable file uploads on the web server larger than 30MB.

  1. Go to the start menu, and type iis manager.

  2. Open IIS Manager Select the website you want enable to accept large file uploads.

  3. In the main window in the middle double click on the icon Request filtering.

  4. Once the window is opened you will see a bunch of tabs across the top of the far right,

    Select Edit Feature Settings and modify the Maximum allowed content length (bytes)

  5. In here, you can change this to up to 4.1 GB.

Note

This entry is in BYTES, not KB.

You should now have ownCloud configured and ready for use.