php 共存,php版本共存
PhpStorm 是 JetBrains 推出的专业 PHP 集成开发环境,可在 Mac 上完成代码编写、智能检查、重构、调试、测试和数据库管理。它支持主流 PHP 框架、Composer、Git、Docker 与远程解释器。
在Ubuntu服务器上,首先需要添加ondrej/phpPPA源,然后就可以安装多个PHP版本(例如PHP7.1、7.2等)及其扩展。之后使用a2enmod和a2dismod命令来切换Apache所使用的PHP模块,并重启Apache服务使修改生效。如果遇到PDO未加载MySQL驱动的错误,则需要在php.ini文件中启用pdo_mysql扩展,随后重启服务
在服务器上同时运行多个PHP版本,是很多开发者和运维人员都会遇到的场景。特别是在项目迁移或测试不同环境时,版本共存的需求尤为突出。下面就把这套基于Ubuntu的PHP多版本管理方案拆开来讲,从源配置到具体命令,一步到位。
1、更新源(Ubuntu)
首先,需要添加ondrej/php这个第三方PPA源,它维护了非常全的PHP版本库:
sudo add-apt-repository ppa:ondrej/php
sudo apt upgrade
sudo apt update
这样一来,系统就能获取到包括PHP 7.1在内的多个版本包了。
2、安装PHP 7.1及常用扩展
执行以下命令,一次性安装PHP 7.1及其核心扩展(注意,这里已经把常用模块都打包进去了):
sudo apt-get install -y php7.1-common php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-gd php7.1-curl php7.1-json php7.1-fpm php7.1-zip php7.1-mcrypt libapache2-mod-php7.1
安装完成后,Apache环境下切换PHP版本就靠下面两个命令:
;; 开启一个php版本
sudo a2enmod php7.1
;; 禁用一个php版本
sudo a2dismod php7.1
;; 重启Apache2
sudo service apache2 restart
简单来说,就是通过a2enmod和a2dismod来启用或禁用对应的Apache模块,然后重启服务即可生效。
PHP Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' 解决方案
如果遇到这个错误,说明PHP的PDO扩展没有正确加载MySQL驱动。解决方法很简单:
找到php.ini配置文件,确保以下两行没有被注释掉:
extension=php_pdo.dll //开启PDO
extension=php_pdo_mysql.dll //PDO 访问mysql 驱动
注意,在Linux环境下,扩展名通常是.so而不是.dll,但原理一致——确保PDO和PDO MySQL模块被加载。修改后重启PHP-FPM或Apache即可。

































