Tag: PHP

PHP7无法加载Alpine Docker容器上的memcached和redis

我正在尝试创build一个基于Alpine Linux的Docker镜像,它将安装一些模块( memcached , mongodb , oauth , openssl和redis )来运行PHP 7.1( apk add php7=7.1.9-r0 )。 我通过PECL像这样安装模块: RUN yes | pecl install \ igbinary \ redis-3.1.4 \ oauth-2.0.2 \ memcached-3.0.4 \ mongodb-1.3.3 然后将它们中的每一个添加到php.ini 。 RUN for EXT in \ igbinary \ memcached \ mongodb \ oauth \ openssl \ redis; \ do \ echo "extension=${EXT}.so" >> […]

错误:在文件'./docker-compose.yml'中,服务'build'必须是映射而不是string

我正在研究一个php docker application.Am在尝试docker-compose up命令时遇到一个错误。 试图连接一个PHP应用程序到MySQL。 我的docker撰写文件: – version: '2' services: web: container_name: modeloPHP5.4-Apache build: . ports: — 8889:80 volumes: — ./www:/var/www/html links: — db db: container_name: modeloMySQL build: context: ./ dockerfile: DockerfileDB volumes: — /var/lib/mysql ports: — 3307:3306 environment: MYSQL_ROOT_PASSWORD: password MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_DATABASE: db_test

尝试从Docker容器内连接到数据库时,“连接被拒绝”

我遇到了以下Dockerfile的一些问题: FROM php:7.0-apache RUN a2enmod rewrite RUN docker-php-ext-install pdo pdo_mysql COPY php.ini /usr/local/etc/php/ COPY . /var/www/html/ 我正在使用Slim PHP框架并尝试连接到数据库,但返回了以下错误: HTTP/1.1 500 Internal Server Error Content-Type: text/html {"error": {"text": SQLSTATE[HY000] [2002] Connection refused} 以下是引发exception的代码: // Instantiate a database connection $container['db'] = function ($c) { try { $db = $c['settings']['db']; $pdo = new PDO("mysql:host=" . $db['host'], $db['user'], $db['pass']); […]

最小化基于CentOS的Docker镜像

我build立了一个基于CentOS镜像的PHP-FPM镜像 FROM centos:7 RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && \ yum -y install php-fpm php-mysqlnd php-mbstring php-intl php-amqp php-redis php-opcache –enablerepo remi,remi-php56 && \ groupadd -g 1000 nginx && \ useradd -u 1000 -g 1000 nginx EXPOSE 9000 CMD ["php-fpm", "-F"] 并意识到最终的图像相当大(超过350MB)。 请告诉我在哪里可以删除不需要的文件在Docker Hub上的一些基于Debian的图像? rm -rf /var/lib/apt/lists/* rm -rf /var/lib/mysql 感谢您的帮助!

Symfony – 使用命令行时未知的MySQL服务器主机

所以出于某种原因,当我运行例如cache:clear我得到以下错误: 但是,当我通过浏览器查看应用程序,它似乎连接到数据库好,因为当我编辑不正确的数据parameters.yml它会在浏览器中引发错误,说它无法连接。 我使用docker,我有以下设置: php: image: zimmobe/php:5.6-apache-oraclelinux volumes: – ./:/var/www/project/ environment: – SYMFONY_ENV=dev – SYMFONY_DEBUG=1 – BASE_DIR=/var/www/project links: – mysql ports: – 3005:80 mysql: image: mysql:5.6 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: minecraftweb ports: – 3306:3306 和我的parameters.yml看起来像这样: parameters: database_host: mysql database_port: 3306 database_name: minecraftweb database_user: root database_password: root mailer_transport: smtp mailer_host: 127.0.0.1 mailer_user: null mailer_password: null secret: ThisTokenIsNotSoSecretChangeIt […]

在Docker Swarm模式下链接应用程序

我想知道如何链接到泊坞窗群模式的Web应用程序到数据库。 我是docker群模式的新手,在本地机器上有一个基本的群集设置。 任何链接将是伟大的。 示例:托pipe一个drupal应用程序(连接drupal cms容器和mysql数据库容器)。 谢谢

Behat貂皮file upload找不到提交文件

我试图在Symfony应用程序中使用Sehat来testing使用Selenium / Mink的Behat。 该应用程序正在Docker容器中运行。 我将文件直接附加到input的NodeElement ,而不是使用$driver->attachFileToField('#id-of-input', $filePath)因为我们正在处理上下文中的大量input,该方法中的input被调用: $input->attachFile($this->filesPath . '1.jpg'); 由此产生的path是: /var/www/html/src/Resources/TestImages/1.jpg 该文件当然存在于Docker容器中的path中,但是当提交表单时,会抛出以下错误: 没有有用的日志。 我已经尝试在files_path中设置files_path参数,但是在testing运行期间出现错误: unknown error: path is not absolute: 3.jpg 我错过了什么吗? 该容器的文件path是否不正确? 我试过在我的机器上使用的abspath无济于事(虽然这种方法有严重的缺点,所以我很高兴这不是解决scheme): /Users/its.me/Sites/kbs/src/Resources/TestImages/1.jpg 本地Users目录也被安装到我的docker机器,以便abspath在主机上工作。 我认为这可能是权限相关,所以我把他们都读/写/执行,但没有雪茄! 相对path不起作用。 我的图像在哪里?

libgd未安装在php:5.6-cli docker中

我有一个容器内的项目,我试图使用graphics创buildgd库。 我在容器的bash里面执行这个命令: apt-get install php5-gd 重新启动并执行php -m后没有任何更改 我该怎么办? 编辑: 我添加到我的Dockerfile中: RUN apt-get -qq update && apt-get -qq install libpng-dev RUN docker-php-ext-install gd 我执行docker build -t [name] 但是当我执行bash并键入: php -m [PHP Modules] Core ctype curl date dom ereg fileinfo filter ftp hash iconv json libxml mbstring mysql mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar […]

在Docker中通过Nginx的多个版本的PHP

我为PHP5.6运行两个docker容器: docker run –name php5 \ -v /html1:/var/www/html/site1 \ -d -p 9001:9000 php:5.6-fpm 而对于PHP7: docker run –name php7 \ -v /html2:/var/www/html/site2 \ -d -p 9000:9000 php:7-fpm 我用Nginx运行Docker容器: docker run –name nginx-cache \ -v /nginx.conf:/etc/nginx/nginx.conf \ -v /nginx/html1:/var/www/html/site1 \ -v /nginx/html2:/var/www/html/site2 \ -v /sites-enabled:/etc/nginx/sites-enabled/ \ –link php5 –link php7 -d -p 9999:80 nginx 与nginx.conf : user […]

docker-compose up -d不会在docker-compose up时创build卷

这是预期的行为还是错误? 在运行docker-compose up ,我的卷是在本地机器上创build的。 但是在运行docker-compose -d时,它们不是。 这是造成问题的docker-compose文件中的一部分: test-mysql: image: mysql:5.7 container_name: test-mysql environment: – MYSQL_ROOT_PASSWORD=root – MYSQL_DATABASE=test – MYSQL_USER=test – MYSQL_PASSWORD=root ports: – 3306:3306 volumes: – ../www/data/mysql:/var/lib/mysql 所以当第一次运行docker-compose up时,会创build../www/data/mysql文件夹。 但是,如果我用docker-compose up -d试试这个,文件夹不会被创build。