As a PHP developer I often find myself having to run executable files installed to a project via Composer (e.g. php-cs-fixer
, phpunit
, psysh
, etc.). These binary files typically reside in vendor/bin
relative to the root of a project and in order to run these binary files from the project root I would need to cd
into the vendor/bin
directory first or type out the relative path (e.g. vendor/bin/php-cs-fixer fix
) every time I wanted to run one of these executables.
Use a Linux system long enough and eventually you'll need to schedule a recurring task. Of course the defacto scheduler is cron (and there's nothing inherently wrong with it) but I've grown to like the flexibility and features of systemd timers. Some of the benefits they provide over cron include:
This is a write up to the 2014 CactusCon web application (SpookiLeaks) challenge. You can grab the SpookiLeaks-VM here and try the challenge yourself before reading the solution.
I maintain several Linux servers at any given moment. Every server has postfix installed for sending emails, usually notifications or warning messages of some sort and most of these servers are professionally hosted allowing outbound emails with little to no configuration beyond installing postfix. However, my home server lies behind my ISP and they block all outbound emails citing SPAM as the reason. Regardless of their reasoning I had to find a workaround to allow me to send email notifications from behind my ISP. Well, it turns out this is rather painless with postfix and a Gmail account.
Having set up several Debian and Ubuntu web servers in the past I thought it would be a good idea to share my process. The following is a relatively comprehensive guide to installing and configuring an Apache based web server with some optimizations and basic resource monitoring. I primarily work with Ubuntu servers, but most of the commands here should work exactly the same in Debian or Ubuntu. I've tried to note where differences may occur.