by andymelton | Jul 17, 2025 | Software
Purpose
These steps will guide you through the process of setting up a Debian-based Linux distribution with Apache, MariaDB, PHP, phpMyAdmin, and WordPress.
Pre-Requisites
- You understand that the purpose of this tutorial is for setting up a WordPress instance to be used in a locally hosted environment by a limited set of users. If you wish to use these steps for a production environment, you will need to perform additional security hardening.
- You already have a computer or virtual machine prepared with a Debian-based Linux distribution.
- You have sudo privileges.
- You have SSH and SFTP access to the server.
- For the purposes of this tutorial, we will be remoting into the Debian-based Linux computer.
Steps to Install Apache, MariaDB, PHP
1.) Issue the following command to update the package list.
sudo apt-get update
2.) Issue the following command to install Apache, MariaDB, and PHP. Accept the additional packages to be installed.
sudo apt-get install apache2 mariadb-server php
3.) Confirm successful installation of Apache by navigating to http://YOURIPADDRESS or http://YOURHOSTNAME
- Note that we are using HTTP vice HTTPS.
- If unsuccessful, confirm that you do not have a firewall blocking your access.
4.) Confirm successful installation of MariaDB by issuing the command below. Without specifying credentials, you should receive an “Access denied” message. This will suffice for now.
mariadb
5.) Confirm successful installation of php by issuing the following command to identify the version that is installed.
php -v
Steps to Configure an Apache Site
1.) Create a dedicated user account for the site.
sudo adduser websiteaccountusername
2.) Provide a password and user details (e.g., Name, Location, etc.) for the new user account.
3.) Once the new user account has been created, add the account to the www-data group.
sudo usermod -aG www-data websiteaccountusername
4.) Switch into the websiteaccountusername account to build the directory structure. Use the following command and enter the password when prompted.
su websiteaccountusername
5.) Ensure that you are in the websiteaccountusername home directory.
cd ~
6.) Issue the following command to build the necessary directories.
mkdir -p ~/htdocs/{logs,public_html}
7.) Exit out of thewebsiteaccountusername account. You should now be back in your normal account that you use to administrate the server.
exit
8.) Update the permissions of /home/websiteaccountusername/htdocs so that Apache can access them. Issue the following commands.
sudo chown -R websiteaccountusername:www-data /home/websiteaccountusername/htdocs
sudo chmod -R 755 /home/websiteaccountusername/htdocs
9.) Grant Apache the ability to traverse /home and /home/websiteaccountusername. Issue the following commands.
sudo chmod o+x /home
sudo chmod o+x /home/websiteaccountusername
10.) Navigate to the /etc/apache2/sites-available directory. Once there, we will create a new file using nano.
cd /etc/apache2/sites-available/
sudo nano yoursitenamehere.conf
11.) Populate the contents of yoursitenamehere.conf with the following.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/websiteaccountusername/htdocs/public_html
<Directory /home/websiteaccountusername/htdocs/public_html>
Options +Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/yoursitenamehere_error.log
CustomLog ${APACHE_LOG_DIR}/yoursitenamehere_access.log combined
</VirtualHost>
12.) To avoid any potential conflicts with the default site that Apache creates, disable it.
sudo a2dissite 000-default.com
13.) Enable the virtual host and restart the Apache service by issuing the following commands.
sudo a2ensite yoursitenamehere
sudo systemctl reload apache2
14.) Open a web browser and navigate to http://YOURSERVERIP or http://LOCALHOST to confirm access.
Steps to Secure the MariaDB Installation
1.) Issue the following command to begin the process of securing the MariaDB installation.
sudo mysql_secure_installation
2.) You will be prompted for the current root password of MariaDB. Since there is currently no password, press Enter.
3.) Perform the additional security tasks, when prompted.
Switch to unix_socket authentication? No
Change the root password? Yes
Remove anonymous users? Yes
Disallow root login remotely? Yes
Remove test database and access to it? Yes
Reload privilege tables now? Yes
4.) You can further confirm access to MariaDB by logging into the database from the console. Otherwise, we will proceed with installing phpMyAdmin for database administration. NOTE: When finished, type exit; (exit followed by a semicolon).
mariadb -u yourusernamehere -p
Steps to Create a User Account for Database Management
Using the following steps, we will create a user account using the MariaDB console that has full management permissions on the database server. We will then use this account via phpMyAdmin for any additional database administration tasks needed (e.g., creating our database for WordPress).
1.) Issue the following command to access the MariaDB console.
sudo mariadb
2.) Issue the following commands to create a new user account and grant all privileges to that user. Replace USERNAME and PASSWORD (between the single quotes) with your desired username and password.
CREATE USER 'USERNAME'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON *.* to 'USERNAME'@'localhost' WITH GRANT OPTION;
3.) Type exit and press Enter to exit the MariaDB console.
Steps to Install phpMyAdmin
1.) Issue the following command to begin the process to install phpMyAdmin. Accept the additional packages to be installed.
sudo apt-get install phpmyadmin
2.) When prompted, select apache2 from the list of web server options.
3.) When prompted, allow the installer to configure a database for phpMyAdmin with dbconfig-common.
4.) When prompted, enter a password for the phpMyAdmin database user account.
Steps to Logon to phpMyAdmin to Create Databases
Using the following steps, we will logon to phpMyAdmin and create a database and database user account for our WordPress installation.
1.) Navigate to http://YOURIPADDRESSHERE/phpmyadmin
2.) Login using your database manager user account.
3.) Click on the User accounts button along the top.
4.) Click on Add user account.

