Ubuntu 16.04全局安装PHP包:apt-get与composer对比及相关疑问
全局安装PHP包的方式与适用场景
嘿,我来帮你把这个问题理清楚~先回顾下你提到的Ubuntu 16.04环境里全局安装PHP包的两种方式:
两种全局安装方式
- Composer全局安装:执行命令
composer global require symfony/finder,包会被存放在~/.config/composer/vendor/目录。不过要让PHP能识别到这些包,你需要手动把这个目录添加到PHP的include_path,或者在代码里指定引入路径。 - apt-get系统安装:执行命令
apt-get install php-symfony-finder,包会存放在/usr/share/php/目录——这个目录已经在PHP 7.2的默认include_path里了,所以不用额外配置就能直接在代码里引用。
为什么要选择全局安装PHP包?
你说知道全局安装工具很有用,但对类库包的全局安装有困惑,其实全局安装类库的场景更偏向特定需求,主要有这几个原因:
- 跨项目复用通用类库:如果你有好几个项目都依赖同一个类库,而且版本要求完全一致,全局安装能避免在每个项目的
vendor目录重复下载相同的包,既省磁盘空间,后续更新也只需要操作一次。 - 快速编写测试脚本:当你想写个临时PHP小脚本调试功能,或者快速验证某个类库的用法时,全局安装的包能直接用,不用特意创建项目、初始化Composer再安装依赖——比如你想测试symfony/finder的文件查找功能,直接写个脚本就能调用,省了不少步骤。
- 支撑系统级工具运行:有些PHP开发工具(比如PHPUnit、PHP_CodeSniffer)本身就是Composer包,全局安装后可以在终端任何位置直接调用它们的命令。而如果这些工具依赖某个类库(比如symfony/finder),全局安装该类库能确保工具在任何环境下都能找到依赖,正常运行。
当然,全局安装也有局限:如果不同项目对同一个包的版本要求冲突,全局安装的版本就没法同时满足所有项目,这时候还是推荐每个项目本地安装依赖。所以全局安装更适合那些版本稳定、跨项目通用的类库,或者本身就是命令行工具的PHP包。
内容的提问来源于stack exchange,提问作者Alexey Chuhrov
相关产品推荐
相关产品推荐

