Tag: PHP

php应用程序和docker共享单个环境文件

我已经dockerized我的PHP应用程序,但现在我有2个环境文件,一个用于我的PHP应用程序,一个用于docker-compose文件。 有没有办法这两个共享环境文件? 事实上,我想只能编辑服务器上的单个文件(用于部署)。 我正在使用这个包在php环境处理: https : //github.com/vlucas/phpdotenv

在Docker镜像中安装Composer

所以我尝试了很多方法,但是这似乎是在docker图像中安装Composer的最合法的方式: https://hub.docker.com/r/composer/composer/ 现在,当我试图做“相同”,我越来越: latest: Pulling from composer/composer Status: Image is up to date for composer/composer:latest Composer could not find a composer.json file in /app 当我运行它时: docker run –rm -v $(pwd):/app composer/composer install即使我将/ app路由改为/ var / www,我仍然得到它找不到作曲者的错误。 JSON在/应用程序。 我如何使它看起来在我需要composer php的目录? 我不明白的$(pwd)一部分,但尝试了几种方法..我没有创build任何卷使用从tutum /灯的PHP即时通讯。 我也没有使用docker-compose,所以如果可能的话,告诉我一些没有docker撰写的方法。 如果需要可以提供更多的细节。 编辑 这可能是关于卷的东西? 目前我有/var/protobuf的composer.json文件,我使用这个命令: docker run –rm -v $(pwd):/var/protobuf composer/composer install告诉它关于json文件的目录,但它仍然继续在/app ,也许我需要创build卷?

如何从不同的容器中使用php&nodejs

假设我有以下情况: 泊坞窗,compose.yml version: '3' services: web: build: . links: – apache – php – node depends_on: – apache – php – node volumes: – .:/var/www/html apache: image: httpd php: image: php node: image: node 我也有一个Dockerfile FROM phusion/baseimage RUN apt-get update RUN apt-get install -yq git curl zip wget curl RUN curl -s https://getcomposer.org/installer | php […]

无法挂载Windows目录

我试图在Docker中将Windows(win10)目录挂载为卷。 我在c:\ php目录下创build了一个composer文件 … db … wordpress: links: – db:db image: wordpress:latest volumes: – ./app:/var/www/html ports: – "8000:80" restart: always 接下来,我在c:\ php目录下创build了应用程序目录。 运行docker-composer后显示wordpress,但是我的c:\ php \ app目录是空的。 接下来,我已经从Kitematic中移除了容器,并创build了一个包含代码的新容器: wordpress: links: – db:db image: wordpress:latest volumes: – ./app:/var/www/app ports: – "8000:80" restart: always 目录:c:\ php \ app仍然是空的。 当我在容器中列出目录/ var / www / app时,它显示worpdress文件。 我有两个问题: 1)是否有可能在wordpres容器中编辑windows php文件? 2)Docker保存文件的位置? […]

从php运行一个shell脚本