5.) Specify username and password.
6.) Select the option for Create database with same name and grant all privileges.
7.) Click on Go.
8.) Your new database should appear in the sidebar. If it does not, click on the Home icon.
Steps to Install WordPress
The following steps will be performed from a Windows desktop. The steps are similar, if not the same on other OS’.
1.) Download the latest version of WordPress from WordPress.org (6.7.2 as of this writing) and extract the ZIP file.
2.) Rename wp-config-sample.php to wp-config.php and open it in your preferred text editor (Notepad on Windows will suffice).
3.) Populate the applicable fields with your database information (i.e., database name, user, password, and host). Since we are hosting locally, leaving ‘localhost’ is fine.
4.) Navigate to the WordPress.org Secret-Key Service to generate your secret keys (https://api.wordpress.org/secret-key/1.1/salt/ is the current URL).

Once generated, replace the defaults.
5.) Connect to your server using SFTP.
6.) Navigate to /home/websiteaccountusername/htdocs/public_html
7.) Upload the contents of your local WordPress files.
8.) Open a web browser and navigate to http://YOURSERVERIP or http://LOCALHOST.
9.) You should now be presented with a WordPress installation screen. Follow the steps to complete.
by andymelton | Jun 30, 2007 | Software
On Monday morning my 17″ LCD monitor decided to kick the bucket. I guess it was time for it to go out, the 3 year warranty expired in January so that’s usually when things go out. Since then I’ve been using my iBook a lot more because it has a brighter display than the CRT monitor I have attached to the PC. Since I’ve been using the iBook more and it is in front of me now, I decided to start using it to work on my website projects.
I had heard of Taco HTML Edit before and had even had it installed. When I first installed it I honestly did not give it a good chance. I guess since I needed to use it I gave it a better chance and I am glad I did. I have found a lot of great features in the software and am really enjoying it so far. Let’s look at some of the features.
Grouping Files As Projects
The first feature that I immediately used was the projects feature. I use this religiously in Macromedia Dreamweaver and was very pleased to see that a similar feature was available in Taco (I think I’m going to be craving tacos by the end of writing this entry). This feature allows you to define a folder as a project. Whenever you open a project you have all the files in that project at hand, you don’t have to go hunting all over the place for everything, it’s really nice.

When you open up a project the files will open in a new window with the files on the left and a text editor window to the right. The window looks really bare from what you see when you first open Taco. There are no icons in the project editor by default. I usually work with projects rather than single pages and I decided to add more icons to the toolbar, it’s easy enough to do: right click on the toolbar and click on customize, drag and drop the desired icons.
Code Clippings
The next feature I want to talk about is clips. You can put code into clips and when you need to insert that code into your file you just click on that code from the clips menu.

