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相关推荐

  1. phar的认识与使用

    对于Web应用的开发,如果你没用使用正确的工具,那开发过程可能会变得困难和痛苦.如果你之前开发过Java程序,我相信你肯定知道Jar文件(Jar是Java ARchive的缩写).一个应用,包括所有的 ...

  2. PHP phar反序列化

    以题为例 进来后我们注册一个账户并登录 查看一下网页源代码发,并没有发现什么我们上传个文件看看能不能通过菜刀获取权限 发现并不能连接上.此时我们通过BP抓包看看能不能获取到有用的信息 发现一个file ...

  3. PHP phar详解

    一  phar文件是什么 Jar(Java Archive)文件,一个应用,包括所有的可执行,可访问的文件,都打包进了一个JAR文件里,使得部署过程十分简单. 类似于JAR.phar全称为PHP Ar ...

  4. phar反序列化小结

    0x00 phar反序列化 phar反序列化即在文件系统函数(file_exists().is_dir()等)参数可控的情况下,配合phar://伪协议,可以不依赖unserialize()直接进行反 ...

  5. PHP之phar反序列化

    前言 phar反序列化来自Secarma的安全研究员Sam Thomas发现了一种新的漏洞利用方式.或许有人对phar的理解只停留在phar://协议中甚至连phar协议都没有听过,至少在了解phar ...

  6. PHP Phar反序列化总结

    文章首发于Freebuf https://www.freebuf.com/articles/web/291992.html 利用phar文件会以序列化的形式存储用户自定义的meta-data这一特性, ...

  7. php和phar后缀,PHP开发常识:什么是Phar?

    对于Web应用的开发,如果你没用使用正确的工具,那开发过程可能会变得困难和痛苦.如果你之前开发过Java程序,我相信你肯定知道Jar文件(Jar是Java ARchive的缩写).一个应用,包括所有的 ...

  8. php phar 反序列化,利用 phar 拓展 php 反序列化漏洞攻击面

    作者:seaii@知道创宇404实验室 时间:2018/08/23 0x01 前言 通常我们在利用反序列化漏洞的时候,只能将序列化后的字符串传入unserialize(),随着代码安全性越来越高,利用 ...

  9. phar.php error 139,composer.phar 安装出现PHP Fatal error解决办法

    报错: PHP Fatal error:  Uncaught exception 'PharException' with message 'phar "C:\ProgramData\Com ...

最新文章

  1. 老男孩爬虫实战密训课第一季,2018.6,初识爬虫训练-实战1-爬取汽车之家新闻数据...
  2. 创建文件夹 java_java怎么建文件夹
  3. 解决Error: That port is already in use.
  4. python中set()函数==》创建一个无序不重复的元素集(创将一个集合)
  5. mysql查询索引相关信息查询
  6. mysql 索引未命中_联合索引命中率问题导致SQL查询效率慢的问题
  7. 【软件测试从入门到放弃】熟悉阶段:软件测试流程
  8. java基础——李兴华视频
  9. 在Latex如何添加Visio绘图
  10. Unity3D 用脚本来操作游戏对象1(创建游戏对象)
  11. c语言实现一元多项式的除法,课内资源 - 基于C++的一元多项式的计算
  12. [Raspberry Pi Pico] SPI
  13. 李宏毅2021/2022春机器学习课程(机器学习基本概念简介)
  14. 转:量子密钥分发和BB84协议
  15. cadence ic5141安装包_Cadence IC5141 安装文档
  16. 请不要轻易的说:我不会
  17. 需求工程期末知识点复习
  18. Zoundry Raven网易博客设置
  19. Flutter 3 发布了(文末推荐一个免费的在线Flutter学习教程)
  20. jnz和djnz_微型计算机原理与接口技术复习题

热门文章

  1. Windows Preinstallation Environment-打造属于自己的个性U盘
  2. 奥尔所有java游戏_奥尔-少年侦探JS
  3. 用javamail解析邮件(失败,浏览器无法直接解析阅读,变成文件了)
  4. [附源码]计算机毕业设计springboot农产品销售网站
  5. React Native错误之 null is not an object (evaluating ‘_RNGestureHandlerModule.default.Direction)-坑
  6. ASA防火墙之基于用户MPF配置实例
  7. Open cv2 识别红绿灯
  8. 【虚拟试衣论文笔记】Towards Scalable Unpaired Virtual Try-On via Patch-Routed Spatially-Adaptive GAN
  9. 塔望 · ​食业​中国|文化对消费者行为的影响
  10. (含源码下载)利用Pytorch搭建GPU视觉处理接口