phpFox Storage app is compatible with old phpFox versions (4.7.9 or earlier). Since phpFox 4.8.0 and later on, Storage Systems can be configured directly in AdminCP. If you are using phpFox 4.8.x, please refer instruction for this article here.

This tutorial requires at least an intermediate level of knowledge. If you are not at that level or cannot get this to work, please seek assistance from experts.

Requires: phpfox 4.3+

You can set up your own storage servers with phpFox. It can be hosted on the same web server as your site, however, it's best to keep it separate.

In this documentation, we will guide you on how to set it up on the same web server.

All examples in this tutorial use below information:

Step 1: Setting up Storage servers

The source code for a storage server can be found in the folder /PF.Site/Apps/core-cdn/server/.
This folder can be moved to anywhere on your server but make sure that it has public HTTP access. For example, in this tutorial, we will move it to the root folder of the site and rename to storage:


Now, open it, you can see files and folders like this:

Next, we need to update something in there:


define('STORAGE_FOLDER', './');
define('STORAGE_KEY', '');

The first constant, STORAGE_FOLDER is the path to store the user uploaded files. You can change the STORAGE_FOLDER value, but you must be sure about the existence of the new folder.

The next constant is STORAGE_KEY . This is a unique key you create and will be used when you assign this server to the App in your phpFox AdminCP. Remember this key for the next step.

In this example, we will update the file:


define('STORAGE_FOLDER', './');
define('STORAGE_KEY', 'phpFox2017');

Step 2: AdminCP Configurations

Now that we have our Storage server ready. Log into your AdminCP and head on over to Apps >> phpFox Storage.

Once you have reached the app, click on NEW SERVER

You will get a popup with 3 text input fields. The first is Upload URL. This is the full HTTP path of your CDN folder.

With this example, it will be:

The next is View URL. This is the URL to the view folder, which by default is /. The value for this example would then be:

The final setting is Secret Key. This is the same value as the STORAGE_KEY you updated earlier (phpFox2017 with this example).

Hit Submit and you will have added your first Storage server.

Step 3: Enable Storage

Now that we have updated the Storage server and assigned it to the App we need to enable the extended Storage feature. On the same page where you manage your Storage servers, you will find a link Settings. Click on that and then click Yes to enable the service.

There are no limits on how many servers you can add and extend the server code is possible to spread the uploaded files across many locations.