Manually Install using IIS 8

Windows Server 2012
  1. Using Server Manager, install IIS 8 and IIS Manager.

    • Go to Manage > Add Roles and Features.
    • Select Role-based or feature-based installation.
    • In Server Selection, leave the default (local) server selected.
    • In Server Roles, select Web Seirver (IIS)
    • In Features, make sure to select .NET Framework 3.5 Features and .NET Framework 4.5 Features
  2. Using the Microsoft Web Platform Installer, install:

    • PHP (v 7.x recommended; make sure you get an x86, non-thread safe version)
    • URL Rewrite 2.0

    This may download other products, including earlier versions of PHP. If you get a message about PHP Manager installation failing, don’t worry.

  3. PHP should now be enabled as a FastCGI application in IIS. Look in IIS Manager and click FastCGI Settings.

    ../_images/fast-cgi-installed.png

    Ensure that the version of PHP you want to use (usually, the newest one) is listed.

    ../_images/fast-cgi-settings.png

    • If the version isn’t listed, right-click on the FastCGI Settings pane and click Add Application. Enter the path to php-cgi.exe for the version of PHP you want to use with these settings:

      ../_images/adding-fast-cgi.png

  4. Check that PHP is installed correctly by running the following from the command prompt:

php.exe -v

You should get output similar to this:

../_images/command-prompt-check.png

If your system has multiple versions of PHP installed, the output of this command confirms which version is actually being used.

  1. Deskpro uses all HTTP request verbs (GET, POST, DELETE, PUT), but by default the PHP Manager only enables GET and POST. You need to enable the others:
  • Open the IIS Manager
  • Click on your Site in the left navigation pane.
  • Double click on the “Handler Mappings” icon
  • Double click on the PHP handler. It will have a name like “PHP_via_FastCGI”.
  • Click on the “Request Restrictions...” button
  • Switch to the “Verbs” tab, and switch the selection to “All Verbs”.
  • Click OK, then then OK again to save.
  1. Install the latest MySQL server; an easy way to do this is using MySQL Installer, select Server Only (despite the name, this also installs the command line client) and set the configuration type as Server Machine.

    During the install, you will be prompted to create a root MySQL password; remember this.

    You will also be able to set the MySQL server so that it runs as a service and starts automatically.

Install Deskpro

  1. Download the latest version of Deskpro On-Premise fromhttps://www.deskpro.com/downloads/deskpro.zip.

  2. Create a directory C:\deskpro

  3. Unzip the contents of the deskpro.zip file into C:\deskpro.

  4. Create a Site with the physical path being C:\deskpro\www.

    Or you can edit the Default Web Site by right clicking it in the left navigation pane, and then select Manage Website > Advanced Settings.

    From the Advanced Settings window, edit the Physical Path to be C:\deskpro\www

  5. Set up a Scheduled Task to run php-win.exe with C:\deskpro\bin\cron as an argument once per minute.

    To do this, open Task Scheduler and under the “Actions” section on the right, select Create Task. Use the following details:

    • Name: Deskpro Task
    • Security Options: * Select the user who owns the files (e.g. your currently logged-in user) * Select “Run whether user is logged on or not”
    • Go to the Triggers tab and click “New” * Select “Daily” * Under Advanced, input “Repeat task every every 1 minute indefinitely”
    • Go to the Actions tab and click “New” * Action: Start a program * Program: Click Browse and locate php-win.exe (typically C:Program Files (x86)PHP<version>php-win.exe). * Arguments: bin\cron * Start In: C:\deskpro

    See also: Setting up a Windows Scheduled Task.

  6. Install Deskpro by opening the command prompt and running the special install command:

cd C:\deskpro
"C:\path\to\php.exe" bin\install

You will need to use the same path to PHP that you used while configuring the scheduled task. You will instead use the php.exe executable for the install command as php-win.exe which is used in the scheduled task will not create an interactive output to run the install.

  1. In your browser, go to http://localhost (or wherever IIS is serving the Deskpro site), and follow the final steps.

    If you get a warning that HTTP methods are being blocked by your server, go to the IIS Manager Handler Mappings panel, edit the settings for php files, click Request Restrictions and select All verbs (more details here).

Final steps

For production, you should ensure that write access to the files in wwwroot is restricted to the IIS worker process using Application Pool Identities.

You should also have Deskpro access the database through a MySQL user with more limited privileges than the root user. On Windows systems, you will have a shortcut to the command line MySQL client where you can do this.

Log in as the root MySQL user and run the following MySQL commands:

CREATE USER 'deskpro_user'@'127.0.0.1' IDENTIFIED BY 'password1';

(replacing “password1” with a more complex password of your choice).

GRANT ALL PRIVILEGES ON deskpro.* TO  'deskpro_user'@'127.0.0.1';

(this assumes the default database name ‘deskpro’ is being used: if you have changed the Deskpro database, you should replace ‘deskpro’ in the deskpro.* part above with whatever name you used).

FLUSH PRIVILEGES

Now edit config/config.database.php to use the new MySQL user and password.

We recommend that you now install Elasticsearch to enable greatly improved search capabilities for agents and users.

Troubleshooting

You should be able to troubleshoot most installation problems by following the installation wizard’s instructions.

If you run into another problem, browse or search the installation section of the DeskPRO Knowledgebase.

These articles cover the most common problems that can prevent you getting to the installation wizard stage:

“The FastCGI process exited unexpectedly” error

“The program can’t start because MSCVR110.dll is missing” error

Invalid php.ini directive error

Can’t change invalid upload_tmp_dir value

“Existing tables were detected in your database” error

Configuring HTTP verbs on IIS

Data directory is not writable

Published: 20/03/2017

Last updated: 19/12/2017