- Web server: any web server which can run PHP. The most popular one is Apache.
- PHP: at least version 4.2.3. net2ftp works under Safe Mode. One advanced feature requires PHP 5 (send raw FTP command).
- Disk space: 7.5 MB for net2ftp (less if you remove the plugins), and a few MB for the temporary files.
1 - Unzip all the files on your computer, and upload them to your server.
2 - The /temp directory should be chmodded to 777 (you can use net2ftp.com to do this).
3 - Set your settings in the settings.inc.php file.
Read "Next steps" below for more details.
4 - A database is only required if you want to log the actions of the users. To create the tables, execute the SQL queries below (also in the "create_tables.sql" file). This can be done easily in PhpMyAdmin, the popular front-end to MySQL.
- Important settings in settings.inc.php:
- Enter an Admin panel password. If no password is entered, the Admin panel is not accessible.
- Turn logging on or off (requires a MySQL database).
- Choose if you want to set a daily consumption limit (requires a MySQL database).
Since version 0.81, it is possible to restrict each user's daily data transfer volume and script execution time.
By default the data transfer volume is set to 50 MB per day and the script execution time to 1000 seconds per day - but this may be changed.
Both figures are logged per IP address, and per FTP server.
Once the daily consumption limit is reached, you will still be able to browse FTP servers, but the transfer of data to/from the server will be blocked.
If you need unrestricted access to net2ftp, contact your net2ftp Administrator or install net2ftp on your own web server.
- Set authorizations in settings_authorizations.inc.php:
- Allow the users to connect to any FTP server, or only to a restricted list of FTP servers
- Ban certain FTP servers
- Ban certain IP addresses; users connecting from these addresses will not be able to use the website
- Allow the users to connect to any FTP server port, or only to one port
- Set the default login directory -- this is not restrictive, users can get out of it
- Set the default root directory per user -- this is restrictive, users cannot get out of it when they are using net2ftp. However, this is not a secure method of restricting the access; it is much safer to set this on the FTP server itself
- To allow large file uploads and transfers, you may have to change these settings:
- in the file php.ini (directory C:\windows or /etc): upload_max_filesize, post_max_size, max_execution_time, memory_limit
- in the file php.conf (directory /etc/httpd/conf.d): LimitRequestBody
- Protect the /temp and the /admin directories. If you use the Apache web server, use .htaccess and .htpasswd files to do this -- sample files are provided (username admin, password net2ftp).
- .htaccess file: set the path to the .htpasswd file
- .htpasswd file: enter a list of usernames and encrypted passwords (the admin panel can be used to generate encrypted passwords)
- In your php.ini file, register_globals can be set to "off" (this is more secure), but the application will off course also work if it is set to "on".
- The files are transmitted using the BINARY mode by default. There is a list of file extensions (txt, php, ...) which are transmitted in ASCII mode. Edit this list if needed, it is located in /includes/filesystem.inc.php. Look for function ftpAsciiBinary.
The overall architecture of net2ftp has been completely reviewed in version 0.90, to allow easy integration of net2ftp in other web-based PHP applications.
The index.php file is a school example of how to integrate net2ftp:
- Set the constants NET2FTP_APPLICATION_ROOTDIR and NET2FTP_APPLICATION_ROOTDIR_URL
- Include the net2ftp file main.inc.php
- Check if an error occured to print out an error message.
It is possible to direct users to a particular net2ftp page (browse a particular directory, upload page, ...).
Log in, go to the page you want to link to, and click on the Bookmark button: .
The next page will show you the link to use; this link does not contain any login information (username or password).
When the users click on the link, they will be prompted for their login information by a popup window.
Ready-made net2ftp modules for Mambo, Drupal and Xoops are provided with net2ftp version 0.90!
Detailed installation instructions are given in the readme.txt file in the respective directories.
In all cases you'll first need to install the standalone version of net2ftp, and then install the Mambo, Drupal or Xoops module.
Read the instructions carefully, as each step is important.
net2ftp has been integrated in the following control panels:
If you can log in but you cannot see any directory or file in the Browse Screen, then it is probably caused by a filesystem permission problem on your web server.
- There is a bug in the PHP FTP function ftp_get() which causes end-of-line characters to be wrongly translated.
As a result, \r\n becomes \r on Windows when using the ASCII mode.
There is a workaround: on the net2ftp login screen, the BINARY mode is chosen by default.
Refer to http://bugs.php.net/bug.php?id=27633 for more details.
UPDATE 2004-12-13: A patch has been posted for this bug on the PHP internals mailing list.
UPDATE 2005-04-08: This bug is fixed in PHP version 4.3.11 and 5.0.4.
Quote from the PHP bug report database:
ftp_rawlist requires write permissions to the system's tempoarary directory.
IIS's default installation does not include this in the permissions for IUSR.
The bug is in system configuration, not PHP.
This was discussed in the following PHP bug reports:
In the FTP server's configuration, set it for UNIX style directory listings rather than MSDOS style listings.