phpFileManager
version 1.7.6

PHP Filesystem Management Tool

[sourceforge] [github] [changelog] [new features] [support]

About
phpFileManager is a complete filesystem management tool on a single file.

This is a tool meant for rapid file access, and also to verify the server php configuration and security.
The script can be renamed and deployed on an unique known url, and offers password protection.

Online Demo: https://phpfm-demo.000webhostapp.com
Feel free to mess around! This is a public demo installation, and will reset itself every 30 min.

Features:
. directory tree, with ajax loading
. copy/move/delete/create/rename/edit/view/chmod files and folders
. tar/zip/bzip/gzip with native support
. code editor with syntax highlight, using Ace and Monokai theme
. shell terminal emulator
. portscan using PHP sockets
. server info
. multiple uploads
. password protection
. works on linux/mac/windows
. php4/php5/php6/php7 compatible
. translations included for english/portuguese/spanish/catalan/chinese
/dutch/french/german/italian/korean/russian/polish/turkish/ukrainian

License:
phpFileManager is free software; you can redistribute it and/or modify it
under the terms of any of the following licenses at your choice:

. GNU General Public License Version 2 or later (the "GPL");
. GNU Lesser General Public License Version 2.1 or later (the "LGPL");
. Mozilla Public License Version 1.1 or later (the "MPL").

Give Your Rating!
This is a free, open souce project!
If you liked, please access the sourceforge page and give your rating!

Download PHP File Manager
If you like this script, please consider making a donation. Any amount is well received, and will help me continue giving support and adding new features.
What´s new on this version? (Changelog)
Version 1.7.6:
. Added buttons to create symlinks and hardlinks. If one entry is selected, prompt for new name, if more, use the same.
. Show symlinks with (L) marker on tree view.
. Show symlinks targets with breadcrumbs on top of file/folder view, and resolve them recursively, until the final target.
. Show broken symlinks in RED on tree view and file/folder view, and allow to delete/rename them.
. Improved total_copy() and total_delete() functions with flags to copylinks (instead of the files, default true) and followlinks (default false).
. Created special functions to handle symlink/hardlink creation on windows/linux, using php functions and fallback to system commands.

Version 1.7.5:
. BugFix: Symlinks to folders now show correctly on the tree view.
. Added folders total size using php, ajax, recursive limit and cache on cookies for the session.
. Tried to use mimetype check on the file/folder list, to identify textfiles, but it was slowing the script too much. So i added a binary file check on the edit window, allowing to view/copy/save them using base64.
. Show total/available size of a partition mounted on linux, when acessing the mouting point.

Version 1.7.4:
. Identify symlinks on the list, and show target file/folder as a hint on mouseover.
. Added total size of folders, using system command "du -sb" on linux and "COM()" on windows, if available.
. Added total size of file/folder selection on footer info.
. Added config option to set the local date format.
. Chmod window now is bigger and shows by default, the permission of the last selected file/folder.
. phpFileManager now remembers the current folder, on full reload, using a cookie for the session.
. phpFileManager now works even when contained on another frameset. (fix for the online demo)
. BugFix: readdir() was stopping on any folder or files named "0".
. BugFix: Delete action had a javascript error on windows, due to changes made on v1.7.0.
. BugFix: Execute file action now is shown on any file that has execution permissions, not just by extension.
. BugFix: When executing files, add "cd /current_folder &&" to the command, as i already do on the shell emulator.
. BugFix: Show the button "resolve ids" on windows to resolve permissions codes.
. BugFix: Password was reseting to none on every config save.
. BugFix: Changed default linux file upload permition to 644, and added a system call to "icacls" on windows, to reset perms.
. BugFix: Decompress action for ZIP files was not extracting empty folders/files.

Version 1.7.3:
. BugFix: Move action not working as expected. (by TrickMyIdea)

Version 1.7.2:
. BugFix: Fix for tree loading problem, when the webserver is not using php open_basedir.

Version 1.7.1:
. Added back the config option to set the phpFileManager root, so it does not show always the whole server.
. Added server time on footer info, and a new config option to set the timezone, if the user uses one different from the server.
. Interface adjustment for I/O Error message, when selecting a protected folder.

