Debian Linux Stretch – Installing WordPress

Ok, earlier I installed Debian Linux Stretch using this guide.

It was wordy because I wrote it, and it had 26 steps because I wanted to make it absolutely as easy as making breakfast.

It worked because this is being written on that machine.

Next I installed the LAMP stack using this guide.

Not so wordy, and again, that’s this machine.  LAMP is a web server, and if you’re coming here to find out how to install WordPress, you already knew that.

Now I am getting ready to install WordPress.  I’m doing it as I am writing, so assuming I have the right information to guide me, I’ll have success.  I am using this guide to help me.  Also if I haven’t made a thorough hash of installing LAMP, it should “Just Work”.

WordPress is a pretty easy install, I’ve done it before on a Cloud Server, and I’ve done it before on a machine here, and a couple of random places in the past.

My install here expects a few basic things.

  • You followed my guides to build the server and it is running.
  • You have physical access to the server to simplify the process.
  • Commands will be run from the terminal as root.

Creating the database for WordPress:

A) Log In as Root to Mysql or MariaDB

  • mysql -u root -p

B) Create a regular user for WordPress – replace userpassword with a much better password!

  • CREATE USER ‘wpuser’@’localhost’ IDENTIFIED BY ‘userpassword’;

C)  Create wp_database

  • CREATE DATABASE wp_database;

D) Grant the WordPress User full access to the wp_database

  • GRANT ALL ON `wp_database`.* TO `wpuser`@`localhost`;

E) Flush your privileges and exit MySQL/MariaDB

  • exit;

Get WordPress and Unpack it

A) Download the package into your ~/Downloads directory

B) Unpack the package into the WordPress directory

  • tar xpf latest.tar.gz

C)  Remove everything in your web server’s html directory and copy the WordPress package to it.

  • REMEMBER:  If you have anything important in that /var/www/html directory it will be gone so back it up if you need it
  • rm -rf /var/www/html
  • cp -r wordpress /var/www/html

D) Set permissions and ownership for the WordPress install to function as designed.

  • chown -R www-data:www-data /var/www/html
  • find /var/www/html -type d -exec chmod 755 {} \;
  • find /var/www/html -type f -exec chmod 644 {} \;

Set Up WordPress

A) Access the process.  The WordPress setup is Browser Driven.  Surf to your localhost, or the correct web address URL to get to it.  In my case it is in Firefox:

B) Supply wp-admin the correct information.  In my case:

  • Language: English
  • (OK)
  • (Let’s Go)
  • Database: wp_database
  • Username: wpuser
  • Password: userpassword (Yes, Literally ‘userpassword’)
  • Database Host: localhost
  • Table Prefix: wp_
  • Click Submit


C) Run The Install by clicking the button.

The Five Minute WordPress Install Process

At this point, you launch into an install to create the basics for your WordPress website.

A) Information Needed:

  • Site Title – This is the name of the site you wish to create.
  • Username
  • Password
  • Confirm use of weak password if this box appears.
  • Your Email
  • Search Engine Visibility (Click the check box if you do not want to show in searches)
  • Click (Install WordPress) button

B) The Success page will show you your WordPress username and indicate your chosen password for you to proceed.

  • Click Log In

Now you can do a happy dance.  You’re done.  Go create a site.

WordPress will put a red button up for each thing that it needs to have updated.

At this point you may be creative and make a site.  You may want to explore templates, but a basic site can be slapped together quickly.

The results are that if you are on that machine, and surf http://localhost you will get a basic page with the information that you put in.

On the other hand, this is not perfect.  I surfed it from my phone and another computer here, and I got all the text but not the template.  So you will probably have some configuration to do.

But… This is good enough to get started.


Debian Linux Stretch – Installing the Operating System

This process took me all of 20 minutes.  It will take you longer to read this blog article.

I have made this into a “recipe” format where you can follow things step by step since I wrote this as I was doing it.

It is wordy, but complete – and it worked for me, step by step.

I need a new server.   I had an old netbook that I used for a couple years to move files around.  It’s too slow for me now, I will eventually be updating this new install to include a file server and a web server.

The blog sits on Blogger and WordPress.  Two places.  I need to make the WordPress side look “better”.  I have a client that I had developed a website for and I am not happy with the way it looks.  So I want a playground to see how tough it will be to get it where I think it needs to be.

So why not build a server.   You can skip to the break if you want Just The Steps.

