引言:
今天在部署服务器的时候,使用composer来安装依赖。遇到了php
The Process class relies on proc_open, which is not available on your PHP installation.linux
开始的时候,我有些不知所措,因而冷静下来思考一番,而后goolge了一下
web
解决方法:shell
在php.ini中,找到disable_functions选项,看看后面是否有proc_open函数被禁用了,若是有的话,去掉便可
数据库
其实若是php的文档熟悉的话,你应该立刻就能知道proc_open其实是一个函数,是php用来和shell交互的函数,通常这种能够直接做用于操做系统的函数是很是不安全的,对于这种不安全的函数,老是要作一些措施来进行保护
apache
正如在google上寻找找的答案同样,在php.ini的配置中,找到disable_functions选项,这个选项就是专门用来禁止某些不安全函数的,尤为在命令行运行时,极可能对操做系统带来安全隐患安全
回忆:服务器
记得两年前写想要写定时备份数据库的脚本的时候,起初个人本意是使用php来写,可是使用到system函数的时候,却老是没有办法使用,我一度觉得是个人系统有问题,后来没有为了完成任务,我很是无奈的就使用了shell来完成了那个任务composer
如今回想起来,我当时遇到的问题和此时遇到的问题殊途同归,而后加上本身对linux命令行的理解,而后开始到,我或许应该写下些什么。函数
使用PHP的时候,你能够用它来写网页,脚本,可是有些时候,在网页上和命令行下使用的配置应该是不同的
若是使用apache服务器的话,那么还有专门给apache使用的php.ini配置,若是对PHP的运行原理不清晰的话,很容易就会被各类各样的配置迷惑
在不肯定php.ini的配置以前,其实咱们能够简单的用linux命令行 find / -name php.ini 命令来查看,整个系统中,到底有多少的配置文件
通常正常来讲,通过web的状况下,使用的是/etc/php.ini
而若是使用命令行的话,可能会使用php安装目录下的php.ini
若是还有其余的,那么查看一下也是可以找到缘由的