Tag: PHP

启动docker容器与主机安装到容器

我是初学者,刚开始使用docker,在发布之前,我谷歌很多,但混合混乱的结果很多。 我用这个命令启动了docker docker run -itd –name dockWeb2 -v /var/www/wordpress/ -p 80:80 atozchevara/rpi-apache-php5 希望我能直接安装到容器WordPress的安装,因为默认情况下,它select内部容器/var/www/index.phppath,覆盖它我用-v标志。 但它不起作用。 我尝试使用多个端口传递-p参数再次为每个端口,但也给错误docker run -itd –name dockWeb3 -v /var/www/wordpress/ -p 80:80 -p 22:22 atozchevara/rpi-apache-php5 66a959e4e99af8122705913005fcae12e2e8a5203da7b77ff1717751314fca28 docker: Error response from daemon: driver failed programming external connectivity on endpoint dockWeb3 (eb42a619a8c79961d35d59e0d8930a92541a20132525055afb3b0d2d87483e7f): Bind for 0.0.0.0:80 failed: port is already allocated. 否则可能已经上传我的wordpress使用SSH到容器的/var/www/位置。

Nginx的代理服务器传递真正的IP不起作用

我在Docker容器中运行一个nginx反向代理服务器。 后端是在主机上运行的apache服务器,它正在侦听10082端口。 Laravel处理请求。 我用 $request->getClientIp() 得到真正的IP。 然而,直接通过http://myip:10082访问服务器的结果没有代理与通过反向代理访问它的结果冲突。 laravel中的testing代码: echo $request->ip().'<br>'; echo $request->headers->get('X-Real-IP').'<br>'; echo $request->getClientIp().'<br>'; 代理的结果: 192.168.80.2 218.205.17.167 192.168.80.2 没有代理的结果(XX.XXX.236.29是我的真实IP): XX.XXX.236.29 XX.XXX.236.29 nginx的configuration: server { listen 80; server_name myserver.com; access_log logs/myserver.access.log main; location / { proxy_pass http://myip:10082; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 我很困惑。 有人可以帮我解决这个问题吗? 谢谢!

Docker mysql_connect():无法连接

考虑到我试图运行在PHP 5.4的docker环境,由于Kohana PHP MVC是一个框架,没有更新,不再支持,得到以下错误 mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)" ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(2) ["file":protected]=> string(64) "/var/www/html/modules/database/classes/kohana/database/mysql.php 我的docker命令是 sudo docker run -d -p 8080:80 -p 3307:3306 -p 22:22 -v "/home/me/public_html/project-folder:/var/www/html" ushios/lamp-ubuntu 我错过了什么使它与数据库的工作,谢谢

使用envvariablesprepend命令 – 包括子命令

我需要将一个环境variables添加到Laravel的php artisan migrate命令中,以便与docker一起使用,例如: env DB_HOST=127.0.0.1 php artisan migrate 我在我的.zshrc文件中创build了一个函数,如下所示: function migrate() { (env DB_HOST=127.0.0.1 php artisan migrate $*) } 然而,Laravel的指挥结构的工作方式是这样的: migrate migrate:install Create the migration repository migrate:refresh Reset and re-run all migrations migrate:reset Rollback all database migrations migrate:rollback Rollback the last database migration migrate:status Show the status of each migration 所以这不适用于这样的命令: migrate:refresh –seed 有没有一种方法可以编写函数,也为所有这些“子”命令添加variables?

Gitlab CI:保持阶段之间的MySQL数据

如何在不同的构build阶段持续保存MySQL数据? 我把MySQL设置为服务,但是从构build阶段到部署阶段MySQL数据库是空的,我无法find任何信息。 示例gitlab-ci.yml : image: php:latest services: – mysql:5.6 stages: – build – deploy build: stage: build script: – [INSERT MYSQL DATA] allow_failure: false artifacts: when: on_success paths: – /var/lib/mysql/ deploy: stage: deploy script: – [MYSQL DUMP] dependencies: – build allow_failure: false when: on_success 即使在构build阶段成功插入数据,MySQL转储也将是空的。

AWS ECS Docker – nginx:没有在上游find主机

我试图使用docker在AWS ECS上运行一个php + mysql应用程序。 应用程序堆栈由一个mysql,elk,php-fpm和nginx docker容器组成。 这些容器都运行在同一个docker机器上。 当任务启动时,nginx容器退出时出现以下错误: nginx:[emerg]主机在/etc/nginx/conf.d/upstream.conf:1的上游“php:9001”中找不到 。 Nginx的Dockerfile: FROM alpine:3.4 RUN apk add –update nginx #Clear Cache and Temp Data RUN rm -rf /var/cache/apk/* && rm -rf /tmp/* ADD nginx.conf /etc/nginx/ ADD symfony.conf /etc/nginx/conf.d/ RUN echo "upstream php-upstream { server php:9001; }" > /etc/nginx/conf.d/upstream.conf RUN adduser -D -g '' -G www-data www-data […]

如何让Docker容器保持足够长的时间以便New Relic发送跟踪的exception?

我们在一个Docker容器中运行一个php cli命令,安装New Relic deamon来跟踪exception。 问题是New Relic 以1分钟的时间间隔发送exception跟踪,但是当我们的php进程由于exception而崩溃时,容器马上就被杀死了。 是否有一个(简单的)解决scheme来保持容器活着大约一分钟后,PHP进程已经死亡,例如通过包装在一些其他的脚本/程序?

docker上的Nginx默认页面

// docker-compose.yml web: image: nginx:latest ports: – "8080:80" volumes: – ./code:/code # – ./site/site.conf:/etc/nginx/conf.d/site.conf – ./site/site.conf:/etc/nginx/sites-available/site.conf – ./site/site.conf:/etc/nginx/sites-enabled/site.conf links: – php php: build: ./php volumes: – ./code:/code // site/site.conf server { index index.php index.html; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; root /code; location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; […]

连接到运行MariaDB的另一个Docker容器时,MYSQLI连接被拒绝

我开始用Docker弄脏我的手,我试图让我的PHP应用程序运行在使用nginx的docker容器中,以连接到另一个运行MariaDB的容器中运行的数据库。 当我运行的容器,我可以连接没有任何问题,从我的电脑数据库(使用Sequel Pro),但是当我尝试连接到数据库从在nginx容器中运行的PHP应用程序,我得到以下mysqli错误: 警告:mysqli_connect():(HY000 / 2002):在第7行> /app/web/php/db-config.php中拒绝连接无法连接到数据库,死于错误: 发生错误的db-config.php如下所示: define('DB_HOST', '0.0.0.0:3306'); define('DB_NAME', 'Jumpooling'); define('DB_USER', 'root'); define('DB_PASSWORD', 'root'); $con=mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die('Failed to connect to the database, died with error:'); 所有的docker-compose.yml文件内容都在这个仓库中。 我错过了什么?

克隆和轻松运行laravel应用程序

我在本地机器上开发了我的第一个laravel web应用程序。 克隆和运行其他人在其他计算机上的本地Web应用程序的最佳方式是哪一种? 我想分享这个应用程序,并简化“克隆”和“运行”的过程。 也许docker或拉托克? 我想避免在其他机器上安装PHP,Apache和Mysql。 我的主要目标是克隆存储库,并轻松地在其他计算机上运行它。 你能提供最好的工具或方法来做到这一点?