The background is that I use Debian Linux here for almost everything I do.  I have a Windows computer that I almost never use.  Microsoft has turned Windows into an unpleasant operating system where you are sending data back at every turn of what you are doing.  Who ever made the decision to grant themselves that should be fired, mocked, pilloried, set in the stocks, and …

Never mind, there’s Debian.  It’s stable, it is predictable, and because it isn’t spying on you, it runs faster and is much more secure.

Oh and it’s free.

And there is so much information about how to use it that it is insane!

And it’s secure.

And it lets me do everything I want.

And it has a long list of software that has everything I need.

And I can use it for web development, audio and video authoring, file servers, surfing, document processing, …

Get the picture?

Ok.  Surf and do a little reading.  Come on back when you’re done.  I’ll be here.

The philosophy is to give you (the user) what you need to get your things done, be stable, and stay out of the way.  It is a bit “spare” or “lightweight”.  The base operating system is familiar but a bit retro or stodgy looking.  It is also intensely configurable.

I mean INTENSELY.  You can change just about anything which is good because I am tailoring this for a moderate speed boost by using a display manager called XFCE.  My choice, you can choose anything else you want.  KDE, Gnome, XFCE, Mate, or Cinnamon.  Others are available and you can end up with something looking like a Mac, Windows 2000, or even just a blank command prompt for slower computers.

Some background info to be aware of:

Debian is a distribution of Linux that does its best to be as open and secure as possible.  The theory is that if you can modify the actual source code, it will be secure because thousands of eyes will be reviewing the program.  That also means that Debian does not include software that is not “open” and is Proprietary and “Non-Free”.  Wifi drivers are the worst offenders, and it is notorious that a Thinkpad will demand a Wifi driver.

The suggestion is that when you move to start the install process, you do so with the computer plugged in, and plugged into an ethernet connection so that it can find whatever drivers it needs.

If the install errors or “fails” it will put up a large notification saying it needs the driver.  That error message will tell you what driver you need, and you can do a search online to find it.  The drivers are always there, I have found, with mainstream hardware.  It means that I have to find the proper package and put it on a second memory stick or chip and let the install program find it.  Since all my computers are Thinkpad laptops, I have the drivers I need on an SDHC chip and an install just grabs it from there.

tl;dr – know your hardware and get the drivers before you start.  Look at Non-Free ISOs first.

Enough blather.  Just the steps.

1) Get the Live DVD Image.  It will allow you to burn the “ISO” to a DVD and boot from it directly or you can use a program to “burn” it to a USB stick and you can boot from that.

Direct Link:

Link to find “Non Free” versions with many more drivers installed:

Link For Other Versions:

Select the file that ends in “ISO” that you want.

2) Put the data onto your DVD or Memory Stick:

DVD – use your favorite burner software to write the DVD.

unetbootin – will write the ISO you just downloaded to a memory stick.  Make sure your stick is 2GB or larger.  Follow the specific instructions for your operating system for the program.

DD – for Linux and Mac, you can dd the ISO to the USB stick.  If that usb is on /dev/sdb and the ISO is renamed to debian.iso :

dd if=debian.iso of=/dev/sdb conv=noerror,sync

Once that is done, safely detatch your stick, or dismount your DVD and begin.

3) Boot from your media:

You will probably have to hit a key, typically F2 or F12 or Esc to get into the bios to tell the computer to boot from the external media.  I typically set my medias to prefer to boot from the stick or DVD drive so this happens automatically.  Since everybody has different computers, I’ll tell you to look for a way to set that up, a way to boot from media, or just say go for it.

4) Optional – Test your computer:

A Live DVD or USB Stick is a cool invention.  You basically are booting from the media and are able to run from it.  You have full control, if you know how to do anything in Linux, so you should be able to connect to the network, test your hardware, and even surf to a music site.   While that all sounds like it’s optional, it also makes sure that Linux understands your hardware.  That is not completely optional, but I’ll leave that to you.

5) Graphical Debian Installer:  

You tested the machine, or not and are committed to install.  Select this from the original Main Menu

6) Steps to Install: Steps A to Z will get you where you want to be!

Hit enter on the Graphical Debian Installer prompt.  It will present you with the following questions:

A) Select a Language – English is the default.  Change it to your preferred language

B) Select your Location – United States is the Default.  Change to your preferred area or “other” wherever that is.

C) Keyboard map to use:  Based on your language, American English is the default.

D) Detect and Mount CD Rom:  I don’t have one

E) Load installer components from CD:  Well, I have a stick but it works just the same

F) Configure the Network:  Choose your preferred connection.  Ethernet or Wireless

