Magento2: Store EMail Address change generate failure and are not stored

Created on 14 Nov 2017  Â·  10Comments  Â·  Source: magento/magento2

Preconditions

  1. Version 2.2.1
  2. PHP 7.0.25
  3. MySQL Maria DB 10.1
  4. Plesk Onyx Version 17.5.3 Update #29

Steps to reproduce

  1. Install new M2.2.1 by using the zip package without data
  2. Using default Website/Store and Store view
  3. Store--> Configure--> Store EMail Adresses
  4. Changing E-Mail address

Expected result

  1. E-Mail Address should be changes to the new one

Actual result

  1. Switched back to 'use system value'
  2. Failure show up --> Something went wrong while saving this configuration: Validate class not found from basename 'Magento\Framework\Validator\EmailAddress'
Format is valid needs update

Most helpful comment

After debugging, we found that Magento looks in the wrong directory, for the EMailAddress.php. It looks under /opt/plesk/php/7.0/share/pear/Zend/Validate/Magento/Framework/Validator. Cause of that is the default Plesk setting (PHP) has an include_path=.:/opt/plesk/php/7.0/share/pear

There are two ways to solve that:
1.) Yust change the include_path setting to include_path=.
2.) Add to the additional configuration include_path = ".:/var/www/vhosts/{webstite}/httpdocs/{magento-directory}/vendor"

By adding .:/var/www/vhosts/{webstite}/httpdocs/{magento-directory}/vendor into the Plesk include_path setting (.:/var/www/vhosts/chiemsee-licht.de/httpdocs/{magento-directory}/vendor{:}.:/opt/plesk/php/7.0/share/pear), the validation is not working

The second way has the benefit, that the original include_path setting by Plesk is still valid, which might be used for something else.
If these changes will have any effect of orders etc is not tested yet

All 10 comments

After debugging, we found that Magento looks in the wrong directory, for the EMailAddress.php. It looks under /opt/plesk/php/7.0/share/pear/Zend/Validate/Magento/Framework/Validator. Cause of that is the default Plesk setting (PHP) has an include_path=.:/opt/plesk/php/7.0/share/pear

There are two ways to solve that:
1.) Yust change the include_path setting to include_path=.
2.) Add to the additional configuration include_path = ".:/var/www/vhosts/{webstite}/httpdocs/{magento-directory}/vendor"

By adding .:/var/www/vhosts/{webstite}/httpdocs/{magento-directory}/vendor into the Plesk include_path setting (.:/var/www/vhosts/chiemsee-licht.de/httpdocs/{magento-directory}/vendor{:}.:/opt/plesk/php/7.0/share/pear), the validation is not working

The second way has the benefit, that the original include_path setting by Plesk is still valid, which might be used for something else.
If these changes will have any effect of orders etc is not tested yet

@JoergLindner Looks like your issue is solved and does not directly relate to the Magento.
Should we close the issue now?
Thanks

Hi,

yes it can be set to solved, but still would be good ta make any notes
for future customers with plesk setup

Regards

Jörg Lindner
Ringstrasse 38
83224 Grassau
Telefon: 08641 6969905
Telefax: 08641 6969906

Am 15.11.2017 um 13:35 schrieb Ievgen Shakhsuvarov:
>

@JoergLindner https://github.com/joerglindner Looks like your issue
is solved and does not directly relate to the Magento.
Should we close the issue now?
Thanks

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/magento/magento2/issues/12255#issuecomment-344579443,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AfFW_HFnT8y2HgK70nm2qLxrIejvxlMVks5s2tqmgaJpZM4Qd_fA.

@JoergLindner where exactly should add this: include_path = ".:/var/www/vhosts/{webstite}/httpdocs/{magento-directory}/vendor"

Plesk Admin
PHP Setting for xxx(Domain)
Common Setting --> Include Path --> set to '.'
Additional directives --> Additional configuration directives --> add ".:/var/www/vhosts/{webstite}/httpdocs/{magento-directory}/vendor"

You might have to add

include_path = ".:/etc/pki/tls/certs" as well

Thanks @JoergLindner. Unfortunately it does not help us. Do any one have an idea what else we can do to fix it or is other way to change email addresses?

It's not only a problem with Plesk - I use for development a Serversetup with several v-servers hosted on a debian-engine using qemu... - The ISP-Backend used on th v-servers is ispconfig and the problems are the same, and the solution is the same, very easy... - just adding the path to the zend library.
When using ispconfig 3.1 in the optional hosting settings -> individual php settings
It looks like:
include_path = ".:/var/www/clients/yourclient/yourwebdirectory/pathtowebrootdirectoy/vendor/magento/zendframework1/library"
When using Plesk, like Jörg explained above, in the php-Settings of the domain -> additional config
It looks very similar, like:
include_path = ".:/var/www/vhosts/pathtoyourwebrootdirectory/vendor/magento/zendframework1/library"
This helped and causes no other Problems in my cases...

Thanks gab4mad it work for me too

Thanks gab4mad, your solution was the working one!

Nothing worked for me and I want to ask one question. Why in HELL would you use the Zend Framework 1 for anything... we're not in the Stone Age anymore...

Was this page helpful?
0 / 5 - 0 ratings