Thank you for purchasing Reservo Image Hosting Script. The following content contains various tutorials and information that will help you in the setup and use Reservo. If you have any additional questions then feel free to open a support ticket via our ticketing system.
Reservo is a professional image hosting script that allows its users to create their own image sharing service.
We have our own support portal that includes a support ticket system, knowledge base and forums, please register via our forum for full access.
Note: You will need to be have a valid license & within your support period to access the ticketing system. You have lifetime access to the support forum and knowledge base included within your purchase.
Reservo is written in PHP5.6 and uses a MySQL5 database. Reservo is a "Web Application" that must be installed on a Web Server.
You must install Reservo on a web host that supports PHP5.6, MySQL5 and Apache or Nginx.
You may also install Reservo on your personal computer by using one of the many options (i.e google WAMPserver or XAMPP), this is not covered in this document.
The full system requirements can be found below.
We have a video tutorial showing all of the steps below. To view it please go to the installation tutorial page.
We've built an installation wizard into the script to make it really easily to get started.
If you have any issues with the installation, please see the troubleshooting section of this document.
During the YetiShare install 1 file and 4 folders will need write permissions. Ensure the following have CHMOD 755 (or 777 depending on what your web host allows)
The cron tasks enable Reservo to send emails, tidy data (and other tasks) in the background. Please ensure these are setup as they are required by the script.
There are a number of ways to set these up. The best method is to use a Linux Cron style setup on the server itself. This will be the most reliable method. Although you can use one of the many free web cron services, these often only work once every 10-15 minutes, meaning that crons will take longer between runs.
0 0 * * * php /path/to/your/install/admin/tasks/auto_prune.cron.php >> /dev/null 2>&1
0 0 * * * php /path/to/your/install/admin/tasks/create_internal_notifications.cron.php >> /dev/null 2>&1
0 * * * * php /path/to/your/install/admin/tasks/delete_redundant_files.cron.php >> /dev/null 2>&1
0 0 * * * php /path/to/your/install/admin/tasks/downgrade_accounts.cron.php >> /dev/null 2>&1
*/5 * * * * php /path/to/your/install/admin/tasks/process_file_queue.cron.php >> /dev/null 2>&1
0 1 * * * php /path/to/your/install/admin/tasks/create_email_notifications.cron.php >> /dev/null 2>&1
If you do not have access to the command line you might have access to the web hosting control panel that should allow this. Otherwise talk with your webhost.
Upgrading is fairly straight forward. You can view the upgrade tutorial here, or use the following guide to upgrade your existing install to a new release.
The website settings can be found via the admin area. To access:
Reservo supports any number of languages. All the text content is routed through the translations module and can be translated.
Note: You may need to logout and back in to see the new language take affect.
The script structure can be seen below with notes next to each folder detailing it's purpose.
You can create your own themes within Reservo so future updates to the theme part of the script don't overwrite any custom changes.
1) Create a new directory named your theme in /themes/. Lowercase alphanumeric and underscores only. i.e.
/themes/yourtheme/
2) Copy the contents of /themes/reservo/ into /themes/yourtheme/
3) In /themes/yourtheme/_theme_config.inc.php replace the parameters:
$themeConfig['theme_name'] = 'Reservo Theme'; // the name of the theme
$themeConfig['folder_name'] = 'reservo'; // the folder name you just created
$themeConfig['theme_description'] = 'Reservo Main Theme'; // theme description shown in the admin area
$themeConfig['author_name'] = 'Reservo'; // your name
4) Rename /themes/yourtheme/themeReservo.class.php to /themes/yourtheme/themeNewtheme.class.php, ensuring you make the first letter of the theme name uppercase and the rest lowercase.
5) Open /themes/yourtheme/themeNewtheme.class.php and change line 3 from:
class themeReservo extends Theme
to
class themeNewtheme extends Theme
6) You should now be able to enable the theme via your script admin area. The admin area thumbnail can be found in:
/themes/yourtheme/thumb_preview.png
Your server configuration can have a significant impact on the performance of Reservo. Below are some of the server settings we'd recommend using. It assumes you have at least a VPS server with root access and understand what you're doing!
- Enable XSendFile to take load away from PHP - https://support.mfscripts.com/public/kb_view/1/
- Enable X-Accel-Redirect to take load away from PHP - https://support.mfscripts.com/public/kb_view/2/
- Amend /etc/nginx/nginx.conf
http { #... fastcgi_read_timeout 300; #... }
Restart Nginx after any changes.
- Amend the following values in your global php.ini file:
memory_limit = 512M upload_max_filesize = 500M post_max_size = 500M max_execution_time = 180 max_input_time = 180
Restart your webserver to apply the changes.
- Amend /etc/php5/fpm/pool.d/www.conf
request_terminate_timeout = 300
pm.max_children = 50
Source for max_children - http://myshell.co.uk/blog/2012/07/adjusting-child-processes-for-php-fpm-nginx/
- If you're using FastCGI with PHP/Apache ensure you allow for any timeouts on large downloads, by default they will close connections after 5 minutes so you may get partially completed downloads. In your Apache config file add the following:
<IfModule mod_fcgid.c> FcgidBusyTimeout 43200 </IfModule>
If you're using WHM/cPanel you can add this to /usr/local/apache/conf/includes/post_virtualhost_global.conf
Save and restart Apache.
1) Enable query cache.
Edit my.cnf file (sometimes in /etc/mysql/my.cnf)
nano /etc/mysql/my.cnf
Add or uncomment the following lines:
query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576
Restart MySQL. (this command will be different depending on your OS)
service mysql restart
2) Increase max connections in MySQL. In your my.cnf file, add or amend the following:
max_connections = 600
Save and restart MySQL. You may need to adjust this value depending on your traffic levels and server resources available.
Problem
After installing the script none of the html links are working and neither are the generated file download urls.
Fix (Apache)
This is generally one of the following issues:
RewriteBase /
Replace with:
RewriteBase /yoursubfolder/
<Directory /var/www/> AllowOverride All </Directory>
Fix (Nginx)
This is generally one of the following issues:
root /usr/share/nginx/html;
sudo service nginx restart
Problem
You've forgotten the admin password to your installation
Fix
1) Try the forgot password form on yoursite.com/forgot_password.html
2) If you can't remember the email address or it's invalid, you can reset it directly via the database.
- Login via your MySQL client such as phpMyAdmin.
- Execute the following sql on your database, replace ADMIN_USER with your admin username (usually 'admin') and NEW_PASSWORD with your new password.
UPDATE users SET password = MD5('NEW_PASSWORD') WHERE username='ADMIN_USER';
For example:
UPDATE users SET password = MD5('myp455w0rd') WHERE username='admin';
Problem
When a user registers on the site they see the confirmation screen however they never receive an email with their password in it.
Fix
This is due to a number of reasons, try each of the following in order:
1) Test a registration yourself and ensure the email isn't being sent to a spam folder. If it is being spammed or if AOL/Hotmail accounts are not receiving emails, ensure you have SPF records setup for your domain. Your host or system admin can enable this.
2) There are 2 methods the script uses to send email, PHP and SMTP. The default is PHP. Sometimes web hosts block PHP from sending to stop spam scripts from running so although PHP attempts to send the email, it doesn't actually go anywhere. If this is the case switch to SMTP sending via the admin area, site settings. (below)
Set the options as shown above but replace with your own SMTP email settings. Your web host will be able to confirm these.
3) If the above doesn't work you can test SMTP sending for any errors. To test:
Note: Sometimes not all debug messages are captured and outputted in the test_email.php script above. You can increase the debug level by temporarily editing the code. In coreFunctions.class.php find $mail->SMTPDebug = 1; and replace with $mail->SMTPDebug = 2; Save, reupload and test again for more detailed information.
- Huge performance improvements, over 220% increase in script load times and database load. See our blog for the full info - https://mfscripts.com/blog.html - Built in bulk link checker. - Improvements to filename retrieval on remote url download. - Increased the maximum auto deletes on the nightly file removals. - Improvement to social media previews when sharing links. - Various minor fixes and improvements. Plugins: - Rewards --- Added option to cancel withdrawal request in the admin area. NOTE: There is 3 minor database changes in this release. See \install\resources\upgrade_sql_statements\v1.3 - v1.4.sql
- Improved upload speed. Thumbnail previews no longer have to be generated before the next image is uploaded. - Improved management of logo on software updates. - Fixed password validation on reset password form. - Fix to Twitter share link on image view. - Various minor fixes and improvements. NOTE: There is 1 minor database change in this release. See \install\resources\upgrade_sql_statements\v1.2 - v1.3.sql
- Added upload button to buttons on homepage screen. - Added plugin calls for PPV rewards plugin. (now available via reservo.co) - Performance improvements to translations. - Various minor fixes and improvements. NOTE: There are no database changes for this release.
- Added animated gif/mng support. (with ImageMagick) - Added social login plugin to release code. - Various fixes and improvements.
Script initially released for purchase & download on Reservo.co. Features: Powerful Image Uploader: - Multi-image uploader with preview thumbail, progress upload, size remaining, upload speed and time remaining. - Drag & Drop into the browser to begin uploading (for supported browsers). - Copy all image links to the clipboard button. Copy direct links, HTML code and BBCode. - Image uploads are stored securely and assigned a short url. Optionally make this a longer hash via the admin area. - Using GD (standard within PHP) support: --- PNG, JPG/JPEG, GIF & WBMP. - Using ImageMagick (PHP module) support thumbnails in over 200 image types: --- 3FR, AAI, AI, ART, ARW, AVI, AVS, BGR, BGRA, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DFONT, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FITS, FRACTAL, FTS, G3, GIF, GIF87, GRADIENT, GRAY, GROUP4, GV, HALD, HDR, HISTOGRAM, HRZ, HTM, HTML, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, JNG, JNX, JPE, JPEG, JPG, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAP, MASK, MAT, MATTE, MEF, MIFF, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV. - Preview logic as standard. On upload, a 1100x1100px cached jpg version of each image is stored. Thumbnails are generated quicker from this rather than using the original image. - Image watermarking options including support for transparent pngs and water positioning. - Automatic rotate images on upload option. (for jpg, png, gif & wbmp) - Support for multiple image server storage. Store images on a FTP server or external dedicated server. Use based on least used space, random or a specific server. - Support for image downloads by remote url. User Registration: - User registration & members area. - Users can create an account and manage all their image uploads in one place. - Fast ajax based image manager built entirely in-house. Unqiue Image Manager: - Full screen, responsive file manager. Full support on mobile, tablet & desktop devices. - Fast ajax based image manager built entirely in-house. No need to reload the entire site to browse albums or images. - Search widget in the header for quick searching. Both on the main website and the image manager. - Browse other public images, albums and by image category. - Set albums within albums, theres no limit on the sub-album depth. Even share a top level album with users to provide access to photos organised into sub-albums. - Viewing image page: --- Large image preview, resized depending on device. --- Zoom option on image preview to view full screen. --- Display of any accociated EXIF image data onscreen, like when it was taken, location, camera etc. --- Options to download the original image or different sizes. --- Sharing code for forums or your own website/email. --- Email the image or share via social networks. --- Comment on the image. The comments functionality is entirely built in, manage, approve, edit comments via the admin area. --- Color palette which displays the most comment colors within the image. --- Like button so your visitors can like the image. --- A link to view detailed image view statistics. - Pre-caching within the image manager so the image manager is lightning fast. - Support for keyboard navigation when viewing images. - View a slideshow of any album. If its a public album, share it with other users/customers. - Option to rotate images within the file manager. (for jpg, png, gif & wbmp) Privacy: - 3 album privacy options: --- Public - Listed on the site. --- Limited Public - Available if someone knows the album/image path. --- Private - Only available via the owners account. - In addition to the above, you can configure the entire site to be private or an entire user account. - Albums can have passwords set. Users can not access the album & images unless the correct password is entered. - The original images & image thumbnails are stored with a long unique file path so they cant be guessed. Direct browser access denied to the image storage. Image Statistics: - Images statistics: --- Daily, weekly, monthly views. --- Referring sites. --- Visiting countries. --- Visiting browsers. --- Visiting operating systems. Optional Account Types: - Non User: (not logged in) --- Inactive images are only kept for 60 days. (configurable) --- Maximum upload filesize of 1MB. (configurable) --- Sees advertising. (configurable) - Free User: --- Inactive images are only kept for 90 days. (configurable) --- Maximum upload filesize of 10MB. (configurable) --- Storage limit of 1TB. (configurable) --- Sees advertising. (configurable) - Paid User: --- Inactive images are kept while they have a premium account. (configurable) --- No maximum upload size. (configurable) --- Storage limit of 10TB. (configurable) --- No advertising on the site. (configurable) - Admin User: --- As with the paid user but has access to the admin area. Security & Performance: - All passwords stored using SHA256 and PBKDF2 key extender. Industry recommended non-reversible method for password storage. - IP blacklisting - block IP addresses from using the site. - Image type blacklisting - ban certain types of images from being uploaded. - Spam protection - Set minimum time between submissions. - Spam protection - Set maximum images a user can upload per day. - Report images pages (DMCA). - Full support for https. - Externally tested for XSS and SQL injection attacks. - All image thumbnails cached on your website so theyre loaded fast. - Support for CDNs such as CloudFlare to improve load speed. Social Network Sharing: - Social networking icons to share uploaded files on Twitter, Facebook, Email & more. - Support for user logins using Facebook, Twitter, LinkedIn & more. Translations: - Multiple language support. - Manage any text content on the site via the admin area. - Translation admin tools so the site can be used in most languages. - Translation debugging tools. Earn Money: - Charge for account upgrades. Fully integrated with PayPals automated IPN functionality. - Easy Ads - Use the admin interface to easily integrate your banner ads or Google Adsense code. Customisations: - Written for PHP5.6+. - 100% full source code. - Easy installation. - Fully customisable. - Modern template. (easily customise and create additional ones) - Simple, clean, ajax style look and feel. Admin Area: - Dashboard detailing image downloads and active images. - Search images and view thumbnails directly in the admin area. - Disable images. - Manage users and filter by user images. - Manage blocked IPs. - Manage site settings. - Manage image categories. - Set and manage image servers. - Configure to use specific image server, random or the one with most space. - Set site theme. - Set paid account packages, rates and period. - Amend an account expiry date. - Set PayPal email address for site payments. - Set free/paid user account settings: --- Whether a user can upload. --- Available storage space. --- Max image upload filesize. --- Whether to show adverts. --- Whether to show the link to the upgrade page. --- After how long to remove inactive files. --- The permitted concurrent uploads. --- Max download size permitted. --- Max remote concurrent remote urls. - Option to set the filename on the image download url. - Option to use a different image url than the main site. - Set banner ad/advert code. - Modern Ajax interface. Full screenshots and demo at https://reservo.co
This program was developed by MFScripts Ltd and is copyrighted.
THIS SOFTWARE AND THE ACCOMPANYING FILES ARE PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND WHETHER EXPRESSED OR IMPLIED.
In no event shall the author or MFScripts Ltd be held liable for any damages whatsoever, including without limitation, damages for loss of business profits, business interruption, loss of business information, or any other loss arising from the use or inability to use the software.
Your purchase of Reservo allows you to install a SINGLE (one) copy of Reservo on ONE domain. You may not resell, distribute or rent Reservo. You can find our full terms and conditions here.
A number of MIT, LGPL and other copyrighted libraries and resources have been used in this program. These copyrights remain the property of their owners.
Some of these libraries include:
If we have missed anything please let us know!
We have spent 8 months developing Reservo and an additional 4 years developing the framework for it. Despite this we are always looking to enhance the script even more. If you have any suggestions then feel free to create a thread in the RFC section of our forum.
Thanks again for your continued support!
Adam Wilson & Simon Nooranvary - MFScripts.com