• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

Spellcheck in Horde webmail silently fails, aspell dictionary is missing...

Rob Taylor

Basic Pleskian
TITLE:
Spellcheck in Horde webmail silently fails, aspell dictionary is missing...

PRODUCT, VERSION, OPERATING SYSTEM, ARCHITECTURE:
- CentOS Linux 7.4.1708 (Core)
- Plesk Onyx v17.5.3_build1705170317.16 os_CentOS 7

PROBLEM DESCRIPTION:
I noticed that Horde was not identifying mis-spelled words when composing messages and showing no errors.

Checking the Horde log revealed that every time someone click 'Check Spelling' an error is logged indicating that Aspell is not working.

It seems that the aspell installation is incomplete and not functioning.

STEPS TO REPRODUCE:
  1. Go to Plesk WebOps platform for applications, websites and hosting.example.com for a domain that has Horde enabled
  2. Login to Horde
  3. Go to the Inbox
  4. Click 'New Message'
  5. In the message body enter the word 'Elephent' which is a mis-spell of 'Elephant'
  6. Click 'Check Spelling'

ACTUAL RESULT:
- Shows a small message in the bottom right of window - 'No spelling errors found'

- The following is logged in /var/log/psa-horde/psa-horde.log:

ERR: HORDE [imp] Spellcheck failed. Command line: aspell -a --encoding=UTF-8 --sug-mode=fast --lang='en_GB' --ignore='2' [pid 1549 on line 91 of "/usr/share/psa-pear/pear/php/Horde/SpellChecker/Aspell.php"]

EXPECTED RESULT:
- Highlight the mis-spelt word in red and on click give options for correct spelling

- No errors logged in /var/log/psa-horde/psa-horde.log

ANY ADDITIONAL INFORMATION:
A Google search for the error revealed that the aspell dictionary packages are missing.

The 'aspell' package is installed by the Plesk installer and yum shows that the aspell package is installed from the repo named '@PLESK_12_5_30-thirdparty'.

As a temporary fix I installed '50:aspell-en-7.1-5.el7.x86_64' from the EPEL repository and this did indeed fix the issue.

YOUR EXPECTATIONS FROM PLESK SERVICE TEAM:
Confirm bug
 
The 'aspell' package is installed by the Plesk installer and yum shows that the aspell package is installed from the repo named '@PLESK_12_5_30-thirdparty'.
Looks like misconfiguration.
On my test server I see:

# plesk version
Product version: Plesk Onyx 17.5.3 Update #34
Update date: 2017/12/06 11:57
Build date: 2017/03/17 16:00
OS version: CentOS 7.2.1511
Revision: 55d1b49a272f44666e1920eca8b6e4da449a38cd
Architecture: 64-bit
Wrapper version: 1.2

# find-repos-of-install aspell
Loaded plugins: fastestmirror
12:aspell-0.60.6.1-9.el7.x86_64 from repo PLESK_17_5_3-thirdparty
 
Thank you for responding Igor, this raises an interesting point - I have two servers that were installed at different times...

------------------

The first server was upgraded from Plesk 12.5 to Onyx very early on:

# plesk version
Product version: Plesk Onyx 17.5.3 Update #32
Update date: 2017/11/29 03:34
Build date: 2017/03/17 16:00
OS version: CentOS 7.4.1708
Revision: 55d1b49a272f44666e1920eca8b6e4da449a38cd
Architecture: 64-bit
Wrapper version: 1.2

# find-repos-of-install aspell
Loaded plugins: fastestmirror
12:aspell-0.60.6.1-9.el7.x86_64 from repo PLESK_12_5_30-thirdparty

The second server was a straight install of Plesk Onyx:

# plesk version
Product version: Plesk Onyx 17.5.3 Update #32
Update date: 2017/11/29 03:20
Build date: 2017/03/17 16:00
OS version: CentOS 7.4.1708
Revision: 55d1b49a272f44666e1920eca8b6e4da449a38cd
Architecture: 64-bit
Wrapper version: 1.2

# find-repos-of-install aspell
Loaded plugins: fastestmirror
12:aspell-0.60.6.1-9.el7.x86_64 from repo PLESK_17_5_3-thirdparty

------------------

The issue with Aspell is present on both machines - do you have the 'aspell-en' package installed on your test server?

It just seems that Aspell was originally installed from 'PLESK_12_5_30-thirdparty' rather than PLESK_17_5_3-thirdparty because it was installed prior to the release of Onyx, 'PLESK_12_5_30-thirdparty' is no longer listed in my repo list - the repolists on both machines are identical:

#yum repolist
PLESK_17_5_3-extras
PLESK_17_NGINX
PLESK_17_PHP54
PLESK_17_PHP56
PLESK_17_PHP71
base/7/x86_64
extras/7/x86_64
plesk-migrator
plesk-migrator-tp
updates/7/x86_64

I have compared the package list on both machines and there is only a few differences:

Only present on the older / upgraded server:

atomic-curl-curl-runtime.x86_64
atomic-curl-libcurl.x86_64
gamin.x86_64
gamin-python.x86_64
nmap-ncat.x86_64
plesk-py27-pip.x86_64
plesk-py27-setuptools.x86_64
plesk-py27-virtualenv.x86_64
plesk-roundcube.noarch
plesk-wheel-cffi.x86_64
plesk-wheel-cryptography.x86_64
plesk-wheel-psutil.x86_64
plesk-wp-cli.noarch
pp12.5.30-bootstrapper.x86_64
pp17.0.17-bootstrapper.x86_64
scl-utils.x86_64
sw-engine-cli-2.16.x86_64
sw-engine-cli-2.20.x86_64
yajl.x86_64

Only present on the newer server:

compat-db-headers.noarch
compat-db47.x86_64

Hope this helps!

Thanks
Rob
 
The issue with Aspell is present on both machines - do you have the 'aspell-en' package installed on your test server?

# rpm -qa | grep aspell-en
# yum search aspell
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Loading mirror speeds from cached hostfile
============================================================= N/S matched: aspell =============================================================
aspell-devel.i686 : Libraries and header files for Aspell development
aspell-devel.x86_64 : Libraries and header files for Aspell development
enchant-aspell.x86_64 : Integration with aspell for libenchant
aspell.i686 : Spell checker
aspell.x86_64 : Spell checker

So, what is aspell-en?
 
Don't get me wrong Igor... you know infinitely more than I do about Plesk and it's inner workings, I could be completely wrong and will happily hold my hands up if I am but the Spellcheck in Horde simply wasn't working as I described in my initial post - does it work on your test server?

The 'aspell-en' package is the english dictionary word list for aspell, there is dictionary packages for each language available on the Aspell website:

GNU Aspell

The Aspell installation instructions and man page both advise that the core program does not include any dictionaries and you must install at least one dictionary for it to function:

GNU Aspell 0.60.7-pre: Generic Install Instructions

"After Aspell is installed at least one dictionary needs to be installed"

Apologies if I have got this wrong and I am wasting your time... :)

Thanks
Rob
 
Okay - thats fair enough, sorry I didn't see that earlier, I only searched the Onyx forum for similar issues.

It's a shame this doesn't function by default, this does mean that a fresh installation is effectively broken from the start - the spell checking is enable by default in Horde but it will never work until you ( or a customer :-( ) notices it and goes through the process of troubleshooting like I have done.

Thanks for your time Igor, it is appreciated.
 
Back
Top