Ben's Pro Tips

Tech Tips Made Easy

The cheapest small business fax-to-email service I can find

Screen Shot 2014-04-25 at 1.20.50 PM

After putting it off, I finally succumbed to the need to have a dedicated fax line. Yes, 1988’s hottest technology is still a thing.

Not wanting to waste a small fortune getting a real phone line, and buying and maintaining an actual fax machine, I dove into the not-quite-bustling online world of fax to email services. A fax-to-email service basically is a fax number you give out as your own, however when a fax comes in, instead of rolls of thermal paper endlessly spooling out your documents, you get a nice clean PDF in your regular email instead. Very convenient.

Going over the most common choices, I found MyFax.com to be expensive, $10 per month? eFax.com was even worse. This is OK if you’re a hardcore faxer, but it’s way too much for the very occasional use I might need. Nextiva is a bit better price-wise ($4.95 per month), however they didn’t have any local numbers. For my entire state.

After much searching for different providers and solutions involving a mismatch of VoIP adapters, wireless bridges, and all-in-one inkjets, I decided to do Google site:search on Callcentric.com. Callcentric is a great inexpensive VoIP provider I’ve used for years. They don’t advertise a fax service, but deep in their support pages I found they do offer a free fax-to-email service! You can turn any line you have hosted with them into a fax by checking a checkbox in the account page. They have free numbers in some markets, $1.95 per month for others, or go all-out with a toll free fax for $3.95 per month.

For $4 per month I now have a toll free fax line. Incoming faxes come right to my email box. I’m happy and didn’t break the bank.

NOTE: This is an unbiased review based on my own personal experience. Yours may vary. I received no compensation from any of the above providers. None of the links above are affiliate links and I don’t make anything if you sign up. Or not.

Please add your experiences in the comments, I’d love to hear them!

April 25, 2014 Everything Else business, fax machine, fax to email, office

Apache: The SSLCertificateChainFile directive is deprecated, SSLCertificateFile should be used instead

Getting the above warning message when starting your Apache service?

The SSLCertificateChainFile directive (/etc/apache2/sites-enabled/xxx.conf:42) is deprecated, SSLCertificateFile should be used instead

Fortunately it’s an easy fix. First back up your existing Apache config and certificate files. Edit the specified conf file, and find the line:

SSLCertificateChainFile /etc/apache2/ssl/comodo.intermediate.crt

And delete or comment it out. Next, edit your crt file (Specified by the SSLCertificateFile directive in your ). You can place ALL of your certificates in this file. The root cert, the chain certs, AND the cert for your website. For example:

-----BEGIN CERTIFICATE-----
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
qUCAwEAAaOCAWUwggFhqUCAwEAAaOCAWUwggFhqUC
-----END CERTIFICATE-----

(note these aren’t real certs, your server will catch on fire if you try this at home)

VERY IMPORTANT:

The order of the certificates is important. Your apache WILL NOT start or your cert will not be valid if the order is wrong. According to the official Apache documentation, the order is FIRST your domain certificate, then the intermediate, THEN the root. Backwards of how one might expect.

Because I’m using a Comodo PositiveSSL certificate, the order I copy/paste into my domain’s CRT file is:

1) mydomain.crt
2) COMODORSADomainValidationSecureServerCA.crt
3) COMODORSAAddTrustCA.crt
4) AddTrustExternalCARoot.crt

Update: This order has been corrected, thanks Todd!

As always, once done, restart apache, then test your cert with an SSL checker such as http://www.sslshopper.com/ssl-checker.html

Hope this helps.

April 12, 2014 Apache Tips, Linux Server Tips

Apache 2 error: Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}

Had this one crop up today when debugging an apache config problem. In a moment of non-clarity (ok, stupidity) I tried running apache2 directly hoping to see the error preventing the service from restarting. The common cause of this error is attempting to launch the apache2 daemon directly from the command line.

The fix is simple: always use init scripts to launch Apache. Some daemons can be launched directly from the commandline, for example memcached and mysqld. Apache isn’t that way. Launching from the commandline won’t set the requisite env variables causing odd messages like the one in the post title.

If you’re troubleshooting an error in your config file, the error message will be in your /etc/log/apache2/error.log (or equivalent)

Also, as a bonus tip, don’t forget your good friend in config file debugging:

apachectl configtest

Apache Tips, Linux Server Tips

OpenCart: How to exclude tax from your Google Products feed

Due to an odd design decision, OpenCart will always factor in sales (or VAT) taxes in your Google Products feed (or Froogle or Google Base or Google Shopping or Google Merchants or whatever the heck they’re calling it this week). This seems to happen regardless of your admin tax settings. This causes your prices to appear inflated as Google expects the base price of the product and adds in tax on its own.

