Tag: PHP

在Docker中访问php错误日志

我如何访问我的容器的PHP错误日志? 出于某种原因,我真的很难find如何做了很长一段时间后,search各种文章。 我正在使用一个简单的php7 apache容器,如下所示:FROM php:7-apache RUN apt-get update -y && apt-get install -y \ libpng12-dev \ libfreetype6-dev \ libjpeg62-turbo-dev \ curl \ libcurl4-openssl-dev \ libxpm-dev \ libvpx-dev \ && docker-php-ext-configure gd \ –with-freetype-dir=/usr/lib/x86_64-linux-gnu/ \ –with-jpeg-dir=/usr/lib/x86_64-linux-gnu/ \ –with-xpm-dir=/usr/lib/x86_64-linux-gnu/ \ –with-vpx-dir=/usr/lib/x86_64-linux-gnu/ \ && docker-php-ext-install \ pdo \ pdo_mysql \ gd \ curl \ && a2enmod rewrite \ […]

ReactPHP和docker:无法将主机从phpparsing到nginx容器

我使用docker和微服务。 想象一下,我们有3个服务: user API / gateway API \ hotel API 请求通过服务的网关。 我有容器与php和nginx ,其中卷是相同的。 接下来我给出configuration列表: server { server_name gateway.api.loc; root /var/www/der-ibe/ibe-gateway-api/web; client_max_body_size 32m; location / { try_files $uri @rewriteapp; } location @rewriteapp { rewrite ^(.*)$ /app.php/$1 last; } location ~ ^/(app|app_dev|config)\.php(/|$) { … } } server { server_name hotel.api.loc; root /var/www/der-ibe/ibe-hotel-api/web; client_max_body_size 32m; location / { […]

Laravel cron执行两个php版本的命令

在尝试使用Laravel的调度程序执行cron作业时,我在日志文件中看到,使用php7和php7.1执行的命令是奇怪的! 谁能解释发生了什么? 以下是日志文件内容的截图: 我的crontab文件如下所示: * * * * * cd /var/www/ && php /var/www/artisan schedule:run >> /var/www/storage/logs/cron.log 2>&1

Nginx重写到根目录下的子文件夹

docker运行在后端专用networking中,我有一些微服务,并且想要build立一个由nginxpipe理的dynamic路由,以便它可以select基于URI的微服务。 我有三个问题: 我需要nginx从URI中path的第一部分获取fastcgi_pass指令的域名,所以从语句fastcgi_pass app:9000; “app” fastcgi_pass app:9000; 应该从这里来: https://example.com/app/foo/bar : https://example.com/app/foo/bar 。 如果URI中的URI是https://example.com/another-app/foo/bar ,则该指令看起来像fastcgi_pass another-app:9000; 是否可以dynamic地这样做,或者我将不得不为每个FastCGI服务器创build一个单独的位置? 我也需要它根据相同的第一个URIpath段重写到根目录下的一个文件夹。 我写了一个configuration,但得到404错误。 我是nginx的新手,只注意到nginx和php-fpm容器中的path不匹配。 404错误可以与这个事实相关吗? 这种路由是否可能(详情请参阅下面的configuration)? 另一个select是为每个微服务创build一个单独的位置,但我不想每次添加或删除微服务时都要更改此configuration。 这是我的configuration: server { server_name _; root /services; #rewrite to the subfolder under root depending on the first section in the path rewrite ^/(\w+)(/|$) /$1/app_dev.php$is_args$args last; location / { # try to serve file […]

如何使用cli启用php5-redis?

我有一个docker容器,我看到所有的PHP模块: root@7b995118fc27:~# php -m [PHP Modules] Core ctype curl date dom ereg fileinfo filter ftp hash iconv json libxml mbstring mysqlnd openssl pcre PDO pdo_sqlite Phar posix readline Reflection session SimpleXML SPL sqlite3 standard tokenizer xml xmlreader xmlwriter zlib [Zend Modules] 正如我们所看到的,在这个列表中没有php5-redis。 当我尝试安装它,我收到一条消息,说它已经安装: root@7b995118fc27:~# apt-get install php5-redis Reading package lists… Done Building dependency tree Reading […]

Docker php:什么是:Docker Hub上的zts php镜像

正如我所看到的: https : version_number-zts我已经看到了标签为: version_number-zts或version_number-zts-alpine ,我想知道zts在这些标签上表示什么,以及如何与fpm或Apache的图像有很大的不同吗?

Docker默认不提供服务

在过去的两天里,我一直在与docker工作人员一起摔跤,并在官方docker工人网站上阅读了大量的页面,并在stackoverflow上阅读,但是我所阅读的内容似乎只是增加了混乱。 不仅因为docker-compose.yml文件的语法似乎随每个版本而改变。 我已经到了让我的网站以下列configuration运行的地步,但是还有一些重大问题。 服务似乎不在您所期望的位置。 每次我重新启动docker(docker-compose)时,我必须确保IP地址没有改变我的MySQL容器。 当它改变时,我需要改变我的代码,以便它连接到正确的服务器。 这创造了一个不可用的环境。 当我终于明白,我可以通过select一些模糊的IP地址为连接(172.18.0.x),MySQL的工作,我的下一个问题是memcached也可在PHP容器内。 把这里的IP地址更改为隐藏的docker IP在我的GIT仓库中也不会看起来很好。 有什么办法可以普遍解决这个问题,而不是每次添加服务时都要处理同样的模糊问题? 这是我的docker-compose.yml: version: "3.3" services: memcached: image: memcached:alpine container_name: gok_mamcached ports: – "11211:11211" expose: – 11211 mysql: image: mysql:5.7 container_name: gok_mysql environment: – MYSQL_ROOT_PASSWORD=root – MYSQL_DATABASE=database – MYSQL_USER=user – MYSQL_PASSWORD=password ports: – "3306:3306" expose: – 3306 restart: always php: image: wildscamp/php container_name: gok_php environment: – […]

如何正确共享两个容器之间的相同主机卷?

因为当Docker Compose改变了它的组成文件版本时, volumes_from消失了,我在如何在不同的容器之间共享一个卷时感到有点volumes_from 。 看下面的例子,一个PHP应用程序住在一个PHP-FPM容器中,Nginx住在第二个。 version: '3.3' services: php: build: context: ./docker/php7-fpm args: TIMEZONE: ${TIMEZONE} env_file: .env volumes: – shared-volume:/var/www nginx: build: ./docker/nginx ports: – 81:80 depends_on: – php volumes: – shared-volume:/var/www volumes: shared-volume: driver_opts: type: none device: ~/sources/websocket o: bind 为了使应用程序的工作当然Nginx不得不访问PHP文件,并有volumes_from帮助我们很多。 现在这个选项已经没有了。 当我尝试命令docker-compose up它结束与以下消息: 错误:对于websocket_php_1无法创build容器的服务php:错误,同时挂载卷选项:type ='none'device ='〜/ sources / websocket'o ='绑定':没有这样的文件或目录 如何正确共享两个容器之间的相同主机卷?

MySQLi没有finddockerized的PHP

我试图dockerize我的网站。 我有Nginx和PHP启动和运行,它的工作发现除了我不能连接到数据库。 当页面加载时,我得到的错误: Fatal error: Uncaught Error: Class 'MySQLi' not found in /private/conn.php:8 Stack trace: #0 /public_html/index.php(2): require() #1 {main} thrown in /private/conn.php on line 8 我在第8行的连接线是: $db = new mysqli("$host", "$user", "$pass", "$db", "$port"); 现在,这用于我的旧设置工作正常,但自从搬到一个新的和安装php7.1.5我不能得到它运行。 现在,我还没有使用mysqlnd,所以这可能是我的一个误解,但mysqlnd包括mysqli驱动程序。 phpinfo的输出: 我怎样才能得到这个运行? 或者我现在应该使用不同的驱动程序?

Symfony:如何使用Docker指定端口和scheme?

用symfony遇到url生成问题; 使用docker-compose运行php,nginx和postgreSQL。 docker-compose.dev.yml services: php: volumes: – '.:/srv' environment: – SYMFONY_ENV=dev front: environment: – VIRTUAL_HOST=localhost – VIRTUAL_PORT=8080 ports: – 0.0.0.0:8080:80 volumes: – ./web:/srv – /keys/reports.crt:/certs/domain.crt:ro – /keys/reports.key:/certs/domain.key:ro 哪个正确设置nginx,允许我在localhost:8080上访问它localhost:8080 – http 200 OK 问题是,symfony和树枝没有正确使用这个url。 例如 index.html.twig <link rel="stylesheet" type="text/css" href="{{ url }}{{ asset('email/web/styles/main.css') }}?v=1"> 输出错误的scheme并不包括8080端口。 HTTPS:?//localhost/email/web/styles/main.css V = 1 一个build议是将这些variables添加到.env文件 SERVER_HOST=localhost SERVER_SCHEME=http SERVER_PORT=8080 但是这没有效果。 symfony config_dev.yml没有指定https或不同端口的任何内容,对于基本configuration也是如此。 […]