【发布时间】:2019-12-28 19:08:21
【问题描述】:
我在 Windows 中开发了一个项目。我使用过 PHP、MySQL(使用 PDO)和 Apache。
我用代码创建了数据库和表。没有问题。
我正在尝试在我的 Ubuntu 18.04 机器上 dockerize 这个项目。相信我,我从早上就开始尝试这个了。
该项目在本地主机上使用 CSS、JavaScript 顺利运行。但是添加到数据库时会出错。我收到的错误代码是:找不到驱动程序。 php.ini file is missing
I also don't have my apache2 folder that should be in etc/php/7.2.
我得到 SQLSTATE[HY000] [2002] 无法分配请求的地址错误我以这种方式建立连接:
$db = new PDO("mysql:host=$this->servername;charset=utf8", $this->username, $this->password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
我收到找不到驱动程序错误我以这种方式建立连接(使用 pdo_mysql):
$db = new PDO("pdo_mysql:host=$this->servername;charset=utf8", $this->username, $this->password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
我已经在 Dockerfile 中安装了 apache2 和 php。
这是我的树命令结果:
.
├── docker-compose.yml
├── Dockerfile
└── src
├── css
│ ├── css
│ │ └── dashboard.css
│ ├── fonts
│ │ └── feather
│ │ ├── feather-webfont6cfa.eot
│ │ ├── feather-webfont6cfa.svg
│ │ ├── feather-webfont6cfa.ttf
│ │ └── feather-webfont6cfa.woff
│ └── style.css
├── docker-compose.yml
├── js
│ ├── guncelle.js
│ └── resimler.js
└── php
├── about.php
├── categories.php
├── create_database.php
├── footer.php
├── header.php
├── index.php
├── info.php
├── login.php
└── logout.php
有 docker-compose.yml 和 Dockerfile 文件:
# DOCKERFILE
FROM php:7.3-apache
RUN apt-get update
RUN apt-get install -y git
RUN docker-php-ext-install pdo pdo_mysql mysqli
RUN a2enmod rewrite
#Install Composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php composer-setup.php --install-dir=. --filename=composer
RUN mv composer /usr/local/bin/
COPY src/ /var/www/html/
EXPOSE 80
# DOCKER-COMPOSE.YML
version: '3'
services:
mysql:
image: mysql:8.0
container_name: vt_album
command: --default-authentication-plugin=mysql_native_password
volumes:
- .:/application
restart: always
environment:
- MYSQL_ROOT_PASSWORD=2222
- MYSQL_PASSWORD=2222
ports:
- "3306:3306"
website:
container_name: php_album
build:
context: ./
volumes:
- ./src/:/var/www/html
ports:
- 8080:8080
depends_on:
- mysql
【问题讨论】:
标签: php pdo docker-compose apache2 ubuntu-18.04