G) Configure the Network: Select your router if on Wireless, Select protocol (WPA) and give it your wireless passphrase.  It will connect to the internet and configure the network so it can grab software as needed.

H) Host Name.  Name the computer something meaningful like “server” or “debian”.  I always choose a moose related name like moose or rudolph, it doesn’t have to be anything serious.

I) Domain Name: For a home network, this is not needed, leave it blank.

J) Set Up Users and Passwords: Since they changed the way they use Root on debian with this version, leave the root password blank.  You can add the password later once you are up and running from a command prompt.

K) User account:  This will be your main user name.  Typically your own name, however debian will accept anything.  This will also be the only user that will be able to gain Root access because we purposely skipped the last step.  For this install I will be using bill.

L) User Name:  This will be who this person logs in at the login prompt.  Again, you can use anything.  I always have matched it up with the User Account name, so I will use bill again.

M) User Password:  The password you use here will be your user password plus your Root password.  Choose wisely, grasshopper, and do not forget.

N) Configure the Clock: Time Zone (Eastern for me)

O) Partition Disks: You can select “Guided – Use Entire Disk” and not have to calculate anything.  It is a little lazy, and there are other ways to configure it, however this is a basic tutorial and it saves me having to do some math.

P) Partition Disks – Select disk to partition:  You will be presented with a list of drives that are connected to the computer at this moment.  This will include the existing internal hard drive, your USB stick, and any other chips or disks that are connected.  My main hard drive came up called SCSI1.

Q) Partition Disks – Partitioning Scheme: It used to be that every separate tree had to have its own partition.  Then they realized “Math is hard, Barbie” and allowed you to select “All files in one partition”.  I do that.

R) Finish partitioning and write changes to disk:  Like the man says, this will configure the disk via a program behind the scenes and make the changes needed to install to the hard drive.

S) Write the changes to disks: Select Yes to make the changes live.  It will format your hard drive now to the partition scheme you selected before.

Following all that, it will install the system.  Get yourself a drink, it only takes me no more than 20 minutes, on a bad day.  Your mileage may vary.

T) Configure Package Manager: Use a Network Mirror – Yes.  Makes your life easier.

U) Configure Package Manager: Debian Archive Mirror Country: Select your country, United States was my default.

V) Configure the package manager – Debian archive mirror: Select a mirror that “looks” like it is close to where you are.  You can change it within the operating system later.

W) Configure the package manager – Proxy information: if you do not use one, leave blank.  I don’t so if you do, you’ll have to figure it out at this point.

X) Install the GRUB Boot loader on a hard disk: Select yes.  It will allow you to boot from your hard drive.

Y) Install the GRUB boot loader on a hard disk: Select the disk that you will be using to boot from, and that you installed to.  Typically this will be called /dev/sda and be the first disk on the list.

Z) Finish the installation:  You are done.  Remove your USB Stick or your DVD and hit enter.  The next thing you see will be the Debian boot sequence

This trip through the alphabet is brought to you by the number 6 and the letters debian.  Happy computing.  You now have a happily installed computer.

Relax!  And watch the boot process.  Or sip your drink.

When you finally get to the operating system, on XFCE Select “Use Default Configuration” for your desktop.  If you don’t then you have to hand configure everything instead of using the Default as a starting place.

Securely Erasing Your Old Hard Drive Easily with Linux or a Mac

I have been thinking of the easiest way to completely and securely erase a hard drive lately.  I was given two old laptops and was asked by a dear family member to help get some personal effects off of an old laptop.

To keep this short, I was able to do that using an external hard drive case and my own machine.

Since I use Linux, I am immune to windows viruses, I can simply copy the desired data to my computer.  I now have a directory of 1.1 GB of pictures, writings and other information on my desktop which I will burn to a DVD and say “Here you go, enjoy”.

Mac people and other BSD people can rejoice in that as well.

She’ll need to scan that for viruses before she looks at it in detail since she’s on windows.

Ok, that’s all done right, just toss the drive in the nearest secure shredder or sneak it into the trash or….

Not so fast.

You see, data can be forever.

A CD typically lasts 10 years.

A CD that “you” wrote may not last that long, say 5 years.

A DVD will last longer, I haven’t had one that I wrote fail yet, and some are well more than 10 years.

I still don’t trust that removable and optical stuff.

But, if I can get the computer I am looking at now to recognize the drive, the data will still be there.  Useful or not.

Even those old 500 MB drives from the first days of the IDE era can be read if I have a way to convince my laptop to read it.  How?

Get an external hard drive case.   You need to know what kind of hard drive you have in your hands.