It’s like having code permanently copied so you can always paste it. I’ve been using this a lot this past week on a client’s project where I need to use the same biographical header information on several of their artist’s pages.
Tag Organization
I think I’m fairly good at writing code in a clean, easy to understand manner. However there are times that it can become cluttered. Luckily, with Taco you can clean up your code by using “Organize tags” under the Syntax menu.
Normally I would be hesitant to use a feature like this out of fear that it would jumble my code. I’ve used several text editors and they’ve all done a horrible job at this, however, Taco done a really beautiful job of cleaning up the code and making it look really nice on the screen and easy to follow.
Batch Find
Lately I’ve been doing a lot of work with designing WordPress themes for my clients and I like to do most of the work offline. This means I have to link files to a local network server.
Once I am ready to put the project online on the client’s hosting account I have to make sure the links to the local network server are pointing to their domain. I usually use Dreamweaver for this task but I am really pleased to see that a similar feature is available in Taco.
Syntax Checking
Unfortunately we all make mistakes. I make mistakes all the time when I’m writing code, I’ll forgot to close a tag, add a parenthesis, etc. Silly mistakes usually that take time to find. Fortunately, Taco has a built in Syntax checker. It doesn’t check for compliancy with the W3C, but you can do that through their website so it’s really no big deal in my opinion.
Format Tags & Quick Insert
Two features that are pretty useful are the format tags and quick insert feature. The format tags dropdown menu gives you options for making text bold, italic, underlined, etc. These are nice and very useful when you don’t feel like typing the syntax out. The other feature, quick insert is even more useful. It lets you insert punctuation, math symbols, vowels and even Greek characters. I personally really like the Quick Insert feature because I can never remember the numbers that represent each symbol.
Code Preview
When you’re finished writing your code (or while you’re working on it) you can preview your code using either the Preview option which opens the page you are working on in a web browser window or you can use the Live Preview which opens the page you are working on in another window inside of Taco, as you change the page this window will update to reflect the changes you are making.
Color Tags
Taco has a feature that lets you choose colors from a color wheel, however, I was unable to get this feature to work, one of the only features I was unable to get to work. Everytime I would click on it, nothing would open. Fortunately, for me, I usually already have color choices set before I begin working on a project.
What it doesn’t have
Some people will be disappointed by the fact that this application doesn’t have a WYSIWYG editor. I am fine with the fact that it doesn’t because I prefer to code my pages by hand instead of letting an editor do it for me. There are exceptions to this when I just need a simple page, but for the most part, I like to do it myself.
Also, Taco doesn’t have a built in FTP client. For me this is also not an issue because I normally work on files on my local network and once I am done working on the files I’ll normally use a standalone FTP client anyways to upload files to the website I am working on. For some people though, this may be a problem.
Great Alternative
I’ve been using this software for a week now and am extremely impressed with it’s features and simplicity. I am really enjoying it and look forward to using it even more. I personally feel as though this is a great alternative to Macromedia Dreamweaver, especially if you cannot afford it’s hefty pricetag. Taco is free! I greatly appreciate that!
Taco HTML Edit
by andymelton | Mar 20, 2007 | Software
When I am designing a theme for WordPress I always install a copy of WordPress onto my local server. I have my server set up in a virtual machine. It’s aggravating because I have to wait on that virtual machine to start up before I can do anything. I have been thinking about installing Apache, MySQL, PHP and phpMyAdmin onto my Mac so I can just leave it running and have a copy of WordPress running locally for whenever I need to test something. I just haven’t had the time to do this yet.

On my Linux virtual machine I have a copy of XAMPP running. I got to looking around and there is a version of XAMPP for the Mac but it only runs on Intel Macs. The iBook that I have has a PowerPC G3 processor, so that won’t work. Fortunately there is an alternative called MAMP. It’s got the basics of XAMPP and works pretty well. I downloaded it this morning, extracted and installed it.

I guess I should say what XAMPP and MAMP are. They include Apache, MySQL, PHP, phpMyAdmin and a few other things all in one package. They’re usually meant for developers on a network to test out projects and usually not meant for deploying websites publicly. You usually just install a package and you have a web server.

In under 20 minutes I was able to have WordPress up and running. It would have been quicker had I not run into a database connection issue. Also, the download was quite large, over 100 megabytes so I had to wait on that. The database problems that I ran into was that you can’t simply use ‘localhost’ as the MySQL server address, you have to use a port. I tried to use ‘localhost:8889’ but that did not work either. I then used the IP address of the machine ‘192.168.1.44:8889’ and that worked.
This is a great option for testing websites. I haven’t looked into it yet but if MAMP can be secured then I think it would be a good option for someone wanting to play with hosting their own websites or blogs. If you use XAMPP on Linux then you’ll know that you can easily secure XAMPP by running a simple command from the command line and answering a few questions. However, if MAMP can’t be secured then I think it’s still a good option for testing websites locally.
Other than making sure XAMPP is secure you’ll want to install an FTP server. There is an FTPd daemon already included in OS X. You can use PureFTPd Manager for Mac OS X to manage it.
If you’re not on a Mac I would recommend Uniserver or XAMPP.
MAMP