This guide installs WooCommerce as a plugin on WordPress. WooCommerce requires WordPress - it is not standalone software.
Current Version: WooCommerce 10.5 (released February 3, 2026)
WordPress Requirement: WordPress 6.4+
| Component | Requirement |
|---|---|
| WordPress | 6.4+ |
| PHP | 8.2+ (8.3+ recommended) |
| Database | MySQL 8.0+ or MariaDB 10.6+ |
| Web Server | Apache 2.4+ or Nginx 1.x |
| PHP Extensions | mysqli, mbstring, curl, gd, xml, zip, intl, bcmath, soap |
| Memory | 2GB RAM minimum (4GB+ recommended) |
WooCommerce is a WordPress plugin. You must install WordPress first.
Option A: Manual WordPress Installation
See WordPress Setup for detailed WordPress installation instructions.
Option B: One-Command Installation (Ubuntu/Debian)
# Install LAMP stack
apt update
apt install apache2 mariadb-server libapache2-mod-php php-mysql php-curl \
php-gd php-intl php-mbstring php-xml php-zip php-bcmath php-soap php-intl \
unzip git -y
# Start services
systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb
Option C: Using WP-CLI (Recommended for automation)
# Install WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
# Download WordPress
wp core download --path=/var/www/html/wordpress
# Configure WordPress
wp config create --dbname=woocommerce --dbuser=wpuser --dbpass=strong-password \
--path=/var/www/html/wordpress
# Create database
wp db create --path=/var/www/html/wordpress
# Install WordPress
wp core install --url=http://your-domain.com --title="My Store" \
--admin_user=admin --admin_password=strong-password --admin_email=admin@example.com \
--path=/var/www/html/wordpress
Method A: Via WordPress Admin (Easiest)
http://YOUR-SERVER/wordpress/wp-adminMethod B: Using WP-CLI (Recommended for automation)
# Install WooCommerce plugin
wp plugin install woocommerce --activate --path=/var/www/html/wordpress
# Run WooCommerce setup wizard (optional, can be done via admin)
wp wc tool run install_pages --user=admin --path=/var/www/html/wordpress
Method C: Manual Installation
cd /var/www/html/wordpress/wp-content/plugins
wget https://downloads.wordpress.org/plugin/woocommerce.latest-stable.zip
unzip woocommerce.latest-stable.zip
chown -R www-data:www-data woocommerce
Then activate via WordPress admin or WP-CLI:
wp plugin activate woocommerce --path=/var/www/html/wordpress
If you didn’t use WP-CLI, create the database:
mysql -u root -p -e "CREATE DATABASE woocommerce CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p -e "CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'strong-password-here';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON woocommerce.* TO 'wpuser'@'localhost';"
mysql -u root -p -e "FLUSH PRIVILEGES;"
chown -R www-data:www-data /var/www/html/wordpress
find /var/www/html/wordpress -type d -exec chmod 755 {} \;
find /var/www/html/wordpress -type f -exec chmod 644 {} \;
http://YOUR-SERVER/wordpress/wp-adminWordPress and WooCommerce require WP-Cron for scheduled tasks:
# Disable browser-based WP-Cron and use system cron instead
echo "define('DISABLE_WP_CRON', true);" >> /var/www/html/wordpress/wp-config.php
# Add system cron
crontab -e -u www-data
Add:
*/5 * * * * cd /var/www/html/wordpress && wp cron event run --due-now > /dev/null 2>&1
For production, always use HTTPS. Configure via Apache/Nginx or place behind a reverse proxy with Let’s Encrypt.
WooCommerce requires HTTPS for checkout pages.
Consider installing these popular WooCommerce extensions:
# Payment gateways
wp plugin install woocommerce-gateway-stripe --activate
wp plugin install woocommerce-paypal-payments --activate
# Shipping
wp plugin install woocommerce-services --activate
# Security
wp plugin install wordfence --activate
# Install caching plugin
wp plugin install wp-super-cache --activate
# Enable object cache (if Redis is available)
wp plugin install redis-object-cache --activate
wp redis enable
Prefer automation? See WooCommerce Ansible Setup for an example playbook.
Prefer containers? See WooCommerce Docker Setup.
Any questions?
Feel free to contact us. Find all contact information on our contact page.