IDE External Cases are still available.

Serial ATA or SATA cases are available in USB 3.0 and 2.0 if you want cheap.

I paid under $5 for mine when they were on sale.

Put the drive in question in the case.

Plug the drive case into the computer.

Assuming that your computer can see the drive and the data on it, now what.  You’ve got your data off and you want to securely erase the drive.

Here’s where Linux comes in to play, although a Mac will work as well.

Don’t have a Mac or Linux computer?  The easy fix is to download a copy of Ubuntu and burn that to a DVD or to a memory stick and boot from that.   That is all done via a program called unetbootin and it is available for any modern operating system that I can reasonably think of.   Follow the instructions and you end up with a bootable USB stick.  Boot from that stick.  Plug the external drive in.

Now you’re looking at Linux.

(If you’re a Mac guy, you can to follow this on your Mac.)

Commands from this point forward will be in BOLD
Start Terminal.

Get root with “su” or “sudo su” and give it the system’s password.

Verify the address of the external drive.  “dmesg” will give the device name at the end of the display.  You can also find it in gparted (if installed).  The address will be similar to /dev/sdb.

Verify it again.  “Measure twice and cut once”.

In terminal enter the following command – I am assuming that the operating system thinks that the external drive is on “/dev/sdb”.  You need to know which partition and this will tell you where it is:

fdisk -l /dev/sdb

(Man, I hate Helvetica – That is a lower case -l )

On the Windows drive I have in question, it gave me two partitions – sdb1 and sdb2.  Windows being what it is, will almost always use sdb1 as the boot partition, and it will almost always be the largest one and the one in question with your data.

Since I have cleared out all the data that I would be worried about in an earlier step, I do not have to worry about deleting any partitions.  But I do have to create a space to work with.

Within terminal, mkdir work will make an empty directory to play with.

To access the data on the external drive: mount /dev/sdb1 work

To verify you have connected to the drive, cd work 

To list any data files you left in that directory, ls  will show you.

To create a big file to overwrite all that empty space enter the following command.

    dd if=/dev/urandom of=junkfile.txt

That dd Command will write random garbage out to the file called junkfile.txt until it runs out of space. Out of Space is a bit misleading because certain disk formats have maximum file sizes, so just run it again with a different name on the “of” portion of the command – like “junkfile1.txt” until you are satisfied.

That’s about it.   Your empty space on the drive has been filled with garbage.  You can delete that junkfile.txt and use the drive as a floppy if you like.  Since you previously deleted things that you wanted to be securely deleted, this happened with it was overwritten with random data.

The theory goes that with the “new” and “large” disks we have inside of our computers over the last few years, simply writing garbage out would be sufficient.
The Geek version was that the old drives had enough space between tracks that the data would sometimes, but not always, be mirrored and repeated in the empty spaces.  Some of the information could be “recovered” by reading that space.

You don’t have the technology to do that.  Any “normal” person finding your drive would not either.

New drives over the last few years are so densely packed that that space between the tracks is too small to store extra copies of the data.

If you are super worried (paranoid) about your data, give the drive to a destructive person, and some hand tools, and let them disassemble it for the magnets.  Or run over it with a truck.   Or both.

But this is as far as I go with my own personal data.

How to get Tap To Click back on your Debian 9 XFCE Linux install

We are at an early point in Debian 9, and therefore many of the “downstream” distributions in Linux-Land these days.

Debian just made Debian 9, Stretch, the Stable version.  It also came out with an upgrade to 9.1 a couple days ago.

Since my own laptop was a Debian 9.0 install, I had a problem.  The track pad no longer did a “tap to click”.  It was there in the earlier versions, and removed in a Debian 9.0 install.  They migrated to libinst.  It promises to be new and shiny and do many new things but most of these things are in the future – or so my lack of Tap To Click would show.

I don’t use many of the more complex mouse options with my laptop.  It’s a non touch screen, Lenovo Thinkpad T530.  I heavily use Tap to Click so I want it back.  My other laptop, a Lenovo Thinkpad Yoga S1 had the same problem.  After a lot of research, this was shown to be a design decision.  Debian is my go-to operating system distribution due to the absolute depth of software and documentation out there.

So I set about to “fix it”.

DISCLAIMER:  I was able to do so on two computers but with some thrashing around.  I will give here the information that I have, but that thrash may make it less solid than my usual “cook book recipe” guarantee of any technical articles that I write.

Give it a shot.  If it works, let me know if you did anything different and I’ll mention it here.

