Tag: PHP

dompdf / dompdf v0.7.0需要ext-gd * – >请求的PHP扩展gd缺失,laravelcomposer php安装与docker工人

我克隆了一个PHP-Laravel docker项目。 然后我把docker集装箱login进去。 我尝试运行composer install但失败了。 Your requirements could not be resolved to an installable set of packages. Problem 1 – Installation request for dompdf/dompdf v0.7.0 -> satisfiable by dompdf/dompdf[v0.7.0]. – dompdf/dompdf v0.7.0 requires ext-gd * -> the requested PHP extension gd is missing from your system. Problem 2 – dompdf/dompdf v0.7.0 requires ext-gd * -> […]

在Docker上向Apple APNScurlHTTP2请求失败,但在Mac OSX上运行

我正在通过新的HTTP2服务器testingApple推送通知。 为此我build立了CURL的HTTP2支持,并链接到PHP。 我通常的开发环境是PHP的Docker容器。 在容器上,我可以对任何服务器执行简单的Curl HTTP2请求,但是如果我调用Apple APNS服务器,则会调用HTTP1.1。 奇怪的。 正如你从Docker的Curl的日志中看到的那样,http2调用被“翻译”为HTTP / 1.1,从而在苹果方面失败了。 相同版本的Curl也适用于我的本地机器(Mac OSX Sierra)。 就好像Docker上的Culr不能与Apple的APNS服务器交谈HTTP2,但是可以与其他服务器交互(参见nghttp2.org的例子)。 实际上在山峰上可以看到 * ALPN, offering h2 * ALPN, offering http/1.1 而这些线路从Docker调用中丢失。 我应该在Docker上暴露一些更多的端口,还是我缺less一些configuration? 这是塞拉利昂: (master) ~/web/sites/laravel_test/laradock$ curl -V curl 7.57.0 (x86_64-apple-darwin16.7.0) libcurl/7.57.0 OpenSSL/1.0.2n zlib/1.2.8 nghttp2/1.28.0 Release-Date: 2017-11-29 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb […]

无法加载dynamic库“oci8.so”(PHP 7.2)

自PHP 7.1更新到PHP 7.2以来,我无法安装oci8。 我有这个错误: root @ 3ab6027c8d95:/ var / www#php -v PHP警告:PHP启动:无法加载dynamic库'oci8.so'(尝试:/usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so(libmql1.so:无法打开共享目标文件:没有这样的文件或目录),/usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so.so(/ usr / local / lib / php / extensions / no -debug-non-zts-20170718 / oci8.so.so:无法打开共享对象文件:没有这样的文件或目录) 版权所有(c)1998-2017 Zend Technologies与Zend OPcache版权所有(c)1998-2017(C)1998年12月版本(c)1999-2017,由Zend Technologies 我使用的是Docker环境,我为此创build了一个github仓库,如果我使用PHP的版本7.1 ( shenron / docker-php-fpm:7.2 ),它就可以工作。 我不明白为什么脚本尝试启动这个文件: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so.so 。 以我的观点来看,有两种可能性。 或者驱动程序不兼容,或者pecl今天不能安装oci8。 有没有人有同样的问题? 感谢您的帮助。

Docker化API:cURL调用自失败

我有一个REST API,我正试图进入一个容器。 除了调用使用其他端点function的端点之外,一切都可以工作。 当终点尝试对其他API端点之一进行cURL调用时,它将失败。 例如:我将商品添加到购物车,然后设置地址。 当地址设置时,API会发现它有足够的信息来获取运输报价并调用运输报价终点。 连接超时和原来的调用返回一个错误,因为它无法获得运输报价。 如果我直接打电话给航运报价终点,那么它就可以工作,所以这不是终点的问题。 它仅在使用cURL从单独的终点内请求数据时才会失败。 我不确定这是否正常工作,因为我现在只是在本地进行testing。 我怀疑这与我的本地环境有某种关系。 我进入容器并testingcurl,以确保它能够连接到事物,并且正常工作。 此外,运输报价终点使用curl从服务提供商处获得报价,并且工作也是如此。 我正在使用:Windows 10 Docker for Windows(17.09.1-ce-win42) 提前感谢任何帮助!

如何在Docker执行器中运行gitlab runner中的mongodb服务

我正在尝试在gitlab中build立pipe道 ,用mongodb作为数据库来testing在laravel中写的api 。 以下是我的.gitlab-ci.yml文件。 image: registry.gitlab.com/sadhu/web:latest services: – name: mongo:3.4.10 variables: MONGO_URI: 'mongodb://mongo/demo' stages: – test unit_test: stage: test script: – npm install – composer install – cp .env.testing .env – php artisan key:generate – php artisan config:cache – php vendor/bin/phpunit –coverage-text –colors=never 但是unit testing的结果是负面的。 以下是我的unit testing的结果: 1) TestBedApiTest::testDuplicateId Expected status code 409, got 500. […]

使用docker,nginx,php-fpm服务静态文件

