Installing Faveo Helpdesk on Windows Server
Faveo can run on the Windows Server.
-
- 1.Install IIS Server
- 2. Install PHP 8.2
- 3. Create FastCGI Handler Mapping
- 4. Install MariaDB 10.6/MySQL 8.0
- 5. Install Ioncube Loader
- 6. Install wkhtmltopdf
- 7. Upload Faveo
- 8. Configure Faveo in IIS Manager
- 9. Configure web.config file for IIS
- 10. Setting up the Database
- 11. Setting up Bindings
- 12. Set Cron & Configure Queue Driver
- 13. Install Meilisearch
- 14. SSL Installation
- 15. Install Faveo
- 16. Faveo Backup
The Installation steps listed above are to be followed to install Faveo on your Windows-IIS Server.
Before we follow the installation steps Notepad++ , Winrar & 7-Zip must be installed.
1. Install IIS Server
To install IIS Server open Server Manager and locate the Manage
button on the top right corner click on it and select Add Roles and Features
.
-
A wizard will open displaying the overview, click on
Next
, and underInstallation Type
selectRole-based and Feature-based installation
and selectNext
. -
Leave the default in
Server Selection
and clickNext
. -
Now under
Server Roles
search and enable the checkbox forWeb Server IIS
click on theAdd Features
window and proceed by clickingNext
.
- In the
Features
section locate the.NET Framework 3.5 and .NET Framework 4.7
select the packages as shown in the below image:
- In the
Role Services
section locate theApplication Development
select the packageCGI
and clickNext
.
- Click
Next
thrice to confirm the settings and finally click onInstall
. It will get the IIS installed on the server. To verify the installation, you can type the following URL in the browser
http://localhost/
2. Install PHP 8.2
- Click Here to download php 8.2.9 NTS 64bit file. Extract the zip file & “rename it to
php8.2
. Now move the renamedphp8.2
folder toC:\php8.2
.
- Open
php8.2
folder, findphp.ini-development
& rename it tophp.ini
to make it php configuration file.
- Open
php.ini
using Notepad++, add the below lines at the end of this file & save the file:
Required configuration changes for Faveo Helpdesk.
error_log=C:\Windows\temp\PHP82x64_errors.log
upload_tmp_dir="C:\Windows\Temp"
session.save_path="C:\Windows\Temp"
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
fastcgi.logging=0
max_execution_time=300
date.timezone=Asia/Kolkata
extension_dir="C:\php8.2\ext\"
upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 256M
Uncomment these extensions.
extension=bz2
extension=curl
extension=fileinfo
extension=gd
extension=imap
extension=ldap
extension=mbstring
extension=mysqli
extension=soap
extension=sockets
extension=sodium
extension=openssl
extension=pdo_mysql
2.a. Update the Environment Variable for PHP Binary
- Right click on This PC, go to Properties > Advanced System Settings > Environment Variables.
- Now click on Path > Edit > New & add copied path C:\php8.2\ here and click OK in all 3 tabs.
2.b. Enable cacert.pem File in PHP Configuration File
- Click Here to download
cacaert.pem
file. This is required to avoid the “cURL 60 error” which is one of the Probes that Faveo checks. - Extract the
cacert.pem
file and copy it toC:\php8.2
path. - Edit the
php.ini
located inC:\php8.2
, Uncommentcurl.cainfo
and add the location of cacert.pem to it as below:
curl.cainfo = "C:\php8.2\cacert.pem"
3. Create FastCGI Handler Mapping
-
Open Server Manager, locate
Tools
on the top right corner of the Dashboard, OpenInternet Information Services (IIS) Manager
. -
Now in the Left Panel of the IIS Manager select the server then you will find the
Handler Mappings
it will populate the available options to configure.
-
Open
Handler Mappings
, Click onAdd Module Mapping
in the Right Panel, Add Module Mapping window will appear. Add the below values in the respective fields. - RequestPath
*.php
- Module
FastCgiModule
- Executable (Optional)
"C:\php8.2\php-cgi.exe"
- Name
FastCGI
By default, IIS configures PHP only to accept GET, POST, and HEAD request types. Since Faveo makes use of other requests types (such as DELETE and PUT), you must manually change the PHP handler to allow them.
- Click on the
Request Restrictions
button, then switch to theVerbs
tab. Switch the radio button toAll Verbs
, then clickOK
to close the window, thenOK
again to close the other.
Note: You may be prompted with an alert to fix
the path to the PHP executable. If so, just put double-quotation marks around the path that already exists in the Executable
box and it will save successfully.
- Open notepad and copy the below lines and save the file under the path
C:\inetpub\wwwroot
asindex.php
. Make sure while saving you select all file types otherwise you will end up having the file as index.php.txt<?php phpinfo(); ?>
- Now go back to the main server configuration and select
Default Document
. OpenDefault Document
, Click onAdd
from the Right Panel, a new window will appear. Add the valueindex.php
and clickOK
.
- Now if you visit “http://localhost” in the browser you should be able to see PHP Info page.
Note: If you don’t see the above php page and see the error page like below, you need to install the relevant C++ Redistributable for Visual Studio.
Install Visual Studio (Conditional Step)
- Click Here to download the Visual Studio.
- Execute the installer to perform the required installation.
- Accept the License Agreement terms and click
Install
.
- Click
Close
to finish the installation.
4. Install MariaDB 10.6/MySQL 8.0
-
An open-source relational database management system(RDBMS) can be chosen among the MariaDB and MySQL.
- MariaDB documentation
- MySQL documentation
5. Install Ioncube Loader
-
Click Here to download Ioncube Loader zip file, Extract the zip file.
-
Copy the
ioncube_loader_win_8.2.dll
file from extracted Ioncube folder and paste it in the PHP extension directoryC:\php8.2\ext.
-
Add the below line in your php.ini file at the starting to enable Ioncube.
zend_extension = "C:\php8.2\ext\ioncube_loader_win_8.2.dll"
6. Install wkhtmltopdf
Wkhtmltopdf is an open source simple and much effective command-line shell utility that enables user to convert any given HTML (Web Page) to PDF document or an image (jpg, png, etc). It uses WebKit rendering layout engine to convert HTML pages to PDF document without losing the quality of the pages. Its is really very useful and trustworthy solution for creating and storing snapshots of web pages in real-time.
- Click Here to download 64-bit wkhtmltopdf-0.12.6-1.exe installer file.
-
Run the downloaded
wkhtmltopdf-0.12.6-1.exe installer
. -
Click
I Agree
on the license agreement screen.
- Specify the installation destination folder or leave it as default location and click
Install
- When installation is complete, click the
Close
button.
-
Now copy wkhtmltox.dll located at C:\Program Files\wkhtmltopdf\bin and paste it in C:\php8.2\ext
-
Update the Environmet variable for wkhtmltopdf.
Refer to section (2.a) for adding Environment Variable
7. Upload Faveo
- Download the Faveo Helpdesk from
https://billing.faveohelpdesk.com
and extract the contents inside IIS Root Directory.C:\inetpub\wwwroot\
- Right click on
wwwroot
directory and in the security tab click on edit and add userIUSR
. Give full permissions toIIS_IUSRS
,IUSR
andUsers
for the wwwroot folder.
Give full permissions (same as above) to the Windows Temp folder as well:
C:\Windows\Temp
8. Configure Faveo in IIS Manager
- Open IIS Manager and in the left pane, Explore till you find
Default Web Site
, select it. -
Then in the right panel, you will see the
Basic Settings
option click on it, a new window will open as shown below: - Set the
Physical Path
value to:
"%SystemDrive%\inetpub\wwwroot\public"
9. Configure web.config file for IIS
- Open notepad and copy the below lines and save the file under the path
C:\inetpub\wwwroot\public
asweb.config
. Make sure while saving you select all file types.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
- Click Here to download URL Rewrite. Click on
Install this Extension
execute the installer and clickInstall
. - URL Rewrite enables Web administrators to create powerful rules to implement URLs that are easier for users to remember and easier for search engines to find.
10. Setting up the Database
Open MariaDB 10.6 Command Line Client from the start menu and enter the password that you set while installing. Run the below commands to create a database and database user for Faveo Helpdesk.
- Create a database called ‘faveo’.
CREATE DATABASE faveo;
- Create a user called ‘faveo’ and change the
strongpassword
with the password of your choice.
CREATE USER 'faveo'@'localhost' IDENTIFIED BY 'strongpassword';
- Grant access to the faveo user to faveo Database.
GRANT ALL ON faveo.* TO 'faveo'@'localhost';
- And finally, we apply the changes and exit the database.
FLUSH PRIVILEGES;
exit
11. Setting up Bindings
-
To Open the Faveo on your domain, you must set the binding.
-
Open IIS Manager and in the left panel, Explore till you find
Default Web Site
, select it. -
Then in the right panel, you will see the
Bindings
option click on it, a new window will open select HTTP and edit the hostname to your concerned Domain as shown below:
- After adding the Bindings we need to edit the
host file
, which will present be at this location.
C:\Windows\System32\drivers\etc
- Add the below line by replacing the ‘yourdomain’ with the domain that we used in the above step.
127.0.0.1 yourdomain
- Now you can open the browser and enter the IP or Domain Name to open Faveo.
Disable WebDav (Optional)
To test the successful configuration perform some delete operations in Faveo if the Delete operation fails then the above steps are not sufficient at this point you may need to remove WebDav:
- Go to
Control Panel > Uninstall Program > Turn Windows features on or off > IIS > World Wide Web Services > Common HTTP feature > WebDAV Publishing
.
12. Set Cron & Configure Queue Driver
- To open Task scheduler press
Win+R
and typetaskschd.msc
. - On the Right pane of the Task scheduler select
Create Basic Task
enter aName
for the task and clickNext
.
-
Under
Task Trigger
, section selectDaily
and clickNext
and leave the default values inDaily
section tick theSynchronize across time zones
and proceedNext
. -
Now under the
Action
section selectStart a program
and clickNext
. - In
Start a program
copy the below value into theprogram/script field
.C:\Windows\System32\cmd.exe
-
Add the following highlighted values to the Argument :
- This is for faveo incoming mail, esacalation, faveo update check.
/c php "c:\inetpub\wwwroot\artisan" schedule:run
-
Finally under the
Finish
section select thecheckbox
to open the properties window after finish and click theFinish
button. -
In the properties window, select the
Triggers
tab, click onEdit
and select the checkbox forRepeat task every
set values to run every5 minutes
, for a duration ofindefinitely
and click onOK
.
- Similarly add two more triggers
At log on
&At startup up
, set values to run every5 minutes
, for a duration ofindefinitely
and click onOK
.
Queue Drivers
A queue driver is the handler for managing how to run a queued job, identifying whether the jobs succeeded or failed, and trying the job again if configured to do so. There are different queue lists are available to be used by the system:
- Sync (Activated by default)
- Database (this will use the database used by the application to act as a queue)
-
Redis
-
Sync, or synchronous, is the default queue driver which runs a queued job within your existing process. With this driver enabled, you effectively have no queue as the queued job runs immediately. When a small number of incoming and outgoing mail functionalities are operated by the system, this sync method can be used.
- Database driver stores queued jobs in the database. In Database queue multiple users need to work on a pool of records in a queue to process them. The records in the queue are in an unprocessed state. After the user worked on any record, that record is in completed state and is removed from the queue.
- Database Queue option lets the emails queue to execute using First in First out (FIFO) method and sends emails to the clients one by one.
-
In Database, Read and Write operations are slow because of storing data in secondary memory.
- Redis is an open-source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. This will improve system performance and is highly recommended.
-
In Redis, Read and Write operations are extremely fast because of storing data in primary memory.
- Redis Installation documentation
Note: Database queue driver must be used only in windows server. C Panel or Linux users should not use database as queue driver.
13. Install Meilisearch
MeiliSearch is an open-source search engine developed in Rust that delivers flexible search and indexing capabilities. It adeptly handles typos, supports full-text search, synonyms, and comes packed with various features, making it an ideal choice for elevating search functionalities in Faveo.
Meilisearch installation documentation
14. SSL Installation
Secure Sockets Layer (SSL) is a standard security technology for establishing an encrypted link between a server and a client. Let’s Encrypt is a free, automated, and open certificate authority.
Faveo Requires HTTPS so the SSL is a must to work with the latest versions of faveo, so for the internal network and if there is no domain for free you can use the Self-Signed-SSL.
15. Install Faveo
Now you can install Faveo via GUI Wizard or CLI
16. Faveo Backup
At this stage, Faveo has been installed, it is time to setup the backup for Faveo File System and Database. Follow this article to setup Faveo backup.