Background – the documentation for Debian 9, Stretch, is still incomplete.  The files that I created had to be placed in Xsession.d and the directories that Debian gave were either missing or empty for me.  What they have is correct for the earlier versions and the docs need to be proofread.

Or I went crosseyed and got the wrong damn directory…

Since this blog is a place I put documentation for my own uses (Linux as well as recipes and photography), I’ll put it here.  I’d rather not have the heat of an official inquiry on me since I live in Florida and it is quite hot enough as it is.

First:  Create a 50-synaptic.conf – the file should probably not be there on a “clean install”

1) edit /etc/X11/Xsession.d/50-synaptics.conf

2) at the top merge (Copy and Paste) in the following lines:
Section “InputClass”
        Identifier  “touchpad catchall”
        Driver  “synaptics”
        MatchIsTouchpad “on”
MatchDevicePath “/dev/input/event*”
        Option  “TapButton1”  “1”
        Option  “TapButton2”  “2”
        Option  “TapButton3”  “3”
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
#       MatchDevicePath “/dev/input/event*”
Second, copy that file to /usr/share/X11/xorg.conf.d/50-synaptics.conf
Third open terminal and sign into root to install a package:
apt install xserver-xorg-input-synaptics
Fourth: reboot.
On return, you should have tap to click working.  Entering “synclient TapButton1=1” on a command line should give you information for further research.
You may diagnose what the touchpad is doing by running as root “synclient”.
Entering “synclient TapButton1=1” on a command line should give you information for further research.
Further options such as multitouch, double finger tap for scrolling, and coast speeds and so forth are described in detail in the Debian Wiki Synaptics touch pad page at

Using a Manifest to Recreate your Linux System Selectively

Last week, I had finally had enough of not being able to hibernate my computer.  There was enough “chaff’ and weird things happening.

I did realize that I could create a list of everything I had, and then get Linux to import that list and reinstall all my programs.

That would be my Manifest.

I did it knowing that I could be reintroducing the problem that I created with the old system.

I was right.  So I did it over, selectively.

And it worked.  Hibernate and video crashes were problems, and after 17 consecutive hibernate cycles over two days of active use, I’d say I am done.

This was a whole lot simpler.  You see, this scary Manifest thing is nothing more than a text file that is generated within “Synaptic” that contains all the markings of the programs that I installed over the 7 years that I had that Linux install.

I went through that file and deleted everything that I did not expressly know what that particular program was, or anything I knew I did not want.

Easy except the file was in chronological order or … well, lets just pretend it was and leave it at that.  Basically it can be sorted in alphabetical program order simply.

One line in Terminal, just like everything in Linux, would solve it.

Assuming the Manifest is called /home/bill/Desktop/Manifest.txt

In Terminal, issue this command string on one line:

cat /home/bill/Desktop/Manifest.txt | sort > /home/bill/Desktop/SortedManifest.txt

Now you’re in alpha order, and it makes it easier.

I did delete anything that started “lib” as well as KDE, gnome, and mate since I strongly prefer XFCE to all of those.  My choice, no big deal

I simply edited the file in Mousepad, and deleted all things I did not want.

If you want the long form description of all of this, Last Week’s Post is at this link.  However the short form is here:

1) on original install create a Manifest within Synaptic Package Manager.

a) open synaptic

b) Select File, Save Markings As

c) navigate to the place you want to store this file, and give it a name.

d) Tick the box “Save full state, not only changes”

e) Click Save.

2) Verify that your manifest is on removeable media.

3)  Remove any unwanted programs from the Manifest

4) save your important files from the operating system on removable media


the Manifest file

5) Install a fresh copy of your Debian Based operating system on the destination computer.

Debian, *Ubuntu, Linux Mint, whatever…

6) Get the destination computer “up to date” and stable.

7) compare and manually update your /etc/apt/sources.list file from the original computer

copy the installed version to a save file

I copied my own from the original computer in its place and updated

then you will need to update the PGP keys for one or more added such as

8) install the manifest by

a) open synaptic

b) Select File, Read Markings

c) find and open the manifest.txt file

d) click open

e) verify needed markings have been imported into Synaptic, and click Apply.

f) there will be additional libraries incorporated into your install list due to any new dependencies.

8) you’re done.  Verify everything is OK.  Live with it for a while.

You will want to add in programs like libdvdcss to allow DVDs to play, Samba to share files, but these things will need to be done individually.

9) File Sharing.  I used the Debian Wiki entry at

a) apt install samba samba-client

