php7 mcrypt模块_如何在php7.2/php7.3中安装mcrypt扩展?

这篇博客介绍了如何在PHP7.2及以上版本中安装mcrypt扩展,尽管该扩展已在PHP7.2中被弃用,但仍然可以通过PECL安装。首先,你需要确认php和pecl的版本,然后通过apt-get安装必要的依赖。接着,使用pecl安装mcrypt扩展,并将扩展添加到php.ini文件中。最后,验证mcrypt扩展是否成功安装。对于PHP7.2+,推荐使用libsodium作为加密库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mcrypt 是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启。window环境下,PHP>=5.3,默认开启mcrypt扩展。mcrypt扩展是mcrypt加密库的接口。这个扩展对于允许使用mcrypt的PHP代码在PHP 7.2+上运行非常有用。

7e947cd9f2e2db79834a7c8be93db311.png

mcrypt扩展的主要问题是,它是基于libmcrypt的,自2007年开始就没有开发过。因此,即使libmcrypt还在使用,但是由于缺乏适当的开发和维护,库的安全问题已经成为许多系统管理员关注的焦点。

由于mcrypt扩展开发的结束,扩展也从PHP 7.2中删除,并转移到一个非官方的PECL存储库中。但是,你仍然可以在PHP 5.4到PHP 7.1中找到mcrypt扩展。PHP 7.2已经发布,但是它不包含mcrypt扩展。对于PHP 7.2+, PHP使用libsodium作为加密库。

要在PHP 7.2上安装mcrypt扩展,请以服务器的root用户身份运行以下命令:

验证php和pecl版本php -v

pecl version

如果你的php不是7.2,那么使用/usr/bin/php7.2代替php命令。

安装mcrypt扩展

Mcrypt PECL扩展sudo apt-get -y install gcc make autoconf libc-dev pkg-config

sudo apt-get -y install libmcrypt-dev

sudo pecl install mcrypt-1.0.1

当你看到提示时libmcrypt prefix? [autodetect] :

按[Enter]自动检测。

安装mcrypt trought pecl成功后,你应该将mcrypt.so扩展名添加到php.ini中。

输出将如下所示:...

Build process completed successfully

Installing '/usr/lib/php/20170718/mcrypt.so' ----> this is our path to mcrypt extension lib

install ok: channel://pecl.php.net/mcrypt-1.0.1

configuration option "php_ini" is not set to php.ini location

You should add "extension=mcrypt.so" to php.ini

获取安装路径并添加到cli和apache2 php.ini配置中。sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini"

sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/apache2/conf.d/mcrypt.ini"

验证扩展是否已安装

运行命令:php -i | grep "mcrypt"

输出将如下所示:/etc/php/7.2/cli/conf.d/mcrypt.ini

Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*, mcrypt.*, mdecrypt.*

mcrypt

mcrypt support => enabled

mcrypt_filter support => enabled

mcrypt.algorithms_dir => no value => no value

mcrypt.modes_dir => no value => no value

常问问题

问:看到错误信息:ERROR: 'phpize' failed

答:你可以安装php7.2-dev apt-get install php7.2-dev

问:在MacOS / OSX上安装PHP 7.1和highet设置的解决方案是什么?

答:你可以使用macports,然后就可以安装sudo port install php71-mcrypt

相关推荐:《PHP教程》

本篇文章就是关于在php7.2 / php7.3中安装mcrypt扩展的方法介绍,希望对需要的朋友有所帮助!