我在Docker中使用容器 在哪里我有一个来自PHP-FPM,另一个来自Nginx。 但我有问题与Nginx的服务静态文件(CSS,JS) 返回状态代码:404未find Nginxconfiguration server { # Set the port to listen on and the server name listen 80; listen [::]:80; # Set the document root of the project root /var/www/html; # Set the directory index files index index.php; #Set server name server_name myproject; # Specify the default character set charset utf-8; # Specify […]

错误1045(28000):拒绝访问用户'root'@'localhost'(使用密码:Y

我正在使用PHP和MySql的泊坞窗应用程序。 在使用命令行访问MySql时,我遇到一个错误: 我的docker – 撰写文件:版本:'2' services: web: image : php:7.0-apache build : ./app volumes : – "./app:/var/www/html" ports: – "5000:80" links: – mysqlserver mysqlserver: image : mysql ports: – "3307:3306" environment: MYSQL_ROOT_PASSWORD : rootpass MYSQL_DATABASE : test_db volumes: – "/var/lib/mysql" 我进入了MySQL容器并inputMySQL -u root -p并input了密码,但遇到了这个错误: 错误1045(28000):访问拒绝用户'root'@'localhost'(使用密码:Y ES) 如何通过命令行或其他方式访问容器中的test_db数据库? 谢谢

使用docker在PHP 7.2上启用Opcache

我使用的是PHP:7.2-apache dockerfile,我试图启用opcache。 在我的dockerfile中,我包含以下行: RUN docker-php-ext-install opcache; 我在/usr/local/etc/php/conf.d/opcache.ini位置包含一个opcache.ini文件 当用cli运行php –ini时,我可以看到opcache.ini被正确parsing,但是phpinfo()不显示opcache条目。 我不知道我错过了什么,但我似乎无法启用我的php7.2-apache图像上的opcache。 我的dockerfile如下: FROM php:7.2.0-apache # load in build args ARG COMMON_DEPENDENCIES ARG COMMON_PACKAGES ARG GITHUB_TOKEN # bring package manager up to date RUN apt-get -y upgrade –fix-missing \ && apt-get -y update # install common packages RUN apt-get install -y $COMMON_DEPENDENCIES RUN docker-php-ext-install $COMMON_PACKAGES # configure […]

Docker PHP MySQL连接被拒绝

我想运行一个站点使用多个容器configuration – 一个用于Apache,第二个用于MySQL,第三个用于myadmin。 一切都开始好,安装程序运行顺利,但是当我尝试运行一个PHP应用程序,我得到mysqli::__construct(): (HY000/2002): Connection refused in system/libraries/drivers/Database/Mysqli.php [54]错误。 似乎连接设置有问题,但是我通过在单独的容器上运行的PHP MyAdmin检查了站点,并从那里复制了数据库主机IP,以确保它是正确的。 我如何/我应该从PHP容器连接到MySQL数据库? 这是我docker-compose.yml文件: version: '3' services: web: build: context: ./etc/php args: – APP_HOST=${APP_HOST} – MYSQL_USER=${MYSQL_USER} – MYSQL_PASSWORD=${MYSQL_PASSWORD} – MYSQL_PORT=${MYSQL_PORT} – MYSQL_DATABASE=${MYSQL_DATABASE} ports: – ${APP_PORT}:80 – ${APP_PORT_SSL}:443 volumes: – ./var/bin/:/tmp/bin/ – ./app/:/var/www/html/ – ./log/apache2/:/var/log/apache2/ – ./etc/php/conf/:/usr/local/etc/php/conf.d/ environment: – VIRTUAL_HOST=${VIRTUAL_HOST} db: build: context: ./etc/mysql args: – […]

与RabbitMQ断开连接后,Apache进程不会死亡

我试图在我的项目中使用服务器端事件机制。 (这就像长期投票类固醇) 从“ 从服务器发送事件 ”字幕的例子工作得很好。 几秒钟后,断开连接,apache进程被终止。 这种方法工作正常。 但! 如果我尝试使用RabbitMQ ,则在浏览器从服务器( es.close() )断开连接后,Apache不会导致进程中断。 并且进程保持原样并在docker容器重新启动后才被杀死。 connection_aborted和connection_status根本不起作用。 connection_aborted仅返回0 ,connection_status即使在断开CONNECTION_NORMAL后也返回CONNECTION_NORMAL 。 只有当我使用RabbitMQ时才会发生。 没有RMQ这个function运作良好。 ignore_user_abort(false)也不起作用。 代码示例: <?php use PhpAmqpLib\Channel\AMQPChannel; use PhpAmqpLib\Connection\AbstractConnection; use PhpAmqpLib\Exception\AMQPTimeoutException; use PhpAmqpLib\Message\AMQPMessage; class RequestsRabbit { protected $rabbit; /** @var AMQPChannel */ protected $channel; public $exchange = 'requests.events'; public function __construct(AbstractConnection $rabbit) { $this->rabbit = $rabbit; } public […]