我有一个问题,很多networking上被问过,但没有任何解决scheme帮助我的情况。 我需要一个非常简单的网站,只需点击一下button,就可以执行一个shell命令来部署Docker容器。 为此我有3个文件都位于/ var / www / html /中: 1- Depl-Script(一个简单的Linux文件,由chmod + x和chmod 777执行,不包含.sh扩展名,包括一个命令: docker run -it -p 8080:8080 surrogate 2-一个DepGUI.php <?php // $output=shell-exec("/var/www/html/Depl-Script"); //didn't work $output=shell_exec("./Depl-Script"); //this doesn't work neither echo $output; //prints 0 $output1=shell_exec("whoami"); //prints www-data echo $output1; ?> 3-一个Main.html,包括: <form action="DepGUI.php"> <input type="submit" value="Open Script"> </form> Shell-exec不能用于运行shell脚本。 我怎么知道这是行不通的? 我检查docker容器,没有创build。 我曾经尝试过的解决scheme 1)当我从root用户运行它时,shell脚本(Dep-Script)工作正常。 2)为了确保,我更改了etc […]

在使用Docker创build的nginx服务器中禁用CSS和Javascriptcaching

我有用Docker创build的nginx服务器。 当我更改JS或CSS文件时,在浏览器强制刷新30-60秒之后出现(是,closures浏览器caching)。 如何让他们立即出现? 我的系统是Ubuntu 17。 nginx.conf user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 2048; multi_accept on; use epoll; } http { server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 15; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log off; error_log off; gzip on; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-available/*; open_file_cache max=100; client_max_body_size 4M; […]

Docker使用本地数据库的卷

我是Docker的新手。 我想使用docker安装Magento2使用现有的设置我已经有本地工作。 我的网站是在./和我的数据库位于/ var / lib / mysql中。 当我做docker-compose up -d我的mysql容器最终停止工作,容器没有链接到数据库。 我不知道为什么它不工作或链接。 泊坞窗,compose.yml version: '2' services: web: build: . ports: – "80:80" volumes: – ./:/var/www/html links: – db env_file: – env depends_on: – db db: image: mysql:5.7.18 volumes: – /var/lib/mysql:/var/lib/mysql env_file: – env Dockerfile: FROM alexcheng/apache2-php7 MAINTAINER Fu Cheng <alexcheng1982@gmail.com> RUN a2enmod rewrite ENV MAGENTO_VERSION […]

在Docker容器上的应用程序之间拒绝curl连接

我有一个网站(ZF1)和运行在同一个Docker(Laradock)容器上的API(Laravel)。 我可以通过浏览器分别访问,但是当我从网站向应用程序发出cURL请求时,我得到一个空的响应,并且头返回0.如果我输出cURL错误,那么我得到这个: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, '[API_ENDPOINT]'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_close ($ch); echo curl_strerror(curl_errno($ch)); (7) Failed to connect to [API_HOST] port 80: Connection refused 但是,如果我从应用程序向https://www.google.com发出cURL请求,则会返回结果。 我也尝试使用file_get_contents(),但我没有收到任何回应,并提出以下警告: [Thu May 18 21:41:33.828737 2017] [proxy_fcgi:error] [pid 949:tid 139999802541824] [client 172.20.0.1:49652] AH01071: Got error 'PHP message: PHP Warning: file_get_contents ([API_ENDPOINT]): failed […]

在“Message.proto”中找不到类“Google \ Protobuf \ Internal \ Message”

PHP Fatal error: Class 'Google\Protobuf\Internal\Message' not found in /app/generated_files/message.php on line 13我正在与协议缓冲区的项目工作,我编译了一个原始文件后,我似乎无法包括它既不运行它因为它不断给我这个确切的错误: PHP Fatal error: Class 'Google\Protobuf\Internal\Message' not found in /app/generated_files/message.php on line 13 在message.php我有一个.proto文件自动生成的文件,它包括Google\Protobuf\Internal\Message 。 在阅读protobuf github的问题时 ,我发现一个人有同样的问题,他认为这是composer php的错。 但在我的情况下,这不是问题因为我没有使用composer php。 我使用pecl来安装协议缓冲区,并且我有位于/etc/php5/apache2/XXXXXXXXX的库protobuf.so 。 我还在php.ini的最后一行添加了extension=protobuf.so 。 请记住,即时通讯使用docker,因此它可能是不同的,但我仍然怀疑。

PHP泊坞窗容器不加载PHP文件

我正在使用nginx,php和fpm在docker容器中启动我的php应用程序 docker run -d -p 8080:80 -v `pwd`:/var/www/html –name myphpcontainer formapro/nginx-php-fpm (请参阅formapro / nginx-php-fpm图像) 它正确加载localhost:8080 app.php 。 正如formapro/nginx-php-fpm文档中所述, app.php默认加载。 但是,然后我的PHP应用程序尝试做一个POST到formsubmit.php ,我得到这个错误: POST http://localhost:8080/formsubmit.php 404 (Not Found) 事实上,我甚至无法加载http://localhost:8080/app.php或任何PHP文件在我的应用程序。 问题是什么?