Introduction
In this guide, we’ll walk you through the process of setting up Caddy Server, FrankenPHP, MySQL, and installing WordPress on your domain abc.com
. We’ll cover everything from the installation of necessary software to the configuration for a fully functional WordPress website.
Prerequisites
Before you begin, ensure you have the following:
- A fresh Linux server (Ubuntu 20.04 or later).
- A domain name (in this case,
abc.com
). - SSH access to your server.
- A basic understanding of terminal commands.
Step 1: Install Caddy Server
Caddy is a modern web server with automatic HTTPS and simple configuration. To install it on your server:
- Update the package index:
sudo apt update
- Install Caddy using the official repository:
curl -fsSL https://get.caddyserver.com | bash -s personal
- Verify the installation:
caddy version
- Start and enable Caddy:
sudo systemctl start caddy
sudo systemctl enable caddy
Now, Caddy is running and ready to serve your site.
Step 2: Install FrankenPHP
FrankenPHP is a modern PHP-FPM-like solution, designed to be easier to use with Caddy. To install FrankenPHP:
- Download the latest release:
wget https://github.com/frankenphp/frankenphp/releases/download/v1.0.0/frankenphp-linux-x86_64.tar.gz
- Extract the package:
tar -xzvf frankenphp-linux-x86_64.tar.gz
- Move it to a global location:
sudo mv frankenphp /usr/local/bin/
- Verify the installation:
frankenphp --version
Step 3: Install MySQL
- Install MySQL server:
sudo apt install mysql-server
- Secure MySQL installation:
sudo mysql_secure_installation
- Log into MySQL:
sudo mysql -u root -p
- Create a new database for WordPress:
CREATE DATABASE wordpress;
- Create a MySQL user and grant privileges:
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Step 4: Install WordPress
- Download the latest WordPress package:
wget https://wordpress.org/latest.tar.gz
- Extract the WordPress files:
tar -xzvf latest.tar.gz
- Move the WordPress files to your web directory:
sudo mv wordpress/* /var/www/html/
- Set proper permissions:
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
Step 5: Configure Caddy for WordPress
Now that Caddy is installed, you need to configure it to serve your WordPress site on abc.com
.
- Create a Caddyfile in
/etc/caddy/Caddyfile
:
sudo nano /etc/caddy/Caddyfile
- Add the following configuration:
abc.com {
root * /var/www/html
php_fastcgi unix//var/run/frankenphp.sock
file_server
encode gzip
log {
output file /var/log/caddy/access.log
}
}
This configuration tells Caddy to:
- Serve
abc.com
from the/var/www/html
directory. - Use FrankenPHP as the PHP handler.
- Enable gzip encoding for performance.
- Log all access requests.
- Restart Caddy to apply changes:
sudo systemctl restart caddy
Step 6: Configure WordPress
- Set up the WordPress database connection:
- Open the WordPress configuration file:
sudo nano /var/www/html/wp-config.php
- Edit the database settings:
define( 'DB_NAME', 'wordpress' ); define( 'DB_USER', 'wp_user' ); define( 'DB_PASSWORD', 'your_password' ); define( 'DB_HOST', 'localhost' );
- Complete the WordPress installation:
- Open a browser and navigate to
http://abc.com
. - Follow the WordPress installation wizard to set up your site’s title, admin username, password, and email.
Step 7: Secure Your Site with SSL
Caddy automatically handles SSL certificates for you. When you visit https://abc.com
, Caddy will automatically generate and configure a Let’s Encrypt SSL certificate for your domain.
Step 8: Access Your WordPress Site
Once the installation and configuration are complete, you can access your WordPress site by visiting http://abc.com
or https://abc.com
if SSL is enabled.
Conclusion
You’ve now successfully set up Caddy Server, FrankenPHP, MySQL, and WordPress on your server with the domain abc.com
. This guide provided you with all the steps to configure your environment, install necessary software, and get WordPress up and running.
By following these steps, you’ve created a secure and modern WordPress hosting environment with minimal setup effort, thanks to Caddy and FrankenPHP’s automatic configurations.
Leave a Reply