phar php 应用,使用php -phar来理解composer
1. phar是何方神圣?
我们知道C#可以把代码打包成dll文件,java可以打包成jar,
而phar就是php的打包工具,可以将多个php文件打包成一个文件。
首先需要修改php.ini配置将phar的readonly关闭,默认是不能写phar包的,include是默认开启的。
phar.readonly => On ---> 找到phar.readonly 把它设置为off
示例:
新建文件 xx.xx(有无后缀都随意)创建一个phar压缩包
$phar = new Phar('test.phar'); //创建test.phar包
$phar->buildFromDirectory(__DIR__.'/file', '/\.php$/');
$phar->compressFiles(Phar::GZ);
$phar->stopBuffering();
$phar->setStub($phar->createDefaultStub('index.php')); //入口文件
在xx.xx同级目录的file文件中创建 index.php 和 test.php
执行 php xx.xx
发现报错 ,提示php.ini的设置off没起作用,
我想是否用的wamp集成环境,造成cgi模式和cli模式用的不是同一个php.ini?
执行如下命令查看开启状态及php.ini路径
php -i | findstr /i "phar.readonly"
php -i | find /i "php.ini"
于是修改影响phar.readonly设置的php.ini 重启, 再次执行 php xx.xx 正常生成test.phar文件
执行 test.phar 却没有得到输出?继续如下操作...
创建 test.bat文件 写入
@php test.phar
再次执行 test 成功输出index.php内容。
经过上面对phar的使用,composer的原理也就大致明白了。
附:
win-cmd环境下载安装 composer:
cd php >bin 目录
php -r "readfile('https://getcomposer.org/installer');" | php
注意: 如果收到 readfile 错误提示,请使用 http 链接或者在 php.ini 中开启 php_openssl.dll 。
php -r "readfile('http://getcomposer.org/installer');" | php -- --disable-tls
然后在 composer.phar 同级目录下新建文件 composer.bat :
C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat
关闭当前的命令行窗口,打开新的命令行窗口进行测试:
composer -v
phar php 应用,使用php -phar来理解composer相关推荐
- phar的认识与使用
对于Web应用的开发,如果你没用使用正确的工具,那开发过程可能会变得困难和痛苦.如果你之前开发过Java程序,我相信你肯定知道Jar文件(Jar是Java ARchive的缩写).一个应用,包括所有的 ...
- PHP phar反序列化
以题为例 进来后我们注册一个账户并登录 查看一下网页源代码发,并没有发现什么我们上传个文件看看能不能通过菜刀获取权限 发现并不能连接上.此时我们通过BP抓包看看能不能获取到有用的信息 发现一个file ...
- PHP phar详解
一 phar文件是什么 Jar(Java Archive)文件,一个应用,包括所有的可执行,可访问的文件,都打包进了一个JAR文件里,使得部署过程十分简单. 类似于JAR.phar全称为PHP Ar ...
- phar反序列化小结
0x00 phar反序列化 phar反序列化即在文件系统函数(file_exists().is_dir()等)参数可控的情况下,配合phar://伪协议,可以不依赖unserialize()直接进行反 ...
- PHP之phar反序列化
前言 phar反序列化来自Secarma的安全研究员Sam Thomas发现了一种新的漏洞利用方式.或许有人对phar的理解只停留在phar://协议中甚至连phar协议都没有听过,至少在了解phar ...
- PHP Phar反序列化总结
文章首发于Freebuf https://www.freebuf.com/articles/web/291992.html 利用phar文件会以序列化的形式存储用户自定义的meta-data这一特性, ...
- php和phar后缀,PHP开发常识:什么是Phar?
对于Web应用的开发,如果你没用使用正确的工具,那开发过程可能会变得困难和痛苦.如果你之前开发过Java程序,我相信你肯定知道Jar文件(Jar是Java ARchive的缩写).一个应用,包括所有的 ...
- php phar 反序列化,利用 phar 拓展 php 反序列化漏洞攻击面
作者:seaii@知道创宇404实验室 时间:2018/08/23 0x01 前言 通常我们在利用反序列化漏洞的时候,只能将序列化后的字符串传入unserialize(),随着代码安全性越来越高,利用 ...
- phar.php error 139,composer.phar 安装出现PHP Fatal error解决办法
报错: PHP Fatal error: Uncaught exception 'PharException' with message 'phar "C:\ProgramData\Com ...
最新文章
- 老男孩爬虫实战密训课第一季,2018.6,初识爬虫训练-实战1-爬取汽车之家新闻数据...
- 创建文件夹 java_java怎么建文件夹
- 解决Error: That port is already in use.
- python中set()函数==》创建一个无序不重复的元素集(创将一个集合)
- mysql查询索引相关信息查询
- mysql 索引未命中_联合索引命中率问题导致SQL查询效率慢的问题
- 【软件测试从入门到放弃】熟悉阶段:软件测试流程
- java基础——李兴华视频
- 在Latex如何添加Visio绘图
- Unity3D 用脚本来操作游戏对象1(创建游戏对象)
- c语言实现一元多项式的除法,课内资源 - 基于C++的一元多项式的计算
- [Raspberry Pi Pico] SPI
- 李宏毅2021/2022春机器学习课程(机器学习基本概念简介)
- 转:量子密钥分发和BB84协议
- cadence ic5141安装包_Cadence IC5141 安装文档
- 请不要轻易的说:我不会
- 需求工程期末知识点复习
- Zoundry Raven网易博客设置
- Flutter 3 发布了(文末推荐一个免费的在线Flutter学习教程)
- jnz和djnz_微型计算机原理与接口技术复习题
热门文章
- Windows Preinstallation Environment-打造属于自己的个性U盘
- 奥尔所有java游戏_奥尔-少年侦探JS
- 用javamail解析邮件(失败,浏览器无法直接解析阅读,变成文件了)
- [附源码]计算机毕业设计springboot农产品销售网站
- React Native错误之 null is not an object (evaluating ‘_RNGestureHandlerModule.default.Direction)-坑
- ASA防火墙之基于用户MPF配置实例
- Open cv2 识别红绿灯
- 【虚拟试衣论文笔记】Towards Scalable Unpaired Virtual Try-On via Patch-Routed Spatially-Adaptive GAN
- 塔望 · ​食业​中国|文化对消费者行为的影响
- (含源码下载)利用Pytorch搭建GPU视觉处理接口