Version 1.7:
. Revised all code to use proper folder separators on Linux and Windows servers. PHP does not care, but system functions do, so this was needed for the terminal emulator.
. Improved interface, now with icons. (by prasathmani)
. Alert messages shown directly on screen, without the annoying alert() popup.
. Shell terminal emulator now shows user, hostname and the current working folder (ex. [user@server /home/user]$ ls). Can also explore the whole server freely, if php system exec functions allow it.
. Syntax highlighting on the Edit file window, using Ace and Monokai theme.
. New button for rapid ZIP download of files and folders.
. BugFix: Edit option now available on files without extension.
. BugFix: Breadcrumbs were not showing on empty directories.
. BugFix: Interface bug that was occuring if you select a file, click on copy, then on config or any other modal window.

Version 1.6:
. Updated tar/zip/bzip/gzip class, and modified it to provide php7 support (this was not working anymore).
. Improved php sockets portscan, with revised backend, and new frontend. Now the form remembers the last search, using cookies for the session.
. Special error message when Javascript support is not available, for those noScript addon users.
. Fixed filenames that were shown escaped on the edit/view window header.

Version 1.5:
. breadcrumbs on right window top file path. (by Tri Le)
. apache_request_headers() alternative function added, for nginx + php-fpm support. (by asins)
. php7 support.
. php open_basedir parsing, all available paths (and drives on windows) are shown on top of the folder tree.
. new and improved portscan, with ajax loading, and options to define hosts, ranges and ports to be scanned.
. chromePhp debugging, as an additional option on the config window (for those who want to mess with the code).
What am i working on for the future releases? (Under Development)
. Feature Request: Block user from copying a folder recursively into itself, creating a deadlock. (noob proof? maybe i will block the shell command ":(){ :|: & };:" too? nah..)
. Resizable modal windows, for better usage below 1920x1080. (not mobile, that´s another thing)
. Remember the shell emulator current folder, if closed and open again. (maybe add tabs to all modal windows, to allow more than one terminal)
. A new window, called Translations. Where you can create/edit your translation, and submit it to me easily.
. Revision on the native compression backend. It seems to do TGZ (tar gzip) and TBZ (tar bzip) when asked for GZIP or BZIP (just compression).
. Add custom presets on the portscan window, and add option to ignore ping to scan ports directly. (ping sometimes is blocked)
. Complete php open_basedir bypass on phpFileManager, for tree view and file edition, using local system functions, if php system exec functions allow it.
. A new window, called PHP Security Check. It will check for php open_basedir bypass, and explain how to solve the issue (using php_admin_value[disable_functions] or php Suhosin module). It will also allow to scan the server for files that should never be readable/writable thru php (ex: /etc/*, /var/*, /home/*) and check if any of the local services available, has access thru php with the default service user/pass (ex: mysql, pgsql, ldap, smtp,..).
. A new feature, allowing to provide a list of other phpFileManager URLs and passwords, so you can browse/copy/move files and folders to different webservers, directly on the interface.

And more...

. Allow to create/edit/delete symlinks and hardlinks properly using the interface.
. Options for chown() and chgrp() on permissions window. (only the superuser may change the group of a file arbitrarily; other users may change the group of a file to any group of which that user is a member)
. Select highlight mode on the Ace edit window. And also add option to edit using some wysiwyg editor, like Ckeditor, FCKEditor or TinyMCE. (the smaller the better)
. Allow bookmarking paths using right click menu on the folder tree, and show them a combobox, on top of the folder tree.
. SSH connection option on terminal (host/user/pass), to run commands as another user on the local server, or even other hosts.
. PHP secure delete, allow to shred files using DoD 5220.22-M.
. Store all config vars on $GLOBALS and remove the "globals" declarations from all functions. (will reduce the script lines, not size.. but that´s good!)
. Use $_REQUEST, $_COOKIE, $_POST, $_GET instead os registering all them as global vars. (it´s an old script.. sorry, i´ve postponed this well enough)

Donation!!
If you like this script, please consider making a donation.
Any amount is well received, and will help me continue giving support and adding new features.
Is it secure?
Short answer. YES! phpFileManager is secure, but you must set a password on it.

The script can be renamed and deployed on an unique known url, that helps you keep it hidden.
But you have to set a password! Obviously!
If you do not, this script will allow any person to access it, that is the default setting.

And that is why i provide this script, with the following disclaimer.
Support
BUGS:
If you found any issue on the script, create a ticket here!

FEATURE REQUESTS:
If you have a great idea, create a ticket here!

DISCUSSION:
If you want to just talk about phpFileManager, check out the open discussion forum here!

HELP:
If you want help from the community, check out the help forum here!

CONTACT:
Anything else, you can always send me an e-mail on dulldusk@gmail.com or Telegram me at dulldusk for chat.
Disclaimer
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING, THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.


Download PHP File Manager