想在代码里面执行exec(),shell_exec()等linux命令,结果没有任何反应

技术问题 · an94er · 于 5年前 发布 · 2156 次阅读

操作经过

我是docker-compose部署的,然后想在php文件中用exec(),shell_exec()来执行linux命令,如exec("echo 'aa' > 1.log");

执行过程并不报错,但是1.log是没生成

这样的指令我在本机,非服务器上面执行时完全可以的

问题分析

yii框架作了限制

没有权限,(但是我时root运行的,应该没问题)

请求指点

请问版主这是什么情况呢,谢谢~

共收到 3 条回复
Fecmall#15年前 0 个赞

php是在docker容器里面的,

1.你需要进入容器查看:docker-compose exec php bash

2.或者,你通过磁盘映射的方式,https://github.com/fecshop/yii2_fecshop_docker/blob/master/docker-compose.yml

php:  
    build: 
      context: ./services/php/docker/
    restart: always
    volumes:  
      - ./app:/www/web
      - ./services/php/etc/php7.1.13.ini:/usr/local/etc/php/conf.d/php7.1.13.ini
    depends_on:
      - mongodb
      - mysql
    networks:
        - code-network 

在 volumes部分做映射

an94er#25年前 0 个赞

1.你需要进入容器查看:docker-compose exec php bash,进去搜索了,没有找到的,find / -name 1.log没有找到

2.作映射,这是建立在docker容器里面有的情况才能映射出来吧,但是限制容器里面都没有呢

Fecmall#35年前 0 个赞

log文件改成绝对路径

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics