Sign inSign up

nqdev/wordpress

By nqdev

Updated 10 months ago

Image
Web servers
0

1.5K

nqdev/wordpress repository overview

WordPress Container

Container WordPress được tùy chỉnh dựa trên Bitnami WordPress image với các cấu hình tối ưu cho môi trường production.

Tổng quan

WordPress container này cung cấp:

  • WordPress 6.8.3 với PHP 8.4.13
  • Apache 2.4.65 web server
  • Hỗ trợ cả MariaDB và MySQL làm database
  • SSL/TLS support
  • Pre-configured cho development và production

Cấu trúc thư mục

wordpress/
├── README.md                    # Tài liệu hướng dẫn
├── docker-compose.yml           # Cấu hình với MariaDB
├── docker-compose-mysql.yml     # Cấu hình với MySQL
└── 6/
    └── debian-12/
        ├── Dockerfile           # WordPress 6 trên Debian 12
        ├── prebuildfs/          # Pre-build filesystem
        └── rootfs/              # Root filesystem customizations

Tính năng

WordPress Features
  • ✅ WordPress 6.8.3 (Latest stable)
  • ✅ PHP 8.4.13 với các extensions cần thiết
  • ✅ Apache mod_php configuration
  • ✅ WP-CLI command line tool
  • ✅ Multisite support
  • ✅ Custom themes và plugins support
Database Support
  • ✅ MariaDB (recommended)
  • ✅ MySQL 8.0+
  • ✅ Persistent volume storage
  • ✅ Automatic database initialization
Security & Performance
  • ✅ SSL/TLS ready (port 8443)
  • ✅ Non-root user execution
  • ✅ Optimized PHP configuration
  • ✅ Security headers configured

Hướng dẫn sử dụng

1. Sử dụng với MariaDB (Khuyên dùng)
# Clone repository
git clone <repository-url>
cd nqdev-containers/nqdev/wordpress

# Khởi chạy với MariaDB
docker-compose up -d

# Hoặc build custom image
docker-compose up --build -d
2. Sử dụng với MySQL
# Sử dụng MySQL thay vì MariaDB
docker-compose -f docker-compose-mysql.yml up -d
3. Build custom image
# Build WordPress image từ Dockerfile
cd 6/debian-12
docker build -t nqdev/wordpress:6-debian-12 .

# Hoặc sử dụng docker-compose
docker-compose build wordpress

Cấu hình

Environment Variables
WordPress Configuration
VariableDefaultDescription
WORDPRESS_USERNAMEuserWordPress admin username
WORDPRESS_PASSWORDbitnami123WordPress admin password
WORDPRESS_EMAIL[email protected]WordPress admin email
WORDPRESS_FIRST_NAMEFirstNameAdmin first name
WORDPRESS_LAST_NAMELastNameAdmin last name
WORDPRESS_BLOG_NAMEUser's Blog!Blog title
Database Configuration
VariableDefaultDescription
WORDPRESS_DATABASE_HOSTmariadbDatabase host
WORDPRESS_DATABASE_PORT_NUMBER3306Database port
WORDPRESS_DATABASE_USERbn_wordpressDatabase username
WORDPRESS_DATABASE_PASSWORD``Database password
WORDPRESS_DATABASE_NAMEbitnami_wordpressDatabase name
Security Settings
VariableDefaultDescription
ALLOW_EMPTY_PASSWORDyesAllow empty passwords (dev only)
WORDPRESS_ENABLE_HTTPSnoEnable HTTPS
WORDPRESS_SKIP_BOOTSTRAPnoSkip WordPress setup
Ports
  • 8080: HTTP port
  • 8443: HTTPS port
Volumes
  • wordpress_data: WordPress files và uploads
  • mariadb_data/mysql_data: Database data

Production Setup

1. Cấu hình SSL/HTTPS
services:
  wordpress:
    environment:
      - WORDPRESS_ENABLE_HTTPS=yes
      - WORDPRESS_EXTERNAL_HTTP_PORT_NUMBER=80
      - WORDPRESS_EXTERNAL_HTTPS_PORT_NUMBER=443
    volumes:
      - "./certs:/opt/bitnami/apache/certs"
2. Sử dụng External Database
services:
  wordpress:
    environment:
      - WORDPRESS_DATABASE_HOST=your-db-host.com
      - WORDPRESS_DATABASE_PORT_NUMBER=3306
      - WORDPRESS_DATABASE_USER=wordpress_user
      - WORDPRESS_DATABASE_PASSWORD=secure_password
      - WORDPRESS_DATABASE_NAME=wordpress_db
      - ALLOW_EMPTY_PASSWORD=no
3. Persistent Storage
volumes:
  wordpress_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /opt/wordpress-data

WP-CLI Usage

# Truy cập container
docker-compose exec wordpress bash

# Sử dụng WP-CLI
wp --info
wp plugin list
wp theme list
wp user list

# Install plugin
wp plugin install woocommerce --activate

# Update WordPress
wp core update

Backup và Restore

Backup
# Backup WordPress files
docker run --rm -v wordpress_wordpress_data:/data -v $(pwd):/backup alpine \
  tar czf /backup/wordpress-files-$(date +%Y%m%d).tar.gz -C /data .

# Backup database
docker-compose exec mariadb mysqldump -u bn_wordpress bitnami_wordpress > wordpress-db-$(date +%Y%m%d).sql
Restore
# Restore WordPress files
docker run --rm -v wordpress_wordpress_data:/data -v $(pwd):/backup alpine \
  tar xzf /backup/wordpress-files-20241112.tar.gz -C /data

# Restore database
docker-compose exec -T mariadb mysql -u bn_wordpress bitnami_wordpress < wordpress-db-20241112.sql

Monitoring và Logs

# Xem logs
docker-compose logs -f wordpress
docker-compose logs -f mariadb

# Monitor resource usage
docker stats wordpress_wordpress_1 wordpress_mariadb_1

# Health check
curl -I http://localhost/wp-admin/install.php

Troubleshooting

Common Issues
  1. Permission Issues

    docker-compose exec wordpress chown -R bitnami:bitnami /bitnami/wordpress
    
  2. Database Connection Error

    # Check database status
    docker-compose exec mariadb mysql -u root -p -e "SHOW DATABASES;"
    
    # Reset database password
    docker-compose exec mariadb mysql -u root -p -e "ALTER USER 'bn_wordpress'@'%' IDENTIFIED BY 'new_password';"
    
  3. Memory Issues

    # Increase PHP memory limit
    echo "memory_limit = 512M" >> /opt/bitnami/php/etc/php.ini
    
Debug Mode
services:
  wordpress:
    environment:
      - WORDPRESS_DEBUG=yes
      - WORDPRESS_DEBUG_LOG=yes

Performance Tuning

PHP Configuration
# /opt/bitnami/php/etc/php.ini
memory_limit = 512M
max_execution_time = 300
max_input_vars = 3000
upload_max_filesize = 64M
post_max_size = 64M
Apache Configuration
# Trong .htaccess hoặc virtual host
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
</IfModule>

Security Best Practices

  1. Sử dụng strong passwords
  2. Disable file editing trong WordPress admin
  3. Regular updates
  4. Sử dụng SSL certificates
  5. Backup thường xuyên
  6. Monitor logs for suspicious activities

Contributing

Khi contribute vào project này:

  1. Fork repository
  2. Tạo feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Tạo Pull Request

Support

License

Project này sử dụng Apache 2.0 License. Xem file LICENSE để biết thêm chi tiết.


Lưu ý: Cấu hình mặc định phù hợp cho development environment. Đối với production, hãy đảm bảo:

  • Tắt ALLOW_EMPTY_PASSWORD
  • Sử dụng strong passwords
  • Enable HTTPS
  • Cấu hình proper backup strategy
  • Monitor resource usage và performance

Tag summary

Content type

Image

Digest

sha256:c472494f9

Size

188 MB

Last updated

10 months ago

docker pull nqdev/wordpress