<think>我们正在回答用户的问题:如何在CentOS7.9上使用yum安装PHPPHP-FPM根据引用内容,我们可以总结出以下步骤:1.启用Remi仓库,因为CentOS默认仓库中的PHP版本较低。2.使用yum安装PHP以及PHP-FPM和相关扩展3.启动并启用php-fpm服务。4.配置Nginx以支持PHP处理(如果用户需要)。但是,用户的问题只要求安装PHPPHP-FPM,所以我们重点在安装步骤上。注意:用户要求使用yum安装,并且是在CentOS7.9上。根据引用[2]和[5],我们可以选择安装PHP7.2(引用[2])或PHP5.6(引用[5]),但考虑到PHP5.6已经过时,我们更推荐安装较新的版本。实际上,Remi仓库提供了多个PHP版本,包括7.27.37.4、8.0、8.1等。用户可以选择自己需要的版本。步骤概述:1.安装EPEL仓库和Remi仓库。2.启用特定版本的RemiPHP仓库。3.使用yum安装PHPPHP-FPM以及所需扩展。4.启动php-fpm服务并设置开机启动。下面我们详细说明。注意:在安装之前,建议更新系统:`sudoyumupdate`具体步骤:步骤1:安装EPEL仓库和Remi仓库EPEL(ExtraPackagesforEnterpriseLinux)提供了额外的软件包,Remi仓库则提供了更新的PHP版本。步骤2:启用特定版本的RemiPHP仓库(例如PHP7.4、8.0等,这里以PHP7.4为例,因为引用中提到了7.2,但7.4更常见且较稳定)步骤3安装PHPPHP-FPM以及常用扩展步骤4:配置php-fpm(如果需要修改配置,比如运行用户、端口等,但默认配置通常可以直接使用)步骤5:启动服务并设置开机启动详细命令:1.安装EPEL和Remi仓库:```sudoyuminstallepel-releasesudoyuminstallhttp://rpms.remirepo.net/enterprise/remi-release-7.rpm```2.启用所需版本的PHP仓库。例如,要启用PHP7.4仓库:```sudoyum-config-manager--enableremi-php74```注意:如果没有yum-utils,需要安装:`sudoyuminstallyum-utils`3.安装PHPPHP-FPM以及常用扩展:```sudoyuminstallphpphp-fpmphp-commonphp-mysqlndphp-mbstringphp-xmlphp-gdphp-opcachephp-pecl-apcuphp-cliphp-pear```这里安装扩展包括:mysqlnd(MySQL数据库支持)、mbstring(多字节字符串处理)、xml(XML处理)、gd(图像处理)、opcache(性能加速)、apcu(缓存)、cli(命令行)、pear(PHP扩展仓库)等。用户可以根据需要添加或删除扩展。例如,如果需要加密功能,可以添加`php-mcrypt`(注意:PHP7.2以上可能已经移除mcrypt,可以使用其他加密扩展替代)。4.检查安装PHP版本:```php-v```5.启动php-fpm服务并设置开机启动:```sudosystemctlstartphp-fpmsudosystemctlenablephp-fpm```6.检查php-fpm服务状态:```sudosystemctlstatusphp-fpm```7.配置php-fpm(可选):默认配置文件为`/etc/php-fpm.d/www.conf`。如果需要修改运行用户、组或端口等,可以编辑此文件。例如,如果与Nginx一起使用,通常需要确保用户和组与Nginx配置匹配(通常是nginx用户):```user=nginxgroup=nginx```或者,如果使用Unix套接字(默认是监听9000端口),可以修改为:```listen=/var/run/php-fpm/php-fpm.socklisten.owner=nginxlisten.group=nginx```修改后需要重启php-fpm服务:```sudosystemctlrestartphp-fpm```8.防火墙配置(如果需要):如果使用端口9000,并且防火墙开启,需要开放端口(但通常php-fpm只在本机使用,不需要开放外部端口):```sudofirewall-cmd--permanent--add-port=9000/tcpsudofirewall-cmd--reload```注意:如果用户需要与Nginx集成,可以参考引用[3]中的Nginx配置部分,添加对PHP支持。生成相关问题:1.如何在CentOS7.9上安装特定版本的PHP(如PHP8.0)?2.如何配置PHP-FPM与Nginx一起工作?3.如何解决PHP-FPM安装后无法启动的问题?4.如何为PHP安装其他扩展?5.如何升级CentOS7.9上的PHP版本?回答结构:我们将按照上述步骤详细说明,并在适当位置添加引用标记。</think>### CentOS 7.9 使用 Yum 安装 PHPPHP-FPM 指南 #### 一、准备工作 1. **启用 EPEL 仓库**: ```bash sudo yum install epel-release ``` 2. **添加 Remi 仓库**(提供最新 PHP 版本): ```bash sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm ``` 3. **启用目标 PHP 版本仓库**(以 PHP 7.4 为例): ```bash sudo yum-config-manager --enable remi-php74 ``` #### 二、安装 PHPPHP-FPM 1. **安装核心组件**: ```bash sudo yum install php php-fpm php-common ``` 2. **安装常用扩展**: ```bash sudo yum install php-mysqlnd php-gd php-mbstring php-mcrypt php-opcache php-pecl-apcu php-cli php-xml ``` > **验证安装**: > `php -v` → 应返回 PHP 版本(如 `PHP 7.4.33`) > `rpm -qa | grep php-fpm` → 应显示已安装包名 #### 三、配置 PHP-FPM 1. **编辑配置文件**: ```bash sudo vi /etc/php-fpm.d/www.conf ``` 关键参数修改: ```ini user = nginx ; 与 Nginx 用户一致 group = nginx ; 与 Nginx 组一致 listen = 127.0.0.1:9000 ; 监听地址(或使用 /var/run/php-fpm/php-fpm.sock) ``` 2. **启动并设置开机自启**: ```bash sudo systemctl start php-fpm sudo systemctl enable php-fpm sudo systemctl status php-fpm # 检查运行状态 ``` #### 四、Nginx 集成配置(可选) 1. **在 Nginx 配置中添加 PHP 支持**: ```nginx location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ``` > 引用参考[^3] 2. **测试配置并重启**: ```bash sudo nginx -t # 验证配置 sudo systemctl restart nginx ``` #### 五、验证安装结果 1. **创建测试文件**: ```bash echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php ``` 2. **浏览器访问**: ``` http://服务器IP/info.php ``` 应显示 PHP 配置信息页面[^3] #### 六、常见问题解决 1. **SELinux 权限问题**: ```bash sudo setsebool -P httpd_execmem 1 sudo chcon -Rt httpd_sys_content_t /usr/share/nginx/html ``` 2. **扩展缺失处理**: ```bash # 搜索可用扩展 sudo yum search php- | grep mcrypt # 安装特定扩展 sudo yum install php-pecl-mcrypt ``` > **最佳实践**: > - 生产环境建议使用最新稳定版 PHP7.4 或 8.x)[^2][^5] > - 定期更新:`sudo yum update php*` > - 安全加固:删除测试文件 `sudo rm /usr/share/nginx/html/info.php`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值