# Install on Linux with Apache HTTP Server

This step-by-step guide is intended to outline the main steps for the WebSpellChecker application installation on a Linux-based server with Apache HTTP Server. In this guide we will run you through the whole installation process from downloading installation packages to embedding spell/grammar checking functionality to your web-based system.

Before you begin:

1. Check if your environment configuration meets [Installation requirements](/v6.11.1/deployment/installation-requirements/installation-requirements.md).
2. Acknowledge with [Architecture diagram](/v6.11.1/deployment/installation-requirements/architecture-diagram.md).
3. Make sure that you have a valid license:

   First of all you need to get a valid License Ticket ID to proceed with the license activation. Depending on the server license type, it may be a commercial (e.g. 1 year) or a 30-day trial license. Except the validity period, there is no difference between ticket types from the technical perspective.

   **Good to know:**

   * If you do not have a license yet, you can obtain it using one of the following ways:
     * request [a 30-day trial license](https://webspellchecker.com/free-trial/) for evaluation and testing purposes;
     * acquire a commercial license by contacting our [sales department](https://webspellchecker.com/contact-us/).
   * Starting from v5.8.1 released on December 30, 2020, the license is no longer validated by or tied to the hardware characteristics of a machine or server. License for older versions of the packages is hardware-dependent.&#x20;
   * If you have problems with your license, [contact us](https://webspellchecker.com/contact-us/).

* [1. Download installation package](#installonlinuxwithapachehttpserver-1.downloadinstallationpackage)
* [2. Install WebSpellChecker](#installonlinuxwithapachehttpserver-2.installwebspellchecker)
* [3. Activate license](#installonlinuxwithapachehttpserver-3.activatelicense)
* [4. Finalize installation](#installonlinuxwithapachehttpserver-4.finalizeinstallation)
* [5. Configure grammar engine](#installonlinuxwithapachehttpserver-5.configuregrammarengine)
* [6. Verify operability](#installonlinuxwithapachehttpserver-6.verifyoperability)
  * WebSpellChecker Server Status
  * WebSpellChecker Server Version
  * WebSpellChecker Demo Samples
* [7. Further steps](#installonlinuxwithapachehttpserver-7.furthersteps)
  * Option A. Integration guides
  * Option B. Demo samples

### 1. Download installation package <a href="#installonlinuxwithapachehttpserver-1.downloadinstallationpackage" id="installonlinuxwithapachehttpserver-1.downloadinstallationpackage"></a>

Download WebSpellChecker Server installation package for the corresponding version of your operating system (OS). By default, it is provided on a license purchase or renewal. You can also request it by [contacting us](https://webspellchecker.com/contact-us/).&#x20;

```
wget https://files.webspellchecker.com/6.x.x.x/xxxxxxxxxxxxxxxxx/wsc_app_x64_6.x.x.x_xx.tar.gz
```

{% hint style="info" %}
If you are running the installation without root privileges, make sure all necessary directories have **write** permissions for the correct installation process.
{% endhint %}

{% hint style="info" %}
Should you run WebSpellChecker software on the OS with an ARM architecture, kindly inform our team. This will enable us to furnish you with the suitable installation package, available from version 5.31.0.0 onward.
{% endhint %}

### 2. Install WebSpellChecker <a href="#installonlinuxwithapachehttpserver-2.installwebspellchecker" id="installonlinuxwithapachehttpserver-2.installwebspellchecker"></a>

2.1. Unpack the WebSpellChecker Server installation package (e.g. wsc\_app\_x64\_6.x.x.x\_xx.tar.gz).

```
tar -xvzf wsc_app_x64_6.x.x.x_xx.tar.gz
```

2.2. Switch to the directory with the unpacked installation package using cd ./WSC\_6.x.x.x/ and execute automated\_install.pl script.

```
sudo perl automated_install.pl
```

2.3. Before proceeding with installation, read and confirm the terms and conditions of [WebSpellChecker Software License Agreement](https://webspellchecker.com/legal/software-license-agreement/).

```
Welcome to the WebSpellChecker (WSC) application installation wizard!

Before you go ahead with the installation, make sure that your environment configuration meets the WebSpellChecker application system requirements.
If you are all set, please follow the wizard instructions.

PLEASE MAKE SURE YOU ARE ACKNOWLEDGED AND ACCEPT THE WEBSPELLCHECKER SOFTWARE LICENSE AGREEMENT TERMS AND CONDITIONS PUBLISHED ON THE WEBSPELLCHECKER OFFICIAL WEBSITE.

BY DOWNLOADING OR INSTALLING THIS SOFTWARE, YOU ACCEPT THE FULL TERMS OF THIS AGREEMENT.

IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT, YOU MUST NOT INSTALL OR USE THE WEBSPELLCHECKER SOFTWARE.
```

2.4. Select installation path. The default installation path is **/opt/WebSpellChecker**. However, you may decide to change it and set a desired one. As soon as you define the installation path, press **Enter** to proceed.

```
STEP 1. CHECK CONFIGURATION SETTINGS

Install path [/opt/WebSpellChecker]:
```

2.5. Select the products you want to install. By default, [WProofreader add-on for RTEs and HTML controls](https://demos.webspellchecker.com/) (Option 1) is selected. &#x20;

```
STEP 2. SELECT PRODUCTS

        1. WProofreader add-on for RTEs and HTML controls (CKEditor 4/5, Froala Editor, TinyMCE, Quill, etc.)
        2. WebSpellChecker API
        3. SCAYT plugin for CKEditor 4
        4. Select all products

List the products you want to install. Use the comma as separator. [1]:
```

2.6. Confirm whether you want Demo Samples and Documentation to be installed. If so, press **Enter** to proceed.

```
STEP 3. INSTALL DEMO SAMPLES AND DOCUMENTATION

Do you want to install Demo Samples and Documentation? Enter 'y' or 'n' [y]:
```

2.7. During this step, the installer copies files to the selected installation directory.

```
STEP 4. COPY THE FILES TO THE INSTALLATION DIRECTORY
```

2.8. Define permissions. Set appropriate permissions for the application. Define the files' ownership, a user and group in the **user:group** format (e.g. 33:33).&#x20;

```
STEP 5. DEFINE THE APPLICATION PERMISSIONS

Specify the files ownership, user and group in the 'user:group' format.
It can be the same user and group which are used for Apache HTTP Server, i.e. 'www-data:www-data' or '33:33'.

Specify the files owner as user:group:
```

2.9. Select languages to be downloaded and installed. <mark style="color:orange;">Here</mark> you can find the list of supported languages with their shortcodes.&#x20;

{% hint style="info" %}
An internet connection is required to download language models started by the WebSpellChecker version 5.30.0.0.
{% endhint %}

```
STEP 6. SELECT LANGUAGES TO INSTALL

Select the language you'd like to install by entering their respective language IDs (e.g. en_US). You can input multiple IDs separated by commas.
Enter the language ID(s):
```

{% hint style="info" %}
If you choose the shortcode that is not appropriate you will receive one of the two messages:

1\) Error. The language ID 'xx\_XX' is not recognized.→ In case you used incorrect shortcode. So you will need recheck the list of the specified shortcodes and fix the mistake.

2\) Warning. The language ID 'xx\_XX' has been skipped and won't be installed. → For all AI-based languages that you can chose on the next step.
{% endhint %}

{% hint style="info" %}
On the next step you can install AI-based languages for the appropriate languages that were chosen in step 2.9. For example, if you want to install all the available AI-based languages you have to chose English, German and Spanish languages in the step 2.9. For example: en\_US, en\_GB, de\_DE, es\_ES. Otherwise you will see the comment \[Not available in the selected configuration] opposite the proposed AI-based model in the step 2.10 and will have to restart installation from scratch to choose the language on step 2.9.
{% endhint %}

2.10. Select AI-based languages to be downloaded and installed. By default, English language model \[1] and English autocomplete model \[2] will be installed. It enables improved proofreading capabilities compared to traditional dictionaries or rules-based engines. If selected, the installer will attempt to download a language model that is required for an AI-based language to work. If you don't have the Internet connection on the server where the installation takes place, or enough space for them at the moment, you can do it manually later. For details, check [Download and enable AI language models manually](/v6.11.1/deployment/configuration/ai-engine-setup/manage-ai-language-models.md).

```
SELECT AI MODELS TO INSTALL

Choose the AI language models you wish to install for comprehensive text correction and assistance. Input your choices separated by commas.

        0. None
        1. English language model
        2. English autocomplete model
        3. German language model
        4. Spanish language model

Enter the AI models [1,2]:
```

2.10. Select the type of protocol (HTTP or HTTPS) that will be used for communication between the client and the WebSpellChecker service. By default, HTTPS \[1] is selected. Press **Enter** to confirm the selection.

```
STEP 7. SELECT PROTOCOL TYPE

Select the type of protocol that will be used for communication between the WebSpellChecker service and a client.
If you plan to use HTTPS, please make sure you have a valid SSL certificate configured on your web server.

        1. HTTPS
        2. HTTP

Input the number from 1 to 2 [1]:
```

2.12. When selecting your web server, choose **Apache HTTP Server** (option 1) and press **Enter**.

```
STEP 8. CHOOSE WEB SERVER TYPE

Select a web server to be used for the application server running

        1. Apache HTTP Server
        2. NGINX
        3. Other

Input the number from 1 to 3:1
```

2.13. Define the settings of the selected web server or Java application server.

* Specify the port number of a web server. The installer will suggest the port number based on the specified protocol and selected web server.&#x20;

```
STEP 9. SPECIFY WEB SERVER SETTINGS

Specify the service virtual directory and a port number that will be used by a web server.

Web or application server port [443]:
```

* Provide the name of the virtual directory for WebSpellChecker service. The default value is **wscservice**.

```
Service virtual directory [wscservice]:
```

On this step the installer summarizes the information that you have entered on the previous steps.

```
* PROTOCOL = https
* WEB SERVER PORT = 443
* VIRTUAL DIRECTORY = wscservice
* SERVICE URL = http://localhost:443/wscservice
* INTERNAL APPLICATION SERVER PORT = 2880
```

2.14. Accept or adjust Apache HTTP parameters that are autodetected. Apache HTTP Server is already installed before installing WebSpellChecker. Thus, during the installation, the already existing Apache HTTP Server is auto-detected and becomes available for further configuration.&#x20;

Installation script tries to auto-detect the current version of Apache HTTP Server, its root directory, and path to its configuration file (**httpd.conf**). To accept the auto-detected Apache HTTP Server parameters, press **Enter**. Otherwise, specify the required version number, directory, and path to configuration file manually:

```
Auto-detecting the Apache HTTP Server parameters...
Press Enter to accept the auto-detected parameters (if any) or enter your custom values.
Apache HTTP Server version is [2.4.41]:
Apache HTTP Server root directory is /etc/apache2
Apache HTTP Server configuration directory is [/etc/apache2/conf-available]:
Conf 2_WebInterface already enabled
Conf 1_Samples already enabled
```

2.15. Restart Apache HTTP. Press **Enter** to restart Apache HTTP Server for the changes to take effect.

```
Do you want to restart Apache HTTP Server? Enter 'y' or 'n' [y]: 
Apache restarting ...
Apache HTTP Server restarted successfully
```

### 3. Configure grammar engine <a href="#installonlinuxwithapachehttpserver-3.activatelicense" id="installonlinuxwithapachehttpserver-3.activatelicense"></a>

The Grammar engine requires Java 8 and higher. The installation script will try to auto-detect a path to an existing Java Virtual Machine (JVM) and record the path in the AppServerX.xml configuration files. If the path is not detected, the script will ask you to specify the correct path to JVM again.

You have an option to **skip** this step during the setup and set a path to JVM manually. Refer to [Enabling grammar engine](/v6.11.1/deployment/configuration/grammar-check-engine-setup/enabling-grammar-engine.md) guide to find out more.

```
STEP 10: Specify Path to Java Virtual Machine.

At least Java 8 is required to use the Grammar engine. Please specify the path to Java Virtual Machine (JVM).
You can skip this step and add the path to JVM manually in the '/opt/WebSpellChecker/AppServer/AppServerX.xml' file (the PathToJavaVirtualMachine tag).

Do you want to specify a path to JVM? Enter 'y' or 'n' [y]:
```

### 4. Create systemd service <a href="#installonlinuxwithapachehttpserver-3.activatelicense" id="installonlinuxwithapachehttpserver-3.activatelicense"></a>

On this step you can select to automatically create a systemd service for the application. Learn more: [Systemd service on Linux](/v6.11.1/deployment/installation/linux/systemd-service-on-linux.md)

```
STEP 11. CREATE SYSTEMD SERVICE

Do you want to create a systemd service? (Requires root privileges) Enter 'y' or 'n' [n]:
```

### 5. Activate license <a href="#installonlinuxwithapachehttpserver-3.activatelicense" id="installonlinuxwithapachehttpserver-3.activatelicense"></a>

On this step you need to choose whether to run the license activation process. You can skip the license activation step if you already have a license activated or you prefer to proceed with the license activation step later. If you want to go ahead with the license activation, press **Enter** and then proceed with the steps described in the license activation guide below.

```
STEP 12. ACTIVATE LICENSE
Do you want to proceed with the license activation? Enter 'y' or 'n' [y]: 
```

Installer will offer to apply your current license if any or specify a new one.

```
Specify your License Ticket ID. Your current License Ticket ID is: 'xxxxxxxxxxxxxxxxxx':                       
```

The internet connection is needed for the automatic license activation, otherwise please follow the manual license activation steps.

```
Do you want the installer to attempt to activate your license automatically? The automatic activation requires the Internet connection available on this machine. Otherwise, please proceed with the manual activation instead. Enter 'y' or 'n'. [y]:
```

Upon successful license activation, the installer script will start AppServer.

```
Congratulations! Your license is confirmed and activated successfully.
 * Starting AppServer
Starting AppServer ...
AppServer started.
```

Visit the [License activation on Linux](/v6.11.1/deployment/licensing/license-activation-on-linux.md) guide for more details on how to activate a license on a Linux server.

### 5. Finalize installation <a href="#installonlinuxwithapachehttpserver-4.finalizeinstallation" id="installonlinuxwithapachehttpserver-4.finalizeinstallation"></a>

If no errors happened during the setup, and everything is configured properly, you will receive a confirmation that the application has been installed.

```
Installation succeeded. The application directory is /opt/WebSpellChecker.
```

### 6. Verify operability <a href="#installonlinuxwithapachehttpserver-6.verifyoperability" id="installonlinuxwithapachehttpserver-6.verifyoperability"></a>

Now you are ready to check if the installation process of the application went well, and all the components are functioning properly.

```
STEP 13. VERIFY THE APPLICATION OPERABILITY

Check the application version, status, and access to the demo samples to verify if the application works properly after the installation.

a. Quick start:

https://localhost:443/wscservice/

b. Version:

https://localhost:443/wscservice/api?cmd=ver

c. Status:

https://localhost:443/wscservice/api?cmd=status
```

Find the correct responses for the application version and status below.

**WebSpellChecker Server Status**

Here is a correct status response for Spell Check, Grammar and all installed AI-based engines of WebSpellChecker Server:

```json
{
    "SpellCheckEngine": {
        "active": true
    },
    "GrammarCheckEngine": {
        "active": true
    },
    "EnglishAIModel": {
        "active": true
    },
    "GermanAIModel": {
        "active": true
    },
    "SpanishAIModel": {
        "active": true
    },
    "EnglishAutocomplete": {
        "active": true,
    }
}
```

**WebSpellChecker Server Version**

Here is a correct version response for WebSpellChecker Server 6.x.x.x on a Linux server:

```javascript
{
    "Copyright": "(c) 2000-2026 WebSpellChecker LLC",
    "ProductWebsite": "webspellchecker.com",
    "ProgramVersion": "6.x.x.x x64 master:xxxxxxxx (xxxx) #xx",
    "PackageVersion": "6.x.x.x master:xxxxxxx (xxx) #xx"
}
```

**WebSpellChecker Demo Samples**

Here is the correct view of the WebSpellChecker demo samples:

<figure><img src="/files/XWJ0B4YJtrc0pukwmSTo" alt=""><figcaption></figcaption></figure>

### 7. Further steps <a href="#installonlinuxwithapachehttpserver-7.furthersteps" id="installonlinuxwithapachehttpserver-7.furthersteps"></a>

As soon as backend components are up-and-running, you need to integrate WebSpellChecker frontend components (plugins, JavaScript libraries) into your web application.

**Option A. Integration guides**

Visit [Products and integrations guides](/v6.11.1/integrations/supported-browsers.md) to learn more about how to get started with WebSpellChecker products, one of them being [WProofreader](https://webspellchecker.com/wsc-proofreader/).

WProofreader

[WProofreader](https://webspellchecker.com/wsc-proofreader/#demos) is a multilingual proofreading tool for web applications. It enables grammar and spell check while you type or work with your text in a dedicated dialog. It detects editable fields in focus, be it HTML editable controls or WYSIWYG editors, and enables spelling and grammar checking there. View the [full list of supported integrations](/v6.11.1/integrations/supported-integrations.md).

WProofreader benefits:&#x20;

* Available as a standalone secure solution on your server or as an annual subscription to the service hosted by WebSpellChecker.
* Out of the box offer provides spell check for 150 languages and basic grammar check for over 20 languages. Find out more in [Supported languages](/v6.11.1/features/supported-languages.md).
* All modern[ web browsers are supported,](/v6.11.1/integrations/supported-browsers.md) including the latest stable versions of Chrome, Firefox, Safari, MS Edge, and Internet Explorer 11, and mobile web browsers such as Chrome for Android and iOS Safari;
* [Company custom dictionary](broken://pages/pm9SftAa4tPBpIODZfd0) managed by system admins and intended for all WProofreader users;
* [User custom dictionaries](broken://pages/wUtvaCTReVmwdJNgIrJ9) for end-users;
* [WAI-compliant](https://www.w3.org/WAI/), up to [WCAG 2.1](https://www.w3.org/TR/WCAG21/) and [Section 508 accessibility standards](https://www.access-board.gov/guidelines-and-standards/communications-and-it);
* Operation and installation via HTTPS protocol is supported to fulfill strict security requirements.

With the cloud-based version of WProofreader you can access and use its features without server-side installation. In the server-based version, all the application data is securely processed on your own server. Refer to the [Get started with WProofreader Server (autoSearch)](https://docs.webspellchecker.com/pages/viewpage.action?pageId=454919195) guide for more details.

WProofreader allows users to see and correct spelling and grammar problems on the fly while they are typing directly in the text input field. Every misspelled word found will be underlined with a red wavy line and every grammar problem detected will be marked with a green one. The user just needs to hover a marked word or phrase and replace it with a proper one from the list of given corrections.

**Option B. Demo samples**

Depending on the type of elements, namely HTML native elements or rich text editors where the spelling and grammar check is needed, you may choose and use the demo samples that are shipped with the package.&#x20;

To access the default samples, go to http(s)://your\_host\_name/wscservice/samples/ where port is the **port** of your web server or Java application server. The default samples contain all the necessary samples and instructions that will help with the integration of the WebSpellChecker products. Moreover, each sample contains detailed development documentation with a list of methods and parameters available.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wproofreader.com/v6.11.1/deployment/installation/linux/install-on-linux-with-apache-http-server.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
