Monsta, Web FTP file manager in PHP Ajax

monsta web ftp logo

Few days ago, I wrote an article on net2ftp, a web based FTP file manager letting you upload, download and manage all your file on your FTP. With a simple design and easy to install, net2ftp is still widely used. But if you are looking for some a bit more advanced, Monsta is probably what you are looking for.


Monsta - file manager upload

Monsta is an open source web based FTP file manager written in PHP and Ajax. Easy to install too, it lets you upload, download and manage your file in an easy way too. With drag & drop to upload or move, on screen file editing and multi language support, Monsta can replace your desktop FTP software like Filezilla and co. And Monsta is not afraid to claim it! “Say goodbye to desktop FTP software, forever!”

Monsta - set file permission

You can watch a demo here to let you have some idea on the product. Interested? Let’s see how to install it:



1) Download and unzip their latest zip in a dedicated folder of your /var/www

Currently, their latest version is the V1.4.5. But make sure you download the latest one.

In root (or with sudo), run:

cd /var/www
mkdir monsta
cd monsta/

2) Change the owner of the folder (by www-data:www-data) to avoid permission issues.

chown -R www-data:www-data monsta

And you’re good to go!

You can directly access it through http://yourIP/monsta

Monsta - login screenshot

You may encounter several problems, especially on the execution time to upload or number of files to upload, etc… you can check their forum or FAQ but all these issues are usually linked to your php.ini configuration. To increase the php value for the size of the upload, execution time, etc.. I recommend you to set up a dedicated virtualhost (And using a sub domain + SSL, meanwhile) and here is how to:


Virtualhost configuration

Let’s assume you want to access to your newly installed monsta through the URL ftp.domain.tld

What you will need:

1) Create a A redirection in your DNS server/registrar with wiki.domain.tld to your IP

2) Have SSL certificate ready. If not you can read this tutorial. (Optional)

3) Create your virtualhost as following:

In /etc/apache2/sites-enabled/, create a file called monsta (In root):

nano /etc/apache2/sites-enabled/monsta

and paste the following content:

<VirtualHost *:80>
        ServerAdmin webmaster@domain.tld
        ServerName ftp.domain.tld
        Redirect / https://ftp.domain.tld

<IfModule mod_ssl.c>
<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/myblog.pem
        SSLCertificateKeyFile /etc/ssl/private/myblog.key

        ServerAdmin webmaster@domain.tld
        ServerName ftp.domain.tld

        DocumentRoot /var/www/monsta
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        <Directory /var/www/monsta>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all

       php_value max_execution_time = 200
       php_value post_max_size = 200M
       php_value upload_max_size = 200M
       php_value upload_max_filesize = 20M
       php_value max_file_uploads = 100
       php_value memory_limit = 256M


Adapt the content (Servername, webmaster email, SSL certificate, directory and php values).

When done, save the file (CTRL+X then Yes) and reload apache: (In root)

/etc/init.d/apache2 reload

If everything went well, you should now be able to access to your Monsta Web FTP through the url ftp.domain.tld. It should redirect you to the HTTPS version.


Loves to discover web-based apps to install on his own server@home and write articles about it


Add a comment