Audience: Ubuntu Desktop and Server users. Tested on 18.04
Steps to follow to setup a local development WordPress installation.
1) Copy your entire live WordPress directory to your local LAMP server.
Do this by means of FTP using and FTP Client such as Filezilla.
This should include your wp-admin, wp-includes , wp-admin and all the files in the root directory in which these reside. This is where the wp-config.php, wp-login.php, .htaccess files etc reside.
2) On your LAMP server these should be placed in the directory. It is advisable to create a folder under the html directory where these files will go if you are hosting more than one test site. e.g var/www/html/testsite
3) Backup the MySql database related to your WordPress live site. It is easiest to do this using PHPMyAdmin provided by your control panel of your hosting site. This is the only way have done it so far. Accept defaults and export the database. You will be given the option to save the file as a *.sql file.
4) On your LAMP server create a MySql database and database user. You can use PHPMyAdmin. However I have had problems, with PHPMyAdmin throwing up errors and not importing the database correctly or granting user privileges correctly. I have had to do it via command line like this. I strongly advise this method, as command line rules. 🙂
By command line.
Log into mysql as root
Create database
mysql> create database db_name;
Import the database:
mysql>
use db_name;
mysql> source backup-file.sql;
Create a user
and grant privileges
GRANT ALL PRIVILEGES ON mydb.
sql
TO myuser@localhost IDENTIFIED BY "mypassword";
5) Edit your WordPress wp-config.php ensuring that the database name, username and user password match the ones created.
6) Update your tables to ensure your links work but running the following 3 command line MySql queries on the following tables. You can do this by logging into mysql as root via command line.
UPDATE
wp_options SET option_value = replace(option_value,
'https://www.example.com', 'https://localhost/test-site') WHERE
option_name = 'home'
OR
option_name = 'siteurl';
UPDATE
wp_posts SET post_content = replace(post_content,
'https://www.example.com', 'https://localhost/test-site');
UPDATE
wp_postmeta SET meta_value =
replace(meta_value,'https://www.example.com','https://localhost/test-site');
Th
ese
quer
ies
will replace refe
re
nces
to your live site’s URL from database with the localhost URL.
7) Lastly, an mostly importantly this pertains to the Ubuntu operating system environment. Apache here is installed differently from a native install for security reasons. In order to get your development WordPress running, you must do the following otherwise none of the symlinks ( symbolic links) to other pages on your site will work.
Note: nano is a text editor that’s pre-installed on Ubuntu
- In /etc/apache2/apache2.conf, edit AllowOverride None for /var/www/ to AllowOverride All
- To edit use
sudo nano /etc/apache2/apache2.conf
Press CTRL + W and search for “<Directory /var/www/>â€
Change here AllowOverride None to AllowOverride All
Save file and exit. (Press CTRL + X, press Y and then press ENTER)
- Type in the following command to enable mod_rewrite for .htaccess
sudo a2enmod rewrite
- Restart your apache server:
sudo service apache2 restart
Finally make sure you have a .htaccess file in the root directory where WordPress is installed.
It should contain code similar to this:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /your_directory/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /your_directory index.php [L]
</IfModule>
# END WordPress
That’s about it for now! Coming soon, a Control Panel App for a local LAMP install.
Sources:
Credits to: https://wordpress.stackexchange.com/users/84055/avinash (April,2020)
Credits to: https://www.wpbeginner.com, Editorial Staff at WPBeginner led by Syed Balkhi. (April,2020)