As I said in my Home Page, I finally spent some time and migrated my ancient homepage to WordPress, the most popular web hosting platform (>60% of web sites).
However, quite contrarily to my expectations, the process is rather complicated. I went through quite a few hiccups, taking more than a couple of days, to reach today’s state. So I decide to write my experience down to hopefully save someone’s else pain.
For the Inpatients
- Don’t follow the official instructions. It looks easy and simple, but WordPress is too old and does not seem to be easily updateable.
- Don’t use WordPress docker container. A lot of trouble to get MySQL setup and connected. You still have a broken environment that many plug-in’s don’t work. In my case, I need to send emails (who don’t?), and that is VERY HARD to do with container.
- I suppose Bitnami WordPress on AWS might be a fine choice. But I find more flexibility in just doing it myself, and it is actually not that hard, with a good instruction.
- I ended up installing WordPress directory on Ubuntu 18.04
- I install WordPress as a subdrectory of WWW root (wordpress/). This way I can migrate my original web site (in classic HTML) to WWW directory and co-exist with new shiny WordPress pages.
- I chose Apache2 and MySQL. You can use Niginx and Mariabdb as well.
- install required packages
apt update apt install apache2 mysql php php-mysql apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-gd
- configure mysql
create database wordpress; grant SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER on wordpress.* to 'wp_admin'@'localhost' identified by 'somepasswordofyourown';
- install wordpress
cd /tmp && wget https://wordpress.org/latest.tar.gz tar xzf latest.tar.gz -C /var/www/html/ mkdir /var/www/html/wordpress/uploads chown -R www-data.www-data /var/www/html/wordpress/
- create /etc/apache2/sites-available/wordpress.conf file:
<Directory /var/www/html/wordpress> Options FollowSymLinks AllowOverride Limit Options FileInfo DirectoryIndex index.php Order allow,deny Allow from all </Directory> <Directory /var/www/html/wordpress/wp-content> Options FollowSymLinks Order allow,deny Allow from all </Directory>
- enable WordPress in apache2
sudo apache2ctl configtest # test syntax
sudo a2ensite wordpress
sudo a2enmod rewrite
sudo systemctl restart apache2
- Initialize WordPress
- Open a browser and go to “http://<server ip/name>/wordpress”
- Enter site name, database name (“wordpress”), database user (“wp_admin”) and password.
- You are done! Well, sort of. The rest is about WordPress itself, which is another topic.
- Great one by Pankaj. I discovered a little late. Otherwise it would save me some trouble
- By Brian Boucheron. A little bit convoluted and confusing. This is what I followed at the beginning