记一次proc_open没有开启心得感悟
引言:
今天在部署服务器的时候,使用composer来安装依赖。遇到了
The Process class relies on proc_open, which is not available on your PHP installation.
开始的时候,我有些不知所措,于是冷静下来思考一番,然后goolge了一下
解决方法:
在php.ini中,找到disable_functions选项,看看后面是否有proc_open函数被禁用了,如果有的话,去掉即可
其实如果php的文档熟悉的话,你应该马上就能知道proc_open实际上是一个函数,是php用来和shell交互的函数,一般这种可以直接作用于操作系统的函数是非常不安全的,对于这种不安全的函数,总是要做一些措施来进行保护
正如在google上寻找找的答案一样,在php.ini的配置中,找到disable_functions选项,这个选项就是专门用来禁止某些不安全函数的,尤其在命令行运行时,很可能对操作系统带来安全隐患
回忆:
记得两年前写想要写定时备份数据库的脚本的时候,起初我的本意是使用php来写,但是使用到system函数的时候,却总是没有办法使用,我一度以为是我的系统有问题,后来没有为了完成任务,我非常无奈的就使用了shell来完成了那个任务
现在回想起来,我当时遇到的问题和此时遇到的问题异曲同工,然后加上自己对linux命令行的理解,然后开始到,我或许应该写下些什么。
使用PHP的时候,你可以用它来写网页,脚本,但是有些时候,在网页上和命令行下使用的配置应该是不一样的
如果使用apache服务器的话,那么还有专门给apache使用的php.ini配置,如果对PHP的运行原理不清晰的话,很容易就会被各种各样的配置迷惑
在不确定php.ini的配置之前,其实我们可以简单的用linux命令行 find / -name php.ini 命令来查看,整个系统中,到底有多少的配置文件
一般正常来说,经过web的情况下,使用的是/etc/php.ini
而如果使用命令行的话,可能会使用php安装目录下的php.ini
如果还有其他的,那么查看一下也是能够找到原因的
尾语:
其实我曾经一直都是一个不太爱钻研的人,遇到问题的时候,我总是想着去逃避,这么多年积累下来,感觉自己就是一个问题少年,遇到同样问题的时候,我虽然总是能回想起那曾经遇到的类似的问题
但是这样其实没有什么意义,现在我逐渐明白,逃避是没有办法解决任何问题的,只有不断的学习,并且勇于思考,才能有所收获。
不好的习惯要善于去改变,我相信,未来我遇到问题的时候,我的第一反应不是我曾经遇到过这样的问题,而是我曾经解决过这样的问题。
不过如是如此的话,那应该就不算做是问题了!
记一次proc_open没有开启心得感悟的更多相关文章
- composer安装出现proc_open没有开启问题的解决方案
今天在安装下载项目的时候,使用composer来安装依赖.遇到了 The Process class relies on proc_open, which is not available on yo ...
- Android记一次后台保活设计心得2018
首先我并不推荐也不喜欢手机应用通过各种手段后台保活,但是当产品经理确定一定以及肯定地提出了这个需求,活着应用有着必须常驻后台的理由,也就只有硬着头皮去与各个手机的后台管理机制做斗争了. 背景:因为开发 ...
- h5嵌入视频遇到的bug及总结
最近做的一个h5活动因为嵌入视频而发现了好多以前从未发现的问题,在测试的时候不同系统不同版本不同环境等多多少少都出现了些问题,搞得我也是焦头烂额的,不过好在最终问题都解决了,自己也学到了好多东西,为了 ...
- 反序列化问题的研究之java篇
博客园很早就开通了,当时下决心要把自己的经验心得记录上去,但是却没有做到,因为一直觉得自己搞得东西可能还是比较的初级,感觉拿不出手,所以也就是只是把它记录在在印象笔记上面(三年下来,还是整理和收藏了一 ...
- h5嵌入视频遇到的bug及总结---转载
最近做的一个h5活动因为嵌入视频而发现了好多以前从未发现的问题,在测试的时候不同系统不同版本不同环境等多多少少都出现了些问题,搞得我也是焦头烂额的,不过好在最终问题都解决了,自己也学到了好多东西,为了 ...
- arcengine 开发经典帖
http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=25575&page=1&extra= 使用ArcGIS Engine 开发自定义 ...
- Android自学反思总结(上)
从接触Android到现在有几个月的时间了,基本全部都是靠自学,从大一上学期学习完c语言,接着利用寒假时间和开学一个月左右的时间自学完javase,接着在导员的督促下,开始了Android学习之旅,现 ...
- 规划自己的生活,从使用GTD时间管理法开始
前言 为了不再浪费时间,不在茫然度过每一天,我为自己应用了GTD时间管理法,之前并不知道这种方法,实际和我自己定制的也差不太多,下面说说这个方法. 一.GTD时间管理 时间管理法有很多,而GTD( ...
- MongoDB建立主从复制小案例(一主一从)
花了两天学习了mongoDB, 今天接触到了mongo的主从配置, 把它记下来 1. 开启两个mongo服务器(用于一主一从, 没有加安全验证相关参数 : 可以使用mongd-help查看) mong ...
随机推荐
- 10个常见的Node.js面试题
如果你希望找一份有关Node.js的工作,但又不知道从哪里入手评测自己对Node.js的掌握程度. 本文就为你罗列了10个常见的Node.js面试题,分别考察了Node.js编程相关的几个主要方面. ...
- Hibernate(Control)
案例:http://blog.csdn.net/jiuqiyuliang/article/details/39380465 对象关系映射框架,它对JDBC进行了轻量级的对象封装,可以使用对象编程思维来 ...
- SQLServer------Join的使用方法
参考菜鸟教程网: http://www.runoob.com/sql/sql-join.html select a.Canteen,b.OrderNum,b.CreateTime,c.Name fro ...
- dict与list的in 操作的速度
今天刷一道题,计算一串数字中其中两个数字相加等于目标值的题目,且取其中最早的两个数字(最后一个数字的位置靠前). 如[1,25,32,4,3,6,9,5] targer:9 输出 [3,6] ...
- Java IO流学习总结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- ThinkPHP Where 条件中使用表达式
本文转自:这里 Where 条件表达式格式为: $map['字段名'] = array('表达式', '操作条件'); 其中 $map 是一个普通的数组变量,可以根据自己需求而命名.上述格式中的表达式 ...
- MyEclipse安装插件的几种方法
本文讲解MyEclipse(MyEclipse10)的三种方法,以SVN为例 Eclipse update site URL: http://subclipse.tigris.org/update_1 ...
- vtkQuadric创建二次曲面
在本实例中,我们将用到vtkQuadric.vtkSampleFunction.vtkContourFilter三个类,分别是二次曲面函数.函数曲面抽样和等高滤波. vtkQuadric负责二次曲面基 ...
- Ubuntu GNURadio gr-Radar 的安装
1.安装Ubuntu 进行磁盘管理,设置不少于50G的未分配空间 使用rufus-2.8制作Ubuntu 16.4安装盘 保持U盘插入,重启电脑,开机时进入BIOS设置从该安装盘启动并安装 2.激活w ...
- Xcode 快捷键、常用技巧
关于iOS开发中的技能快捷键 经常使用鼠标太TM的D疼了,快捷键能大大地提高我们的开发速度,使我们的手指尽情的在键盘上飞舞,优美的代码,哈哈哈,那些常规的复制.粘贴.剪切请自行度娘或者Google一下 ...