How to Install WordPress on Ubuntu Automatically and With the LAMP Stack
WordPress hosting service lets you quickly set up the content management system (CMS) to create a website. While such a solution is easy to use, the web host usually limits you from choosing the web server and database.
If you’re looking for extensive customization, you should set up WordPress on a virtual private server (VPS) instead. This hosting type lets users choose any software to set up the CMS and tailor the server settings to their needs.
To help you get started, this tutorial will explain how to install WordPress on Ubuntu. We will provide two methods: automatically using the Hostinger VPS template and manually with commands.
Prerequisites for installing WordPress on Ubuntu
Before installing WordPress, ensure your VPS is running Ubuntu since the commands differ for another Linux operating system.
To avoid incompatibility issues, check your Ubuntu version and ensure you are running 22.04 or later. Your VPS should also support software required for WordPress, like a web server and database.
Since WordPress is relatively lightweight, you can use an entry-level server like Hostinger’s KVM 1 VPS platform. Starting at $4.99/month, it offers 1 vCPU core, 4 GB of RAM, and 50 GB of NVMe SSD storage.
Hostinger VPS also supports Ubuntu and other software necessary for WordPress installation. Moreover, our operating system templates let you configure the CMS in one click. We will explain how to do so in the following section.
After purchasing a VPS, ensure you have pointed a domain name to your VPS since we will use it to access the WordPress admin panel and finish the setup process.
Install WordPress on Ubuntu automatically
Hostinger VPS users can easily install WordPress via their web browser using the pre-configured OS template. This method is suitable for beginners since it doesn’t use commands, making the process safer and simpler.
Important! Back up your VPS data before installing an OS template since it will wipe all your data permanently. However, this step is unnecessary if you are using a new, empty server.”
Here’s how to do so:
- Log in to hPanel and click VPS on the sidebar.
- Click Manage on the VPS you want to install WordPress.
- Navigate to the side panel → OS & Panel → Operating System.
- In the operating system configuration menu, select Applications and choose WordPress.
- Click Change OS to confirm.
- Check the confirmation box to acknowledge that the installation will wipe your data. Click Next.
- Enter a new Panel password and click Confirm.
Wait until the installation process is finished, which should take a few minutes. That’s it! You can now access the WordPress admin area by visiting this address. Remember to replace the VPS hostname with the actual value:
http://your-vps-hostname/wp-admin
If the address doesn’t work, edit your system’s hosts file and add your VPS IP address with its hostname. If you have connected a domain, you can also access the page with the following address:
http://domain.tld/wp-admin&
Note that you can’t choose the web server and database solution if you configure WordPress using Hostinger’s OS template.
Install WordPress on Ubuntu using a LAMP stack
Installing WordPress manually using commands is suitable if you need specific software for your website. For example, if you want to use Apache and MySQL, set up the LAMP stack on your Ubuntu server.
Pro tip
Hostinger VPS also offers a template that automates Ubuntu and LAMP stack setup, which you can install from the same menu as the WordPress one.
1. Connect to your server and create an account
Before installing WordPress, connect to your VPS using the PuTTY SSH client and create a new user. Alternatively, Hostinger users can easily access their system’s command-line interface via a web browser using the Browser terminal.
You will connect as root by default. However, using this account to manage your VPS can be unsafe since it can run any command without confirmation, including those that can alter important system settings.
Using a new user helps minimize the risk since it requires the sudo prefix and password to execute commands. To create one, run the following and replace username with your desired value:
adduser username
Add the user into the sudoers group to grant the superuser privilege:
usermod -a -G sudo username
Switch from root to the new user using this command:
su username
Enter cd to return to your system’s main directory.
2. Install WordPress dependencies
Once logged in to your server as a superuser, update your system repository to ensure you get the latest version of all packages. Here’s the command:
sudo apt update
Now, install WordPress’s dependencies – packages required for the platform to function properly. Here is the list:
- Apache – a web server that takes and processes user requests, enabling your WordPress instance to be accessible online.
- MySQL – a database for storing your WordPress data.
- PHP and its modules – a programming language that interprets WordPress and enables WordPress to run on your server.
To install all the dependencies, run the following command:
sudo apt install apache2 ghostscript libapache2-mod-php mysql-server php php-bcmath php-curl php-imagick php-intl php-json php-mbstring php-mysql php-xml php-zip
3. Download and set up WordPress
Now we can proceed with the WordPress installation. To begin, create a folder called /srv/www using this command:
sudo mkdir -p /srv/www
This folder will contain all your WordPress website files. Now, assign your web server as the folder owner so the data is accessible online. Here’s the command:
sudo chown www-data: /srv/www
Then, download and extract the WordPress installation package using this command:
curl https://wordpress.org/latest.tar.gz | sudo -u www-data tar zx -C /srv/www
4. Configure the Apache web server
Set up your Apache web server so it can serve the WordPress files online. To do so, create a configuration file using the nano file editor:
sudo nano /etc/apache2/sites-available/wordpress.conf
Then, copy and paste the following configuration into the file. Once finished, hit Ctrl + X, Y, and Enter to save the changes.
<VirtualHost *:80> DocumentRoot /srv/www/wordpress <Directory /srv/www/wordpress> Options FollowSymLinks AllowOverride Limit Options FileInfo DirectoryIndex index.php Require all granted </Directory> <Directory /srv/www/wordpress/wp-content> Options FollowSymLinks Require all granted </Directory> </VirtualHost>
Enable the WordPress site configuration so Apache can serve it by running these commands:
sudo a2ensite wordpress
sudo a2enmod rewrite
Next, disable the default Apache site so your web server will display the correct WordPress page by entering this:
sudo a2dissite 000-default
Refresh Apache to ensure all changes are applied properly:
sudo service apache2 reload
5. Set up the MySQL database
Set up a new MySQL database for your WordPress site to store and fetch user data. To do so, enter the SQL shell using the default root account by running:
sudo mysql -u root
Then, create a new database. In this tutorial, we will call it wordpress:
CREATE DATABASE wordpress;
Set up a new user for the wordpress database. Remember to replace your-password with the actual credential:
CREATE USER wordpress@localhost IDENTIFIED BY 'your-password';
Grant the user permission to access and modify the database by running the following:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON wordpress.* TO wordpress@localhost;
Flush the database privileges to apply the changes:
FLUSH PRIVILEGES;
Exit the SQL shell using this command:
quit
6. Configure phpMyAdmin
In addition to MySQL, we will also install phpMyAdmin, a database administration panel that offers a graphical user interface to simplify management tasks. To do so, run:
sudo apt install phpmyadmin
Hit Space to check Apache as your web server and confirm using Enter. Then, set the phpMyAdmin panel password. After completing the configuration, enable the PHP Mbstring extension using this command:
sudo phpenmod mbstring
Restart Apache to apply the changes using this command:
sudo systemctl restart apache2
Now, log in to MySQL root account by entering the following. Enter the password you created during the phpMyAdmin installation:
sudo mysql -u root -p
Then, run the following command to grant phpMyAdmin privilege to enable database connection:
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost';
Flush the privileges to refresh the configuration and enter quit to close the MySQL shell. To check whether phpMyAdmin is configured correctly, enter the following address in your web browser:
http://domain.tld/phpmyadmin
Remember to replace the domain with the actual value. On the login page, enter phpMyAdmin as the username and use the password you set during the panel installation.
Important!
If you encounter the “URL not found” error, run sudo dpkg-reconfigure phpmyadmin to rerun the installation and tick Apache by pressing space. Meanwhile, ensure you assign the correct user to the MySQL database if facing login issues.
7. Complete the WordPress setup wizard
The last step is to complete the WordPress setup from your web browser. Visit the following address with domain.tld being your actual domain name:
http://domain.tld/wp-admin
Click Let’s Go, and WordPress will ask you to enter information about your database. Enter the credentials you have created in the previous steps, but leave out the host and prefix fields. Click Submit once finished.
In the next screen, hit Run the installation. Enter information about your WordPress username, password, site title, and admin email address. Ensure you uncheck the “Discourage search engines from indexing this site” to make your website discoverable on the search engine result pages.
Click Install WordPress to proceed with the setup. Once finished, click Log in on the confirmation screen and enter your account credentials to access the WordPress dashboard. That’s it! You can now start creating your website using the CMS.
Conclusion
Hosting WordPress on a VPS provides more flexibility over dedicated CMS hosting since you can choose different web servers and database solutions. However, installing it can be difficult due to the need for commands.
Hostinger VPS users can easily install WordPress on an Ubuntu server without commands by selecting the WordPress template in hPanel’s operating system menu. Then, visit the VPS hostname followed by /wp-admin to access the dashboard.
Another method is to configure WordPress with LAMP stack using commands. After connecting to your server via SSH, install all the dependencies, including the Apache web server and MySQL database.
Once the web stack is set, download the WordPress installation and unpack it. Configure Apache and visit your domain name followed by /wp-admin to initiate the setup wizard.
How to Install WordPress on Ubuntu FAQ
Can I Install WordPress on Ubuntu Without Using the Command Line?
Yes! Hostinger users can install WordPress on Ubuntu without commands using our operating system template. To do so, log in to hPanel and manage the VPS in question. Navigate to the operating system configuration menu and select the WordPress template.
How Do I Secure My WordPress Site on Ubuntu?
Apply robust safety measures on your VPS, including enabling a firewall, installing SSL, and setting up Fail2Ban. To secure WordPress, install plugins like Wordfence, avoid untrusted extensions, regularly update the core files, and set up a blocklist.
How Can I Access My WordPress Site After Installation?
To access your WordPress site after installation, simply visit your VPS domain in a web browser. If you haven’t completed the setup wizard, add /wp-admin at the end of the URL. If you have finished the setup, using /wp-admin will open the WordPress dashboard page.
Comments
March 31 2020
There is a catch with your configuration: if you want to replace the default site by your WordPress site, ServerName must be given in VirtualHost and you must activate the site with a2ensite WordPress command.
July 21 2020
Thank you, You don't have a french version of this tutorial ? Thank's Bina
July 22 2020
Hey there Bina! Due to accessibility to as many of our users as possible, all of our tutorials are in English as of now.
August 03 2020
I followed the instructions carefully thereafter I attempt the interface installation of WordPress by using the localhost but it kept loading the apache2 default file.
November 11 2020
Hey David! :) Hope you are having a great day. I can't check what exactly you've done, especially via the comment threads, but feel free to message our support team, and they will guide you through :)
August 03 2020
Thanks. It worked! I made some mistake with my Database record.
August 17 2021
How to install WP on the URL?
September 20 2021
Hi, if you're looking to install WP on a different URL, just make sure to use that custom path instead of
/var/www/wordpress/
. Good luck!August 24 2021
Hi everyone, Need help here. I'm stuck at "Prepare to Install WordPress on Ubuntu". I cannot create a configuration file "WordPress.conf" in "/etc/apache2/sites-available/". I tried create file "WordPress.conf" and moved to "/etc/apache2/sites-available/", still not working. Error Permission denied. Hopefully someone can assist me to solve my issues.
September 20 2021
Hi there! The easiest way to work around it would be using
sudo chmod 777 /var/www/html -R
to reset permissions. Just don't forget to set proper permissions (750 and 640) afterwards to keep your website safe :)January 15 2022
[ Error Writing sample.php: Permission denied ] I have been hunting but so far no luck.
January 18 2022
Hey Ed, it looks like you might not have the rights to edit this file. I would suggest to double-check that you're connected to a root user and retry with command
sudo nano sample.php
. Additionally, you might want to reset file permissions for sample.phpAugust 05 2022
Hello! I just ran the command "nano /etc/apache2/sites-available/WordPress.conf" and tried to enable .htaccess by adding these lines to the VirtualHost block: AllowOverride All </Directory I clicked ctrl + X, it asks me "Save modified buffer?". I press Y and this error message appears: [ Error writing /etc/apache2/sites-available/WordPress.conf: Permission denied ] I would really appreciate some help. Thank you
August 12 2022
Hey there! We would suggest using sudo command, for example sudo nano, when you want to change something in /etc directory, because it is system directory. In Ubuntu, this is the default security measure ?