Để nginx hoạt động chính xác, nó cần gán số PID [nhận dạng quy trình]. Nó làm được điều này nhưng tự động gán vào thư mục, mà mặc định thư mục đó không tồn tại nên ta phải tạo thủ công
Trước khi thư mục được tạo
nginx# [Expected Output]
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Sau khi tạo thư mục
mkdir /run/nginx;
nginx;# [Expected Output]
# [blank]
Bây giờ chúng tôi có thể kiểm tra trình duyệt để xem nó có đang chạy hay không, 404 sẽ hiển thị
nginx chạy trên cổng 80 với kết quả 404
đang cài đạt PHP
Tiếp theo là cài đặt PHP và cấu hình nó với nginx
apk add php-fpm;
apk add nano; # to edit files with
Tiếp theo, hãy sửa đổi /etc/nginx/conf. d/mặc định. conf để cho phép php
nano /etc/nginx/conf.d/default.conf;
Trước
# This is a default site configuration which will simply return 404, preventing
# chance access to any other virtualhost.server {
listen 80 default_server;
listen [::]:80 default_server;# Everything is a 404
location / {
return 404;
}# You may need this to prevent return 404 recursion.
location = /404.html {
internal;
}
}
Sau đó
# This is a default site configuration which will simply return 404, preventing
# chance access to any other virtualhost.server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/localhost/htdocs;
index index.php index.html index.htm;location / {
try_files $uri $uri/ /index.php?$query_string;
}# You may need this to prevent return 404 recursion.
location = /404.html {
internal;
}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^[.+\.php][/.+]$;
fastcgi_pass 0.0.0.0:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}}
Lưu tệp và kiểm tra xem có lỗi nào với tệp cấu hình với nginx không
nginx -t;# [Expected Output]
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại nginx và bắt đầu php-fpm
nginx -s reload;# in case php-fpm is giving you issues, kill it and restart it
killall -KILL php-fpm7;
/usr/sbin/php-fpm7;
Tạo một tệp mới trong /var/www/localhost/htdocs
mục lục. php
apk update;
apk add nginx;
0Mở http. //máy chủ cục bộ
Thông tin PHP Làm việcKết nối WordPress
Tại thời điểm của hướng dẫn này, chúng tôi sẽ sử dụng WordPress 4. 9. 8
apk update;
apk add nginx;
1Hãy bắt đầu bằng cách tạo một thư mục cấu hình và sao chép mặc định của chúng tôi. conf từ vùng chứa hiện có của chúng tôi để lưu các cấu hình đó
apk update;
apk add nginx;
2Hãy tắt vùng chứa của chúng tôi và bắt tay vào tạo Dockerfile;
apk update;
apk add nginx;
3Tạo Dockerfile
Chúng tôi đang tạo cơ sở và thêm nhiều thư viện hơn khi chúng tôi tiếp tục
Dockerfile
apk update;
apk add nginx;
4Bây giờ chúng ta đã có môi trường cho Docker, hãy xây dựng và làm việc với tệp đó
apk update;
apk add nginx;
5Chạy ứng dụng ngay bây giờ để xem WordPress đã cài đặt. Chạy lệnh này trong thư mục kho lưu trữ
apk update;
apk add nginx;
6Mở http. //máy chủ cục bộ
WordPress hoạt độngThêm cơ sở dữ liệu
Để chúng tôi kết nối cơ sở dữ liệu, chúng tôi sẽ cần tạo một mạng để chúng có thể tham khảo lẫn nhau dễ dàng hơn
Tạo cơ sở dữ liệu MySQL
Chúng tôi sẽ sử dụng hình ảnh mới nhất của MySQL từ Docker Hub
https. // trung tâm. người đóng tàu. com/_/mysql/
Chúng tôi sẽ đặt người dùng root bằng mật khẩu của MyPassword1. và tên cơ sở dữ liệu của wpdb
apk update;
apk add nginx;
7Hãy kiểm tra cơ sở dữ liệu bằng cách vào vùng chứa
apk update;
apk add nginx;
8Để thoát khỏi vùng chứa, nhấn ctrl + p rồi ctrl + q
Tạo Mạng
Tiếp theo, chúng ta sẽ cần tạo một mạng docker và thêm cả hai vùng chứa để cho phép chúng giao tiếp với nhau
apk update;
apk add nginx;
9Tiếp theo, hãy thêm các thùng chứa và đặt cho chúng các tên bí danh giống nhau
nginx# [Expected Output]0
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Bây giờ hãy bắt đầu quá trình cài đặt
Cài đặt cơ sở dữ liệu WordPress
Kết thúc với một số chi tiết trang web để hoàn tất cài đặt
Cài đặt WordPress
Et voilà
Bảng điều khiển WordPress
PhpMyAdmin tùy chọn
Nếu chúng ta muốn xem cơ sở dữ liệu và kết nối với nó, chúng ta có thể đọc trên Docker Hub cài đặt PhpMyAdmin
nginx# [Expected Output]1
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Mở http. //máy chủ cục bộ. 8888 và nhập cùng tên người dùng và mật khẩu mysql
Vùng chứa PhpMyAdmin mới được tạo
Và bây giờ bạn sẽ thấy cơ sở dữ liệu WordPress
Cơ sở dữ liệu PhpMyAdmin WordPressTối ưu hóa để phát triển cục bộ
Bây giờ chúng ta đã xây dựng thành công môi trường, cơ sở dữ liệu và PhpMyAdmin, hãy tạo một tập lệnh sẽ thực hiện tác vụ này để khởi động và chạy mọi thứ ngay khi chúng ta sao chép kho lưu trữ này
kết xuất cơ sở dữ liệu
Trước tiên, chúng tôi sẽ cần lưu trạng thái của cơ sở dữ liệu để có thể tải lại
nginx# [Expected Output]2
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Trong PhpMyAdmin, chúng tôi sẽ thực hiện Xuất và lưu wpdb của chúng tôi. sql vào thư mục cơ sở dữ liệu mới được tạo của chúng tôi
Kết xuất cơ sở dữ liệu WordPress
Tạo tập lệnh Shell
Chúng tôi cũng sẽ ví dụ Docker Compose sau nhưng để tự động hóa tất cả các tác vụ của chúng tôi để phát triển máy chủ cục bộ bằng một tập lệnh, chúng tôi sẽ tạo một tập lệnh shell để chạy
/bắt đầu. sh
nginx# [Expected Output]3
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Lưu tệp và xóa các vùng chứa khác
nginx# [Expected Output]4
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Hãy chạy tập lệnh
nginx# [Expected Output]5
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Mở http. //máy chủ cục bộ
Nó sẽ báo lỗi kết nối cơ sở dữ liệu. Điều này là do wp-config. php được cấu hình cho cơ sở dữ liệu cũ. Chúng ta sẽ chỉ cần bắt đầu lại nó
Lỗi kết nối cơ sở dữ liệu WordPress
Chúng tôi sẽ cần xóa wp-config. php và bắt đầu lại quá trình cài đặt
nginx# [Expected Output]6
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Cài đặt lại WordPress
Cấu hình WordPress
Nhập lại Cài đặt cơ sở dữ liệu WordPress
WordPress sẽ nhận ra cài đặt hiện có
Và nó đang hoạt động
Sao lưu trang web WordPressLưu thay đổi cơ sở dữ liệu
Tiếp theo, chúng tôi sẽ thực hiện các thay đổi đối với cơ sở dữ liệu của mình, xuất chúng và lưu chúng vào kho lưu trữ git của chúng tôi để theo dõi
Tạo một bài đăng mới
Tạo một kết xuất cơ sở dữ liệu
Khi ở trong thư mục repo chính, chúng tôi sẽ ghi đè lên cơ sở dữ liệu và bắt đầu lại quá trình
nginx# [Expected Output]7
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Loại bỏ các thùng chứa
nginx# [Expected Output]4
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Khởi động lại máy với cơ sở dữ liệu mới
nginx# [Expected Output]9
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Gỡ bỏ wp-config. php
nginx# [Expected Output]6
# nginx: [emerg] open[] "/run/nginx/nginx.pid" failed [2: No such file or directory]
Mở http. //máy chủ cục bộ
Xem Bài viết mới vẫn tồn tại
Bây giờ chúng tôi đã thành công
- Tạo môi trường NGINX và PHP cho WordPress
- Đã kết nối vùng chứa MySQL
- Tự động hóa với shell script để thực hiện phát triển cục bộ
- Duy trì cơ sở dữ liệu trong kho git của chúng tôi với shell sc
Chúng tôi có thể cải thiện điều gì
- Chúng tôi có thể thêm một tệp soạn thảo docker
- Đưa mọi thứ lên một tầm cao mới với Kubernetes
- Làm công việc đóng gói vùng chứa dưới dạng hình ảnh cho quá trình triển khai
Nếu bạn muốn đọc cách tôi thường đóng gói mọi thứ để triển khai, hãy xem bài viết này, tôi đã viết Quy trình triển khai Docker của NodeJS
Nếu bạn nhận được giá trị từ điều này và/hoặc nếu bạn nghĩ rằng điều này có thể được cải thiện, vui lòng cho tôi biết trong phần nhận xét