The fix for this is simple. Edit your /catalog/controller/feed/google_base.php file and find the following block:

if ((float)$product['special']) {
    $output .= '<g:price>' . $this->currency->format($this->tax->calculate($product['special'], $product['tax_class_id']), $currency_code, $currency_value, false) . '</g:price>';
} else {
    $output .= '<g:price>' . $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id']), $currency_code, $currency_value, false) . '</g:price>';
 }

Change it to:

if ((float)$product['special']) {
    $output .= '<g:price>' . $this->currency->format($product['special'], $currency_code, $currency_value, false) . '</g:price>';
} else {
    $output .= '<g:price>' . $this->currency->format($product['price'], $currency_code, $currency_value, false) . '</g:price>';
}

 

You’re all set!

March 25, 2014 eCommerce, PHP Tips

Is OpenCart link duplication getting you down?

OpenCart is a great e-commerce package, but its default link scheme leaves quite a bit to be desired. Install OpenCart, carefully add all of your products with their associated descriptions and images. Make your template pages pretty, add your brands, put together your category pages and so on. Pretty soon, you’ll find yourself on the receiving end of an SEO mess destroying any chance you have at ranking well for your keywords on Google.

I, like thousands of other OpenCart users, faced a similar problem when setting up a store for a client. Seeing a need for a simple solution, I developed an easy inexpensive vqmod plugin for OpenCart that will solve this problem within minutes.

OpenCart SEO Link De-duplicator installs easily, and once installed will not only standardize your links across your site (i.e. the same product link from a manufacturer page, the home page, and a category page will all have the same URL), it goes one step further, 301 redirecting all the duplicate page links to the correct, canonical URL.

Hope this helps somebody facing a similar problem.

March 17, 2014 eCommerce

Linux server drive filling up but with what?

I recently was diagnosing a server where the disk drive kept filling up. What’s so odd about that? Well, running “du -sc * | sort -n” would show no directories larger than a couple gigs, and definitely nothing large enough to be exhausing the entire drive, yet df showed 80 gigs missing.

I finally tracked it down to a runaway squid process filling up the cache and log with entries. You see Linux won’t remove a file when it’s in use, even after you manually delete it. I was able to find the ghost file by running:

lsof -n | grep -i deleted

This command showed all open files that were deleted; IE taking up room on the disk without being visible in the file system. Simply restarting the Squid process was enough to free up the phantom space.

February 23, 2014 Linux Server Tips

OpenCart Stripe Payment Gateway

Stripe Opencart Module

After recently setting up an OpenCart store, I was surprised at the poor selection of Stripe payment modules. I only found a few and they were either really expensive ($40+) or had too many rough edges to use on a commercial site.

What did I do? I rolled my own of course! Took a few days, but I designed, developed, and tested a professional solution. It ended up so good, I decided to package it up and sell it for anyone who needs to get up and running with Stripe on OpenCart inexpensively. You can purchase it by clicking here.

UPDATE: Lawrence from buildmyecommerce.com has made a demo video of how it works. Check it out.

February 22, 2014 eCommerce codecanyon, opencart, stripe payments

How to tell if Apache is running MPM, Prefork, or Worker module

When configuring Apache for performance, you’ll almost definitely find a need to alter the default MaxClients, StartServers, MinSpareServers, etc settings. Pop open your apache2.conf (or httpd.conf) and … wait a sec, which one is it?

The default setting here can vary by system, fortunately it’s easy to find.  Simply run:

 Continue reading “How to tell if Apache is running MPM, Prefork, or Worker module” »

February 19, 2014 Apache Tips, Linux Server Tips apache2, apache2.conf, apachectl, config file, httpd.conf, module, mpm, performance, prefork, tuning, web server

Upgrading to PHP 5.5 (or PHP 5.4) on Ubuntu 12.04 Precise Pangolin

To upgrade the default PHP 5.3 to 5.5 and still receive automatic updates, you can do the following:

Continue reading “Upgrading to PHP 5.5 (or PHP 5.4) on Ubuntu 12.04 Precise Pangolin” »

February 13, 2014 Linux Server Tips, PHP Tips php, php 5.4, php 5.5, ubuntu server, upgrade

Adding a drive to your RAID1 array on Debian/Ubuntu/Linux Mint

Last week we looked at making a single-disk system redundant by setting up a raid array. Today we’re going to see how to add a new disk to the array. It’s a good practice to have at least 3 disks, so in case one fails, you don’t have to worry about a devastating failure while a replacement is shipping.

Adding a disk is fairly easy using mdadm. You can follow these steps: Continue reading “Adding a drive to your RAID1 array on Debian/Ubuntu/Linux Mint” »

Linux Server Tips raid, raid1, redundancy, sync