b) edit /etc/samba/smb.conf  – or put the one in from the old computer assuming you had it working.

c) add your samba users:  smbpasswd -a USERNAME

replace USERNAME with the correct name, and it will ask you for the password

d) restart Samba:

    # /etc/init.d/samba restart
    or, if you are using systemd
    # /usr/sbin/service smbd restart

Migrating To A New Linux Computer With A Manifest

With Windows, you buy a new machine.  You copy a few things off the old one that you know are most important.  You make a token effort to re-create your old environment.  Then something Microsoft did gets in the way or you can’t find your original discs and you just keep it in the closet because you are afraid you will have lost all your data.  Because that’s what your buddy did down the block.

I’ve been told anyway.  I’ve also been told that most people have spare Windows computers that are taking up space.

Mac people can use a backup from Time Machine.  I’ve actually done that, and it is pretty slick.

I ran into a very different problem  My backups were perfect clones of the original.  But my original was “broke”.

Note:  This migration process is SO very easy that it takes about a half hour of actual hands on keyboard “work” and about 3 hours of processing time.  I have done this a couple times in a short span of time and am now getting “Creative” with the process.


Once upon a time, I installed Linux, and it was good…

Actually I installed Debian.  I figured that if there are so very many distributions of Linux that were forked from Debian, that Debian itself was safest.

I think I was right, no proof, just my opinion.  I have done my distribution hopping and had a machine in 1995 that was still being used in 2010 with CentOS 4.  Still stable, I just had much better hardware by then than my old Panasonic Omnibook with a Pentium 3 chip in it.  Yes, a 15 year long stretch with a computer is a long time, and I was the third owner of the machine.  It was my “pet”

I ran Debian 7 along side my Windows machines, and slowly found myself using Linux more than Windows.  I still use windows today, Windows 8.1 specificially, and I have an XP virtual machine With The Embedded Patch so I can get windows updates, but I don’t think I have run that within a month.

The only thing I use Windows for now is Photoshop, and really there are Linux programs like Gimp and Inkscape that will do what I need.

My original install was in my Dell.  Seven years ago in 2010.  First generation i7.  Dell Precision M4500. Blasted thing was built like a tank.  It loved, and once again loves, Linux.  I lived there for a year or more.  Then I was given upgrades, a couple times.  The original install went from machine 1 through 4.  Along the way Debian got upgraded to Debian 8, then recently 9 although I joined 9 back when it was “Testing”.

You see with Linux, you can clone the hard drive, take the clone, plug it into a new machine, and it just may work.  All you need is a USB caddy for the destination drive and as long as your drive names line up it works.  dd if=/dev/sda of=/dev/sdb bs=4M conv=noerror,sync

For the most part it did but there were weird video affects and strange hibernate and resume problems. This cropped up as a result of taking machine 1’s operating system and making it stable in machine 2 and 3 and later 4.

The actual process:

So here I am, creating from scratch Son Of Original Install. Debian 9 with XFCE4.  Oh, and a lot of extra “baggage” that I don’t need but it is easier that way.

I decided that I would create a list of programs that I could reinstall on the New Machine and see how it works.  Also this is done with me in XFCE4.  We Linux People are if nothing else, flexible.  If it is not where I said it is, poke around a bit.

Step 1.  New Machine, is a Thinkpad T530, and gets a clean “Bare Metal” install of Debian 9. I ended up doing it a couple times, and so far the only weirdness is that it insists that I do “sudo su” if I want my terminal session to be and remain root.  They also renamed the network devices that have been used for decades.  So when I get to the network tweaks that I will have to do, I may have to edit a configuration file. Most likely samba.conf.

Success.  I’m typing this from that machine now.

Step 2.  Create Manifest and install it from Synaptic. (Menu, System, Synaptic)

Step 2a.  On Original, open Synaptic.  After giving it the password for Root create a manifest by clicking “File, Save Markings As” and ticking a box at the bottom of the window that says “Save full state, not only changes”.

Synaptic created the file with everything and in next step, it will place everything where I need it.  Yes, it will add a lot of software I don’t really need, but with Synaptic and Linux, I can purge all that stuff with a simple “apt purge” and it will remove it all, completely.  Put it on a chip or USB stick and place it on the new machine.

You can edit the file and delete anything out that you know won’t be needed, but you will have to trust Synaptic to realize what you’re trying to do.  Best if you did the removal in the next step.

Step 2b.  On New install on the new machine, open Synaptic and select “File, Read Markings”.  Tell it where that file is.  It will read it in and select all your “markings” from the manifest and instruct Synaptic to later install.

