Đây là docker-compose của tôi
version: '2'
services:
nginx:
image: nginx:1.11.8-alpine
ports:
- "8081:80"
volumes:
- ./code:/usr/share/nginx/html
- ./html:/myapp
- ./site.conf:/etc/nginx/conf.d/site.conf
- ./default.conf:/etc/nginx/conf.d/default.conf
- ./error.log:/var/log/nginx/error.log
- ./nginx.conf:/etc/nginx/nginx.conf
links:
- phpfpm
phpfpm:
image: php7-fpm:latest
ports:
- "9000:9000"
volumes:
- ./code:/usr/share/nginx/html
links:
- db_mysql
db_mysql:
image: mysql:5.7.17
volumes:
- db_data:/var/lib/mysql
# restart: no
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wp2017
MYSQL_USER: wp
MYSQL_PASSWORD: wp2017
volumes:
db_data:
Đây là cách tôi xây dựng php7-fpm của riêng mình: cuối cùng
FROM php:7.1-fpm-alpine
RUN docker-php-ext-install mysqli
Tôi không thể kết nối với container mysql
$serverName = 'localhost';
$userName = 'wp';
$password = 'wp2017';
$dbName = 'wp2017';
$link = mysqli_connect[$serverName, $userName, $password, $dbName];
if [mysqli_connect_errno[]] {
printf["Connect failed: %s\n", mysqli_connect_error[]];
exit[];
}
Tôi luôn gặp lỗi: "Cảnh báo: mysqli_connect []: [hy000/2002]: Không có tệp hoặc thư mục như vậy trong /usr/share/nginx/html/db.php trên dòng 8 Kết nối không thành công: Không có tệp hoặc thư mục đó"
Nơi tôi chạy lệnh sudo netstat -tulpn | GREP: 3306
Tôi nhận được TCP6 0 0 0 ::: 3306 :::* Nghe 15362/Docker-Proxy
Xin vui lòng giúp đỡ !
Nhiều nắng
unread,
Ngày 9 tháng 2 năm 2021, 10:06:44 PM2/9/212/5/21
đến Redbeanphp
Chỉ để làm rõ .. tôi đã thay đổi tệp PHP của mình và có thể kết nối với MySQL mà không cần Redbean .. và sau đó tôi đã cố gắng kết nối với cùng một DB với Redbean:
docker-compose.yml:
```
Chỉ để làm rõ .. tôi đã thay đổi tệp PHP của mình và có thể kết nối với MySQL mà không cần Redbean .. và sau đó tôi đã cố gắng kết nối với cùng một DB với Redbean:
services:
yêu cầu 'rb.php';
// PHP đơn giản mà không có redbean
$ host = 'mysql';
$ user = 'root';
$ pass = 'rootpassword';
$ Conn = new mysqli [$ host, $ user, $ pass];
if [$ Conn-> Connect_error] {
chết ["Kết nối không thành công:". $ Conn-> Connect_error];
}
// Làm việc tốt!
// Tạo cơ sở dữ liệu có tên NewDB
$ sql = "Tạo cơ sở dữ liệu newdb";
if [$ Conn-> truy vấn [$ sql] === true] {
echo "cơ sở dữ liệu được tạo thành công với tên NewDB"; // làm việc tốt!
} khác {
echo "Lỗi tạo cơ sở dữ liệu:". $ Conn-> lỗi;
}
// Kết nối đóng
// Cố gắng kết nối với cùng một cơ sở dữ liệu với Redbean
$ Conn = new mysqli [$ host, $ user, $ pass];
if [$ Conn-> Connect_error] {
chết ["Kết nối không thành công:". $ Conn-> Connect_error];
// Làm việc tốt!
// Tạo cơ sở dữ liệu có tên NewDB
$ sql = "Tạo cơ sở dữ liệu newdb";
if [$ Conn-> truy vấn [$ sql] === true] {
echo "cơ sở dữ liệu được tạo thành công với tên NewDB"; // làm việc tốt!
} khác {
echo "Lỗi tạo cơ sở dữ liệu:". $ Conn-> lỗi;
volumes:
}
```
index.php:
// Kết nối đóng
Hình ảnh: MySQL: 5.7
yêu cầu 'rb.php';
print["hi"];
// PHP đơn giản mà không có redbean
$ post = r :: phân phối ['post'];
$ post-> tiêu đề = 'kỳ nghỉ của tôi';
$ id = r :: store [$ post];
$ post = r :: load ['post', $ id];
print_r[$post];
?>
`` `
Thông báo lỗi:
`` `Lỗi gây tử vong: PDOException chưa được thực hiện: Không thể kết nối với cơ sở dữ liệu [TestDB]. in /var/www/html/rb.php:1101 Stack Trace: #0 /var/www/html/rb.php[798]: RedBeanphp \ Driver \ rpdo-> Connect [] /rb.php[1171]: redbeanphp \ driver \ rpdo-> runquery ['show blay', mảng] #2 /var/www/html/rb.php[1192] Hiển thị bảng ', mảng] #3 /var/www/html/rb.php[4318]: redbeanphp \ driver \ rpdo-> getcol [' show blay ', mảng] #4 /var/www/html/rb.php . /html/rb.php[9539]: redbeanphp \ queryWriter \ AqueryWriter-> TableExists ['Post'] #7 /var/www/html/rb.php[9641] #8 /var/www/html/rb.php[9773]: redbeanphp \ repository \ fluid-> createdetableifnotexist [Object [redbeanphp \ oodbbean], 'post'] . /rb.php on l ine & nbsp; 1101 `` `: Uncaught PDOException: Could not connect to database [testdb]. in /var/www/html/rb.php:1101 Stack trace: #0 /var/www/html/rb.php[798]: RedBeanPHP\Driver\RPDO->connect[] #1 /var/www/html/rb.php[1171]: RedBeanPHP\Driver\RPDO->runQuery['show tables', Array] #2 /var/www/html/rb.php[1192]: RedBeanPHP\Driver\RPDO->GetAll['show tables', Array] #3 /var/www/html/rb.php[4318]:
RedBeanPHP\Driver\RPDO->GetCol['show tables', Array] #4 /var/www/html/rb.php[7193]: RedBeanPHP\Adapter\DBAdapter->getCol['show tables'] #5 /var/www/html/rb.php[6138]: RedBeanPHP\QueryWriter\MySQL->getTables[] #6 /var/www/html/rb.php[9539]: RedBeanPHP\QueryWriter\AQueryWriter->tableExists['post'] #7 /var/www/html/rb.php[9641]: RedBeanPHP\Repository->tableExists['post'] #8 /var/www/html/rb.php[9773]: RedBeanPHP\Repository\Fluid->createTableIfNotExists[Object[RedBeanPHP\OODBBean],
'post'] #9 /var/www/html/rb.php[9344]: RedBeanPHP\Repository\Fluid->storeBean[Object[RedBeanPHP\OODBBean]] #10 /var/www/html/rb.php[10454]: RedBeanPHP\Repository->store[Ob in /var/www/html/rb.php on line 1101 ```
Lỗi gây tử vong: PDOException chưa được thực hiện: Không thể kết nối với cơ sở dữ liệu [TestDB]. in /var/www/html/rb.php:1101 Stack Trace: #0 /var/www/html/rb.php[798]: RedBeanphp \ Driver \ rpdo-> Connect [] /rb.php[1171]: redbeanphp \ driver \ rpdo-> runquery ['show blay', mảng] #2 /var/www/html/rb.php[1192] Hiển thị bảng ', mảng] #3 /var/www/html/rb.php[4318]: redbeanphp \ driver \ rpdo-> getcol [' show blay ', mảng] #4 /var/www/html/rb.php . /html/rb.php[9539]: redbeanphp \ queryWriter \ AqueryWriter-> TableExists ['Post'] #7 /var/www/html/rb.php[9641] #8 /var/www/html/rb.php[9773]: redbeanphp \ repository \ fluid-> createdetableifnotexist [Object [redbeanphp \ oodbbean], 'post'] . /rb.php on l ine & nbsp; 1101: Uncaught PDOException: Could not connect to database [testdb]. in /var/www/html/rb.php:1101 Stack trace: #0 /var/www/html/rb.php[798]: RedBeanPHP\Driver\RPDO->connect[] #1 /var/www/html/rb.php[1171]:
RedBeanPHP\Driver\RPDO->runQuery['show tables', Array] #2 /var/www/html/rb.php[1192]: RedBeanPHP\Driver\RPDO->GetAll['show tables', Array] #3 /var/www/html/rb.php[4318]: RedBeanPHP\Driver\RPDO->GetCol['show tables', Array] #4 /var/www/html/rb.php[7193]: RedBeanPHP\Adapter\DBAdapter->getCol['show tables'] #5 /var/www/html/rb.php[6138]: RedBeanPHP\QueryWriter\MySQL->getTables[] #6 /var/www/html/rb.php[9539]: RedBeanPHP\QueryWriter\AQueryWriter->tableExists['post'] #7
/var/www/html/rb.php[9641]: RedBeanPHP\Repository->tableExists['post'] #8 /var/www/html/rb.php[9773]: RedBeanPHP\Repository\Fluid->createTableIfNotExists[Object[RedBeanPHP\OODBBean], 'post'] #9 /var/www/html/rb.php[9344]: RedBeanPHP\Repository\Fluid->storeBean[Object[RedBeanPHP\OODBBean]] #10 /var/www/html/rb.php[10454]: RedBeanPHP\Repository->store[Ob in /var/www/html/rb.php on line 1101
Matthew Frederico
unread,
Ngày 5 tháng 2 năm 2021, 10:21:17 AM2/5/212/5/21
đến
R :: setup ['mysql: host = 172.17.0.2_9906; dbname = testDb', 'devuser', 'devPass'];_9906;dbname=testdb', 'devuser', 'devpass' ];
Nên có ':' trước 9906, ví dụ:
R :: setup ['mysql: host = 172.17.0.2: 9906; dbname = testDb', 'devuser', 'devPass'];:9906;dbname=testdb', 'devuser', 'devpass' ];
-
Nhiều nắng
unread,
Ngày 8 tháng 2 năm 2021, 5:23:04 PM2/8/212/8/21
đến Redbeanphp
Chào Mattzilla
Đó là một lỗi đánh máy trong bài viết, trong mã của tôi, nó thực sự là một dấu hai chấm. Nó vẫn không hoạt động. & NBSP;
Marios k
unread,
Ngày 9 tháng 2 năm 2021, 5:19:38 AM2/9/212/9/21
đến
R :: setup ['mysql: host = 172.17.0.2_9906; dbname = testDb', 'devuser', 'devPass'];
Nên có ':' trước 9906, ví dụ:
R :: setup ['mysql: host = 172.17.0.2: 9906; dbname = testDb', 'devuser', 'devPass'];
-
Nhiều nắng
-
Nhiều nắng
Ngày 8 tháng 2 năm 2021, 5:23:04 PM2/8/21
đến Redbeanphp
Chào Mattzilla
Đó là một lỗi đánh máy trong bài viết, trong mã của tôi, nó thực sự là một dấu hai chấm. Nó vẫn không hoạt động. & NBSP;
Marios k
Nhiều nắng
unread,
Ngày 8 tháng 2 năm 2021, 5:23:04 PM2/8/212/9/21
đến Redbeanphp
Chào Mattzilla
Đó là một lỗi đánh máy trong bài viết, trong mã của tôi, nó thực sự là một dấu hai chấm. Nó vẫn không hoạt động. & NBSP;
Marios k
Ngày 9 tháng 2 năm 2021, 5:19:38 AM2/9/21
volumes:
=>Error:
Vì bạn đang sử dụng Docker-Compose, có lẽ bạn nên sử dụng hệ thống DNS nội bộ thay vì IPS
Hãy thử "Docker Exec -ti {{container_name}} /bin /bash"
Vì bạn đang sử dụng Docker-Compose, có lẽ bạn nên sử dụng hệ thống DNS nội bộ thay vì IPS
Hãy thử "Docker Exec -ti {{container_name}} /bin /bash"
Sau đó, bên trong thùng chứa, bạn sẽ có thể ping các dịch vụ tương ứng với "ping db" hoặc "ping PHP"
---
Bạn cũng có thể sử dụng các biến env từ tác phẩm tổng hợp "getenv ['db_host'];"
Ghi chú bên
"Bạn cũng có thể sử dụng các biến env từ tác phẩm tổng hợp" getenv ['db_host']; "=> yeah nhưng nó sẽ chỉ sử dụng những gì tôi đã xác định trong docker-compose.yaml là db_host .. và đó cũng không hoạt động . & nbsp;
Tôi không thể sử dụng ping trong hình ảnh => & nbsp;
Đã thử cài đặt ping:
$ apt-get update apt-get install iputils-ping
$ping
Đọc danh sách gói ... Tree phụ thuộc công việc & NBSP; & nbsp; & nbsp; & nbsp; đọc thông tin trạng thái ... hoàn thành: không thể xác định vị trí của gói iputils-pingping
Building dependency tree
Reading state information... Done
E: Unable to locate package iputils-pingping
Đó là một nhiệm vụ đơn giản, nhưng tôi không thể thực hiện nó ... Tôi thậm chí không muốn nghĩ về bước tiếp theo: thực hiện việc chạy này trên Azure. Nhưng trước tiên tôi muốn có thể kiểm tra điều này tại địa phương.
Nhiều nắng
unread,
Ngày 9 tháng 2 năm 2021, 10:06:44 PM2/9/212/9/21
đến Redbeanphp
Chỉ để làm rõ .. tôi đã thay đổi tệp PHP của mình và có thể kết nối với MySQL mà không cần Redbean .. và sau đó tôi đã cố gắng kết nối với cùng một DB với Redbean:
Chỉ để làm rõ .. tôi đã thay đổi tệp PHP của mình và có thể kết nối với MySQL mà không cần Redbean .. và sau đó tôi đã cố gắng kết nối với cùng một DB với Redbean:
yêu cầu 'rb.php';
// PHP đơn giản mà không có redbean
$ host = 'mysql';
$ user = 'root';
$ pass = 'rootpassword';
$ Conn = new mysqli [$ host, $ user, $ pass];
if [$ Conn-> Connect_error] {
chết ["Kết nối không thành công:". $ Conn-> Connect_error];
}
// Làm việc tốt!
// Tạo cơ sở dữ liệu có tên NewDB
$ sql = "Tạo cơ sở dữ liệu newdb";
if [$ Conn-> truy vấn [$ sql] === true] {
echo "cơ sở dữ liệu được tạo thành công với tên NewDB"; // làm việc tốt!
} khác {
echo "Lỗi tạo cơ sở dữ liệu:". $ Conn-> lỗi;
}
// Kết nối đóng
$conn->close[];
// Cố gắng kết nối với cùng một cơ sở dữ liệu với Redbean
R :: setup ['mysql: host = mysql; dbname = newdb', 'root', 'rootPassword'];
// Lỗi: Lỗi nghiêm trọng: PDOException chưa được thực hiện: Không thể kết nối với cơ sở dữ liệu [NewDB]. in /var/www/html/rb.php:1101 Dấu vết Stack: #0 /var/www/html/rb.php[798]: RedBeanphp \ Driver \ rpdo-> Connect []
$ post = r :: phân phối ['post'];
$ post-> tiêu đề = 'kỳ nghỉ của tôi';
$ id = r :: store [$ post];
$ post = r :: load ['post', $ id];
print_r[$post];
?>
Vấn đề là ở Redbean ở đâu đó ... không có gì để làm với Docker hoặc Docker Compose.
Marios k
unread,
Ngày 9 tháng 2 năm 2021, 10:27:38 PM2/9/212/9/21
đến
Thử kết nối với vani pdo
Mã mẫu