Limitations
Quirks, limits, restrictions, permissions — aren't there always some? Heads up so it doesn't cost you hours of researching in the wrong direction.
# This is not VPS hosting
The fortrabbit platform has a service oriented architecture with individually scalable as components. The environment are lightweight containers that are optimized for speedy web delivery of PHP applications. If you are shopping for as much hardware resources as possible for as little money as possible, you might look elsewhere.
# No 1-click installers
When creating an app we ask for the desired software you are about to use. This can be Laravel, Craft CMS, WordPress or alike. That will not install the software. Read more more about the software templates here.
# No root shell
The SSH environment is "jailed". So you can use it for deployment and for common tasks around development. Therefore, it's NOT possible to install software like: FFmpeg, Node, NPM, Gulp, webpack, ruby, Rails or a mail server. We do this for security and performance and security design reasons.
# Need to call via php interpreter
To launch a PHP script you need to specify the PHP interpreter explicitly: for example, php artisan or php craft.
# No image optimization tools
Tools like jpegoptim, optipng, pngquant, SVGO, gifsicle and alike can help to reduce file size of your images. Using such tools are considered a best practice today. Unfortunately they consume a lot of CPU time and memory. fortrabbit apps are build for fast short running light processes, not heavy lifting. Consider using a third party service for this.
# No video compressing
ffmpeg and ffprobe alike are also not available to avoid overuse of resources.
# wkhtmltopdf
wkhtmltopdf is a popular library to convert HTML to PDF. It's NOT installed and you can not install it on your own for the reasons named above. Check out the following alternatives:
- dompdf is a PHP only PDF by CSS renderer
- Use PDF as a service
- Rethink if you really need PDF?
- Consider PDF creation on the client side with JS in the browser, with jsPDF or similar
# Security responsibilities
We believe in a clear division of security concerns. We - fortrabbit - take care of the Operating System level and the PHP runtime, you - the developer - are responsible for the software you write and use.
# Service location
A data center can be chosen for each app individually, but can't be changed later on. The service is available in Euro (€) or US Dollars ($): This can be chosen with each payment method. The fortrabbit headquarters is based in Berlin, time zone is: CET.
# Mailing
Many applications and websites need to be able to send emails. The classical example is a password reset form for a CMS. Best use a third party service to achieve this. Here are the options:
# Transactional mail provider
Recommended: to use a "transactional mail service", those are built to ensure email delivery and will notify you when delivery fails — see transactional mail for more details. These providers are easily integrated via an API and there are plugins for CMS and frameworks.
# Direct SMTP
Caution: It's possible to use a mail script that uses SMTP (Simple Mail Transfer Protocol) via an email provider directly. There are countless possibilities how to use SMTP. Most frameworks and CMS have configuration options build in.
Although this is the standard approach, for example sending mails via Microsoft Exchange or Google for Work, but we can not recommend it any more. More mail providers are closing down this option.
To use this option anyhow, it's required to manually open the SMTP ports (25, 465, 587) with the outgoing firewall rules.
# No sendmail
Not available: It's not possible to use sendmail — the Mail Transfer Agent — on fortrabbit. The PHP mail() function uses Sendmail by default. Back in the good ol' days, this would simply call the shell command sendmail to send an email directly from your web server to the receiving email server. This is a bad practice nowadays and will rarely work. Most big email providers will simply ignore emails from unknown servers to avoid spam.
# PHP PATH_INFO
Our runtime implements PHP via FastCGI + FPM. To utilize PATH_INFO you need to do a small hack-around in your .htaccess file:
RewriteCond %{REQUEST_URI} \.php/ [NC] RewriteRule ^(.+)\.php/(.+)$ /$1.php [NC,L,QSA,E=PATH_INFO:/$2]text
# Authorization header
If you need the Authorization header, for OAuth for example, you have to forward the header explicitly via an ENV variable:
RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]apache
# Outgoing IP address
In some cases you need to know your environment's IP address, for payment processing or for networks that are behind a firewall. The IP address of environments is not guaranteed to be persistent. Although it will most probably not change during the lifetime of an App. You can see this for yourself with a PHP script. Querying an HTTP service like that from an App is the easiest way to determine the current IP address.
<?php echo file_get_contents("https://ifconfig.co/");php
Depending on your needs, it is possible to use an HTTP proxy provider like QuoteGuard to get a static IP address. Finally, there is also the official list of AWS IP ranges and the same list in JSON format.
# What this isn't
We don't offer some classical hosting standards such as:
- Plesk, cPanel, ISPconfig, any classical hosting control panel
- e-mail hosting, e-mail address configuration, webmail
- Domain ordering, top level domain registration services
- pre-installed phpMyAdmin, phpBB, Wikis …
- one-click installers
Found a tpyo?Edit