problem with mcrypt installation

后端 未结 6 1142
不思量自难忘°
不思量自难忘° 2021-02-19 09:08

I\'ve asked the system admins to install mcrypt on the server, and they say everything is OK. But when I run my simple script I get this.

Warning

相关标签:
6条回答
  • 2021-02-19 09:30

    Architecture: Centos 6 / Apache 2.2 / Dual PHP installation (5.3 and 5.4)

    UPDATE: This solution explains how to install the module mcrypt with PHP 5.4 manually from Remi's RPM on Centos 6, but this RPM requires glibc-2.14+, so this only is not enough to make it work, if your glibc is older than that.

    In my configuration, Yum install php-mcrypt* showed as installed the version for 5.3 in normal root:

    php-mcrypt.x86_64                    5.3.3-5.el6                                  @epel
    

    However, 5.4 is chrooted in /opt/rh/php54

    Simply copying the 5.3 modules and config files does not work. The module fails initialization, that's why it does not appear in phpinfo(), this can be checked with

    /opt/rh/php54/root/usr/bin/php  -v
    

    The solution that worked for me is to download the Remi's RPM (although it's normally easier to install it by adding his Yum repository as discussed in the Comments) (https://www.rpmfind.net/linux/RPM/remi/fedora/25/x86_64/php54-php-mcrypt-5.4.45-12.fc25.remi.x86_64.html)

    wget ftp://fr2.rpmfind.net/linux/remi/fedora/25/remi/x86_64/php54-php-mcrypt-5.4.45-12.fc25.remi.x86_64.rpm
    

    extract the files with RPM2CPIO:

    rpm2cpio php54-php-mcrypt-5.4.45-12.fc25.remi.x86_64.rpm |cpio -idmv
    ./opt/remi/php54/root/etc/php.d/mcrypt.ini
    ./opt/remi/php54/root/usr/lib64/php/modules/mcrypt.so
    98 blocks
    

    And copy to the chroot folder

    cp ./opt/remi/php54/root/etc/php.d/mcrypt.ini /opt/rh/php54/root/etc/php.d/mcrypt.ini
    cp ./opt/remi/php54/root/usr/lib64/php/modules/mcrypt.so /opt/rh/php54/root/usr/lib64/php/modules/
    

    To check:

    /opt/rh/php54/root/usr/bin/php  -v
    

    And also:

    <html>
    <body>
    <?php
    phpinfo();
    ?>
    </body>
    </html>
    
    0 讨论(0)
  • 2021-02-19 09:32

    How to install mcrypt on MAC OSX:

    Hello, tested and working on Mac OSX El Capitan:

    1. Download mcrypt: http://www.viames.it/download/elcapitan/mcrypt.so

    2. Place it in:

    /usr/lib/php/extensions/mcrypt

    3. Modify your 'php.ini'

    /etc/php.ini

    and add the following line:

    extension = /usr/lib/php/extensions/mcrypt.so
    

    4. Check if 'mcrypt' is loaded with the following command:

    php -m

    php -m console result

    5. Create a 'phpinfo.php' with content:

    <?php echo phpinfo(); ?>
    

    and see if mcrypt is listed:

    phpinfo() shows now mcrypt to be loaded

    Yes, I know I'm a gangsta.

    0 讨论(0)
  • 2021-02-19 09:36

    The mcrypt algorithms directory must be a directory containing the algorithms, not a binary. This means that this:

    $modes = mcrypt_list_modes("/usr/local/bin/mcrypt");
    

    Should be this instead (assuming mcrypt is installed is /usr/local/lib/libmcrypt):

    $modes = mcrypt_list_modes("/usr/local/lib/libmcrypt");
    

    If the directory where libmcrypt is installed is not that one above, you have to update your php.ini setting. Taken from php.ini:

    [mcrypt]
    
    ; Directory where to load mcrypt algorithms
    ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
    ;mcrypt.algorithms_dir=
    
    ; Directory where to load mcrypt modes
    ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
    ;mcrypt.modes_dir=
    

    If you have shell access, you can try this command to find the lib directory for your mcrypt installation:

    whereis libmcrypt
    

    or...

    whereis mcrypt
    

    Depending on your setup.

    0 讨论(0)
  • 2021-02-19 09:42

    On Ubuntu 14.04 just need to do only three steps as sudo:

    apt-get install php5-mcrypt
    php5enmod mcrypt
    service apache2 restart
    
    0 讨论(0)
  • 2021-02-19 09:43

    Try this for your mcrypt problem:

    mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
    sudo php5enmod mcrypt
    sudo service apache2 restart
    

    It's a bug with the location of the mcrypt.ini file.

    I had the same bug, I did a cp instead of a mv to be sure but it solved the problem.

    For PHP not working, if you get phpmyadmin working (even with the mcrypt error), it means PHP is working (because phpmyadmin uses PHP). But in your example

    <? echo $row['details']; ?>
    change <? to <?php and try again?

    0 讨论(0)
  • 2021-02-19 09:54

    I had exactly the same problem.

    > mcrypt -v
    Mcrypt v.0.9.9 (sparc-sun-solaris2.10)
    Linked against libmcrypt v.2.5.8
    
    > mcrypt --list-hash
    Supported Hash Algorithms:
    crc32
    md5
    sha1
    haval256
    ripemd160
    tiger
    gost
    [...]
    
    > php CryptoTest.php
    PHP Warning:  mcrypt_list_modes(): No modes found in module dir in [...]
    

    It was solved by reconfiguring and recompiling libmcrypt with these options:

    ./configure --prefix=$YOUR_PATH/libmcrypt --enable-dynamic-loading --disable-posix-threads
    

    Then in your php.ini :

    mcrypt.algorithms_dir=<YOUR_PATH>/libmcrypt/lib/libmcrypt
    mcrypt.modes_dir=<YOUR_PATH>/libmcrypt/lib/libmcrypt
    
    0 讨论(0)
提交回复
热议问题