I did that in bed.  It was 8GB worth of upgrades on a replacement for my old 7 year lived in install.

Here is where I am second guessing and should have removed the other programs and window managers that I don’t use.  I like XFCE4, it’s light, fast, and configurable.  Others prefer KDE or Gnome.  I have them all installed.  Why not, it’s a seven year old install.  If you remove it before telling Synaptic to update, Synaptic will get rid of the chaff along with it.  I didn’t want to, I wanted “What I Had On The Old Install”.

Step 3.  Bring over my home directory.  I cloned the Original install on a backup drive.  I took that drive and plugged it into an external case.  Plugged that into the USB port. It is copying.

Step 4.  Live with it.

I have to go with this new install for a while spotting problems.  And I haven’t gone back to the old machine since.

Step 4a) The first one was I had to be able to play DVDs.

Change, as root, the /etc/apt/sources.list file by editing it and adding four lines:

#2017-07-08 to add libdvdcss

deb /
deb-src /

Then install as root by “apt install libdvdcss2”.

VLC worked by playing Futurama in Spanish.  Leela is a babe.

Step 4b) network shares on windows are not yet accessable.

SAMBA was installed on Original, and it was happy.  It took a lot of twiddling to get that there.  Luckily I could copy over and merge it into my bare bones samba.conf file.  I saved the new one as installed, then copied the one over from Original, then restarted.

Fixed the access to my network shares.  It did not fix the share I had on the new machine.  I’ll work on that.

Step 5) Conclusion is that this process works.

Worked.  I’m on day 6 of all of this.

Two problems cropped up:

1) The network share on my “new” machine still hasn’t been fixed but I will deal with that later

2) Flash does not work.  Flash, as a platform, is dying. The only place it irks me is on when I run across a short video to play.  I’ll look into that at my leisure.

Step 6) Epilogue:

Furthermore…  I got bored and did it again with another machine.  I had it working once the updates happened.  It’s a first generation Thinkpad Yoga S1 and has its own problem.

That’s the thing, there will always be quirks.  Be prepared.  They happen because the new computer has different hardware than the original one.  You may need drivers, and you may need to remove software.

After all you still have your old machine and its backup, so you can go back if you want.  This “migration” is completely safe to your original data.

Docker on Debian Linux – Getting a Canned Container for WordPress

The Setting for this article:

If there is no outside nonsense going on, this is the way that the whole open-source and Docker universe is supposed to work.  You grab a container that has your operating system in it from a repository and run it as needed.

That means you grab it from the cloud.  When you have it you can do with it what you want and then either save it or throw it away.

All that is great, but it does go against my own Project Management training.  You did not make it so how do you know it does not have any problems with it like viruses or worse.

So Warning:  Only run a container that you create or one that you know to be safe. 

I am assuming that the container I am working with is safe because it is listed as official.  To be honest, I can’t say I know enough about Docker and this particular container to say that assumption is true.

The benefits of running a container from a repository:

In the case of this particular one, it saves me a lot of time.

I do not have to create the container, I can just use it.

I can save it on my computer, or not – it is up to me.

I can modify it as I like.

Not a long list, I’m sure you can add other items to it.  It took me about 10 minutes to grab the container and save it to my hard drive.  It takes about 2 hours to install Debian, then another couple hours to install LAMP, and more time install WordPress… and configuration time.  Someone at Docker did it for me.  This is why containers got popular.  In a large organization, you will have a standard container that gets cloned dozens of times for the designed purpose.

Since we’re going to simply use it, here are the steps to get a “canned” container onto your computer for WordPress.


1) Get your environment ready

Start your Docker compatible computer and make sure Docker is up and running.  A simple command like docker images will tell you the list of images you have available and what they are called.

2) Search the repository for the image you were given

What you need is a list of containers.  These are “out there on the cloud” and available at Docker for you to grab.  They may also be on your own cloud server if you’re at a business.  Typically someone will tell you “what to use” to get your job done.

We need a WordPress image.  You want to search.  docker search wordpress  will give you a list of all images that have wordpress in the name field.  Remember that “case counts” in Linux – all things are Case Sensitive as a Standard.

The one I feel safest choosing is the first one.  “wordpress”.  It has an official tag, 1601 stars, and I honestly am simply guessing.  Like I said in my preamble, if you want bulletproof security – create one from scratch.

3) Download the image with the “docker pull” command

This is pleasantly easy.  The image itself is called “wordpress” and all you need to get the latest image is to enter on the command line “docker pull wordpress“.  Docker will go out to its repository and make it available to itself.

