This is the home server of Geoff Stratton, hosted in Softlayer's DAL02/06 data center in downtown Dallas, Texas, geolocation 32 47 32.599 N 96 48 53.11 W 125m 10m 100m 10m. I use this place mostly as a personal knowledge base, although I keep it public in case anything useful emerges. Everything here was tested and worked for me, but caveat emptor. Honi soit qui mal y pense... and don't go handling snake-skin.
In addition to this web site, this server hosts the main site of my web development and hosting operation, a couple of public wikis, a software mirror, and other sites and services.
These are programs and scripts I've written over the years in various languages and frameworks. More general notes on development, databases, specific platforms and administration are in the "Linux/Unix" section below. I'll continue adding stuff here as I have time to clean it up and test it.
Consider everything posted here to be covered by the GNU Public License Version 3. You should read the whole license, but essentially it means you can do anything you want with the code, including bundle it up and sell it as a new application. The catch is that if you make and distribute a new app, you are required to make all the source code available for free to everyone.
- C#(.NET): Globalization; Doc/Docx to Simple HTML Converter; CountDown Timer
- Drupal: Module development tutorial; Programmatically create a block; A client/server data model using the Services module
- Perl: File change notification; XHTML validation cleanup; Hyperlink relativizer
- PHP: The Amazon Product Advertising API (Working example); Database access with PDO; List most recently changed files in a directory
- Python: Webscraping with BeautifulSoup; Statistics calculators; XML-RPC requests; SMTP; LDAP
- Shell (Bash): Quick WordPress Installer; Make a web site index
- SQL: Stupid SQL tricks
- Visual Basic (VB.NET): Free RSS Reader; JSON with LINQ
- WordPress: Plugin development tutorial
- CentOS: CentOS 7 kickstart script
- Databases: Tuning MySQL and PostgreSQL; Reset the MySQL root password; MySQL backups
- Debian: Quick setup notes
- Drupal: Ubuntu 16 web server with Nginx, MariaDB, Redis, and Drupal 8; Installing Drush 8; Ubuntu 16 web server with Nginx, MariaDB, Redis, and Drupal 7; Using jQuery UI with Drupal 7; Drupal SEO; Installation and performance; Recipe for Drupal + Nginx + PHP-FPM + PHP Opcode Cache + Varnish + SSL; Installing and using Drush; Generic notes on development; Querying databases from the PHP filter; SyntaxHighlighter with CKEditor and TinyMCE; Webform fixes; The Drupal 7 file description field; Customize the search form
- Email: Set up a Postfix/Dovecot email server on Ubuntu; SpamAssassin; Webmail (SquirrelMail)
- Fedora: TrueCrypt; Fedora 20 installation problems
- File searching and manipulation: Search and replace; grep; sed and awk
- MediaWiki: General notes
- Networking: tcpdump; mtr; Wireshark; nmap; wget and curl; DNSSEC; LOC records; Online analytics tools
- OTRS: Installation of OTRS 5 on Ubuntu 16.04; Installation on Ubuntu; Migration from Ubuntu to CentOS
- Performance monitoring: Perfmon tools
- Security: Stop xmlrpc.php attacks; Fail2ban for blocking bot attacks; OSSEC; Samhain; Snort
- Storage/disk: Expanding a disk with Ubuntu LVM; SATA disk diagnosis; SMART disk diagnosis; RAID levels; Securely erase a hard disk
- Web Servers: Install Nginx 1.9+ from Source on Ubuntu 16; Recompile Nginx (1.9+) Installed with Apt On Ubuntu 16.04; Ubuntu 16 with Apache, PHP-FPM, and MySQL; Web Server Performance 2016; Apache multi-processing modules; Swap Apache prefork for worker; Install APC; Varnish and Pound; Recompile Nginx installed with apt; Ubuntu 14 with Apache, PHP-FPM and MySQL; Adding an SSL certificate; Apache 2 Fixes for the SSL Labs Test; Install the Zend Opcode Cache
- WordPress: Installation and performance
- Zope/Plone: Migration from CentOS to Ubuntu