AWS
and that was 2019 in Review.
This blog has been very quiet this year, lots of reasons, mostly work-related has kept me away.
Some milestones were achieved this year:
NovuscodeLibrary
NovuscodeLibrary is a Delphi library of utility functions and non-visual classes.
- New package NovusCodeLibrary_cURL.dpk – cURL function library
- New package NovusCodeLibrary_WebUtils.dpk – Web functions library
- Now support Delphi 10.3 and packages
https://github.com/novuslogic/NovuscodeLibrary
Adding features or fixing bugs to Novuscodelibrary, it’s general done organically. The next feature supported:
- The Delphi Package Manager Project https://github.com/DelphiPackageManager/
CodeImatic
CodeImatic is a PascalScript based toolchain for building and deployment.
CodeImatc.build
CodeImatic.build is a PascalScript based build and deployment engine.
https://github.com/novuslogic/CodeImatic.build
CodeImatc.codegen
CodeImatic.codegen is a PascalScript template driven source code and static website generator.
https://github.com/novuslogic/CodeImatic.codegen
CodeImatic – Multiple features have been added and moving towards an early beta release next year.
DelphiAWSSDK
The Delphi AWS SDK enables Delphi/Pascal developers to easily work with Amazon Web Services.
The next version of DelphiAWSDK v.04 will have a full translation of Amazon DynamoDB https://aws.amazon.com/dynamodb/ using the new experimental Code-Generation based on CodeImatic.codegen https://github.com/novuslogic/CodeImatic.codegen
Using WordPress on Amazon Lightsail
https://leanpub.com/wordpressawslightsail/
I’m develpoing a new book called “Using WordPress on Amazon Lightsail” which will be pushlished early next year, so sign up with the “Notify Me When This Is Published” button.
Happy New Year.
DelphiAWSSDK v0.2.0
The Delphi AWS SDK enables Delphi/Pascal developers to easily work with Amazon Web Services.
https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.2.0
Summary of updates
- Updated support Delphi XE to Delphi X10.2
- Tested support for Windows 32/64Bit, MacOSX 32Bit
- New TAmazonIndyRESTClient and TAmazonDelphiRESTClient classes
- Updated TAmazonSignatureV4 class to be less reliant on Indy, allowing for cross-platform development.
- THashSHA2 supported in unit Amazon.Utils for Delphi XE8 and up.
Using WordPress on AWS EC2 Free Tier
Here is a guide on how to setup WordPress on Amazon EC2 Free Tier
Setup
-
Sign up for a AWS Account at http://aws.amazon.com/
-
Sign up for a Amazon EC2 at http://aws.amazon.com/ec2
- Sign into the AWS Console
-
Choose a Region before launching your new EC2 instance.
- Create EC2 Linux Micro Instance for WordPress:
- To start a new EC2 instance click on the Launch Instance button.
-
In the “Request Instances Wizard” tab to the Community AMI’s then filter using “wordpress” then choose the AMI:
bitnami-wordpress-3.1-0-linux-ubuntu-10.04-ebs (ami-30f18f62)
- For your Free instance, choose the number of instances: 1, Availability Zone: No Preference and Instance Type: Micro (t1 micro, 613MB).
- Shutdown Behavior option should be stop, and all other options Use Default.
-
Add in a tag key = Name and value = Webserver.
-
Create a new Key Par call it the name of the website then create and save this file somewhere on your local machine that can be grabbed latter. E.g xyz.pem
-
Adjust Security Groups,
Add rules for SSH, HTTP, HTTPS but leave the source as 0.0.0.0/0
- Now Lunch the instance
- Assign Elastic IP then Associate Address with your EC2 Instance
- Click on Instances within the EC2 console to find the Public DNS.
- Install Open SSH on Windows
-
Set pem file to Read by owner
chmod 400 xyz.pem
-
SSH in to the instance
ssh -i xyz.pem bitnami@ec2-<public DNS>.ap-southeast-1.compute.amazonaws.com
-
Move WordPress to run at the root of the apache web server by editing httpd.conf file using vi
sudo vi /opt/bitnami/apache2/conf/httpd.conf
DocumentRoot “/opt/bitnami/apache2/htdocs”
To
DocumentRoot “/opt/bitnami/apps/wordpress/htdocs”
<Directory />
Options Indexes MultiViews +FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory “/opt/bitnami/apache2/htdocs”>
To
<Directory “/opt/bitnami/apps/wordpress/htdocs”>
Comment out:
#Include “/opt/bitnami/apps/wordpress/conf/wordpress.conf”
-
Create an .htaccess file for WordPress
This also enables you to have pretty permalinks like myblog.com/tour
Add .htaccess file to WordPress dir
in /opt/bitnami/apps/wordpress/htdocs/.htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
-
Configure WordPress to know its own DNS entry
sudo vi /opt/bitnami/apps/wordpress/htdocs/wp-config.php
define(‘WP_HOME’, ‘http://www.ringio.com’);
define(‘WP_SITEURL’, ‘http://www.ringio.com’);
-
Install Filezila
Public DNS
SSH Username: bitnami
Password: <Blank>
-
delete the /opt/bitnami/updateip file. Otherwise, restarting the instance, Bitnami resets the wp_options values to the Public DNS server name.
sudo rm /opt/bitnami/updateip
-
Install EMS MySQL Manager
How to Connect to BitNami MySQL Remotely
-
Run this SQL script to set the Pubic IP Address with WordPress
update wp_options set option_value = ‘http://www.agileweboperations.com’ where option_name in (‘siteurl’, ‘home’);
-
Configure WordPress with the Pubic IP Address
sudo vi /opt/bitnami/apps/wordpress/htdocs/wp-config.php
define(‘WP_HOME’, ‘http://www.ringio.com’);
define(‘WP_SITEURL’, ‘http://www.ringio.com’);
- Reboot the instance
- In your Browser type the public ip and see if WordPress is running correctly at Root Directory
-
Login into Woresspress using default bitnami username
Username: user
Password: bitnami
- Add a new use into WordPress with Role of Administrator
- Then remove default bitnami username from WordPress by login in as your new username
- Make a DNS A record for the domain host provider, and use the elastic IP.
Migration
- Both wordpress on your old site and on AWS are the same due to database compatible issues
-
Copy your \wp-content\upload from your old site locally to reload on AWS
sudo chmod 755 /opt/bitnami/apps/wordpress/htdocs/wp-content/
Install and download all plugins to your AWS Worspress instance
- Download or install your old theme and plugins
- Export your Old WordPress database using MyPHPAdmin
- Run the Export SQL Script on the AWS WordPress Instance using your Remote SQL Manager
-
The rerun the SQL script to set the Pubic IP Address with WordPress
update wp_options set option_value = ‘http://www.agileweboperations.com’ where option_name in (‘siteurl’, ‘home’);
To Finish
-
When your domain has delegated run this script again with your domain
update wp_options set option_value = ‘http://www.website.com’ where option_name in (‘siteurl’, ‘home’);
-
Configure WordPress with the Pubic IP Address
sudo vi /opt/bitnami/apps/wordpress/htdocs/wp-config.php
define(‘WP_HOME’, ‘http://www.website.com’);
define(‘WP_SITEURL’, ‘http://www.website.com’);
Links
Amazon Web Services
http://aws.amazon.com/
AWS Management Console
http://aws.amazon.com/console/
Bitnami Wordpres Stack
http://bitnami.org/stack/wordpress
OpenSSH
http://www.openssh.com/
http://sshwindows.webheat.co.uk/
Filezilla
http://filezilla-project.org/
How to Connect to BitNami MySQL Remotely
http://wiki.bitnami.org/cloud/how_to_connect_to_your_amazon_instance#How_to_connect_to_the_BitNami_MySQL_remotely.3f
EMS MySQL Manager
http://www.sqlmanager.net/products/mysql/manager
Moving to AWS
This blog will being moving to Amazon Web Services in the next week and a new theme. So there might be some down time.