At this point, you have in your hot little computer’s hands a copy of Debian Linux with WordPress.  If all you want to do is poke around and destroy at the end, you can stop reading, you’re done.

4) Verify that you have the image available to Docker

You can easily do this with another docker image command:

Having the wordpress image show on the REPOSITORY list proves things worked.

5) Prove that the image runs in Docker

You have it. Now how do you run the beast? 

First, check that images list.  There is a field called “IMAGE ID” in the list.  That is what Docker knows the images are called.  The Name is just a friendly name that you can change if you have a mind to.
Second execute the container using that IMAGE ID.  You will also want to be able to do something inside, so run /bin/bash as well.  That will allow you to control the container.

For my copy of wordpress the number to run is f6ae044a5122.  The command to run is “docker run -i -t f6ae044a5122 /bin/bash”  Your IMAGE ID will vary based on your list.

Notice that the prompt changes from root@elk to root@f6ae044a5122.  This tells you your computer changed and you are now “inside” the container.  You can enter normal bash commands here.

I am purposely getting out of the container with an “exit” command.  When you exit the container, it stops.

Finally, I need to know what docker called that container when it downloaded it.  Its name in the “NAMES” field is the key.  For me it is 8bb814e82c48.  I will need this to re-start the container in the next step.

6) Starting your Docker container, getting the container up to date.

The last step was to get out of the container.  That puts you back onto “your” computer.  You’re “local” now.  That is important because you will want to go back into docker to make sure you can.  It is an extra step, but it allows you to be careful.  Following that you will want to update the container.

You first need to start the container.  That is done with the docker start command.  My container is called 8bb814e82c48, and that is used here.  I do this by starting it with “docker start 8bb814e82c48“.

It’s running but you have to attach  the container.  In this case, I was able to have it drop me into a /bin/bash shell, automatically.  I do this with a “docker attach 8bb814e82c48” command.

Now that I am in the container, I want to update the container to current Debian – get all the software inside the container up to date.  This is done in the traditional way with the following three commands:

  1. apt update
  2. apt upgrade
  3. apt dist-upgrade

Finally it is necessary to get out of the container by entering an “exit command at the command prompt.

All except the exit are in the next graphic.

7) Commit your docker container to your local hard drive and give it a friendly name

That’s all great.  You have gotten the container up to date.  You need to be able to shut down the computer and make the container available for you when you come back from what ever you are doing out in the real world.  Right?

This is done with a few steps.

First you need to commit the container and give it a name.  Then you can verify your actions with an image.

Your container is the one you have been working with.  In my case it is 8bb814e82c48.  You need to commit this to the hard drive within Docker on the local machine.  I enter the command “docker commit 8bb814e82c48 wordpress“.  This gives the container the NAME of “wordpress”.  Terribly generic.  If you are running a couple containers at once, you will want to give it something more specific and meaningful.

Verify that Docker knows that it exists in its own table by entering a “docker ps -a” command.

Finally you can do a “docker images” command to show the list of containers you have access to.

8) Running your local copy of the Docker Container

Now that you have returned to your computer, or have stopped Docker, you are going to want to go through the motions of restarting it again.

First, the “docker images” command will give you the information you need.  It will tell you docker is up and running, and give you a list of containers you will need to do your thing.  The container is 8bb814e82c48 for me, your number will vary.  This corresponds to the container we committed to disk earlier.

Second, you can run some commands to start the container, attach to it, and verify that it is responding.  To start the container, you enter a command of “docker run -i -t 8bb814e82c48 /bin/bash“.  Attach to the container This will also put you inside the container and allow you to enter bash commands.

Finally, you can exit out of the container and go back to your local machine.

This is all listed in the following graphic.

9) How to actually access this specific container from the Docker Repository

Here is where I end for now.

What you have achieved is to grab a container from Docker and get the thing up to date.  You were able to save it locally, hopefully.  Finally you proved that it is verifiable and repeatable by running it again.

That gives you a server that you don’t know how to use.
I’m in the same boat at this point.  There is a long list of things you can do with the container, if you know how to get into it.  This specific container is a Docker produced container.  They have documented the steps for you to get access to it.

I will be returning to this and producing a cheat sheet in time as I get more used to the whole process.  I’m used to Debian and LAMP and doing it all “live” on a “real” computer (bare metal for the VMWare crowd), but this is still a learning process for me.

So once I get more helpful information, I’ll be back.  After all I have been at blogging since 2007.

The link from docker is here:

Good luck!