Aby korzystać ze skryptu Magento niezbędna jest biblioteka mcrypt do PHP. Jako że moja konfiguracja serwera (CentOs + Plesk) nie posiadała tej biblioteki w standardzie, należało ją doinstalować samodzielnie.
Najprostszym rozwiązanie będzie wykorzystanie menadżera pakietów yum
yum install php-mcrypt
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * atomic: www6.atomicorp.com Excluding Packages in global exclude list Finished Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-mcrypt.i386 0:5.2.17-1.el5.art set to be updated --> Processing Dependency: libmcrypt.so.4 for package: php-mcrypt ---> Package php-mcrypt.x86_64 0:5.2.17-1.el5.art set to be updated --> Finished Dependency Resolution php-mcrypt-5.2.17-1.el5.art.i386 from atomic has depsolving problems --> Missing Dependency: libmcrypt.so.4 is needed by package php-mcrypt-5.2.17-1.el5.art.i386 (atomic) Error: Missing Dependency: libmcrypt.so.4 is needed by package php-mcrypt-5.2.17-1.el5.art.i386 (atomic) You could try using --skip-broken to work around the problem You could try running: package-cleanup --problems package-cleanup --dupes rpm -Va --nofiles --nodigest The program package-cleanup is found in the yum-utils package.
Instalacja zostaje przerwana i informuje o braku libmcrypt.
Należy więc w ten sam sposób doinstalować brakujący pakiet. Tutaj uwaga, gdyż libmcrypt występować może w dwóch pakietach (libmcrypt.x86_64 oraz libmcrypt-devel.x86_64). Aby sprawdzić czy mamy którykolwiek zainstalowany należy użyć:
yum list installed | grep libmcrypt
W moim przypadku zainstalowany był tylko libmcrypt.x86_64, tak więc dla pewności doinstalowałem również ten z -devel w nazwie.
Jeżeli nie ma obydwu pozycji na liście najlepiej przejść do instalacji pakietów wpisując:
yum install libmcrypt*
gwiazdka (*) oznacza, że zostanie dopasowana nazwa do wszystkich możliwych pakietów.
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * atomic: www6.atomicorp.com Excluding Packages in global exclude list Finished Setting up Install Process Package libmcrypt-2.5.8-4.el5.centos.x86_64 already installed and latest version Resolving Dependencies --> Running transaction check ---> Package libmcrypt-devel.x86_64 0:2.5.8-4.el5.centos set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================ Package Arch Version Repository Size ============================================================================================================================================ Installing: libmcrypt-devel x86_64 2.5.8-4.el5.centos extras 10 k Transaction Summary ============================================================================================================================================ Install 1 Package(s) Upgrade 0 Package(s) Total download size: 10 k Is this ok [y/N]: y Downloading Packages: libmcrypt-devel-2.5.8-4.el5.centos.x86_64.rpm | 10 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : libmcrypt-devel 1/1 Installed: libmcrypt-devel.x86_64 0:2.5.8-4.el5.centos Complete!
Pakiet libmcrypt-devel został pomyślnie zainstalowany i wydawać by się mogło, że wystarczy teraz tylko rozpocząć instalacje php-mcrypt i powinno już pójść bez problemów, ale nic z tych rzeczy! Otóż pojawia się ten sam błąd co za pierwszym razem.
Zgodnie z informacjami znalezionymi w Google i tutaj, w przypadku systemów 64-bitowych trzeba być bardziej precyzyjnym przy podawaniu nazwy instalowanego pakietu mcrypt:
yum install php-mcrypt.x86_64 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * atomic: www6.atomicorp.com Excluding Packages in global exclude list Finished Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-mcrypt.x86_64 0:5.2.17-1.el5.art set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================ Package Arch Version Repository Size ============================================================================================================================================ Installing: php-mcrypt x86_64 5.2.17-1.el5.art atomic 28 k Transaction Summary ============================================================================================================================================ Install 1 Package(s) Upgrade 0 Package(s) Total download size: 28 k Is this ok [y/N]: y Downloading Packages: php-mcrypt-5.2.17-1.el5.art.x86_64.rpm | 28 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : php-mcrypt 1/1 Installed: php-mcrypt.x86_64 0:5.2.17-1.el5.art Complete!
Dopiero teraz instalacja php-mcrypt zakończyła się pomyślnie.
Aby sprawdzić czy faktycznie jest wystarczy w konsoli wpisać:
php -i | grep '^mcrypt'
i jeżeli wyświetli się:
mcrypt mcrypt support => enabled mcrypt.algorithms_dir => no value => no value mcrypt.modes_dir => no value => no value
to znaczy, że wszystko jest OK i można już sobie instalować np. Magento 😉