Yetishare - File Hosting Script

Create your own professional file sharing service


Thank you for purchasing Yetishare File Hosting Script. This welcome pack contains various tutorials and information that will aid you in using Yetishare. If you have any additional questions then feel free to create a ticket via our support system or via the email above.

Yetishare is a professional file hosting script that can be used to create an online file sharing service, or be used for personal file storage. 

File Hosting Script - File Manager

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.

Yetishare File Hosting Script - Support Center

Yetishare is written in PHP7.2 and uses a MySQL5 database. Yetishare is a "Web Application" that must be installed on a Web Server.

You must install Yetishare on a web host that supports PHP7.2, MySQL5 and Apache or Nginx.

You may also install Yetishare 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.

Installation Wizard

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. 

  1. Download the zip file.
  2. Extract the contents into a folder on your computer.
  3. Using a FTP client (such as FileZilla), upload the extracted contents to your web host. Note: You can install Yetishare as the main site, in a sub-folder on your existing web hosting or setup a new subdomain.
  4. While it's uploading you can create the database. Login via your web host control panel (such as cPanel) and create an empty database.
  5. Setup a new MySQL user and ensure you assign it to your new database with all privileges. Note your new MySQL username, database and password for later.
  6. Once the FTP upload has completed, via your web browser go to: 

Yetishare - File Hosting Script - Install

  1. Follow the steps shown in the install wizard. Enter your MySQL details when prompted and the database will be automatically installed.
  2. Setup the cron tasks, links provided within the installer, or here - https://support.mfscripts.com/public/kb_view/26/ every 5 minutes (more info below in the CRON section).
  3. Done - Enjoy!

If you have any issues with the installation, please see the troubleshooting section of this document.

File & Folder Permissions

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 Yetishare 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.

Linux Crons

  1. Type crontab -e in your linux command line.
  2. Type in the following:
0 0 * * * php /path/to/your/install/app/tasks/auto_prune.cron.php >> /dev/null 2>&1
0 0 * * * php /path/to/your/install/app/tasks/create_internal_notifications.cron.php >> /dev/null 2>&1
0 * * * * php /path/to/your/install/app/tasks/delete_redundant_files.cron.php >> /dev/null 2>&1
0 0 * * * php /path/to/your/install/app/tasks/downgrade_accounts.cron.php >> /dev/null 2>&1
*/5 * * * * php /path/to/your/install/app/tasks/process_file_queue.cron.php >> /dev/null 2>&1
0 1 * * * php /path/to/your/install/app/tasks/create_email_notifications.cron.php >> /dev/null 2>&1
  1. Save
  2. crontab -l should now list the cron process

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.

  1. Download the latest version of the Yetishare zip file
  2. Backup your MySQL database, any /files/ and the _config.inc.php file.
  3. Backup any custom code or changes you have made (these may be overwritten).
  4. Unzip the newly downloaded zip file onto your local computer.
  5. Remove the local _config.inc.php file & the install/ folder.
  6. Upload the new files to your existing installation of Yetishare replacing all existing files.
  7. Within your hosting control panel, load phpMyAdmin and select your new database. In the right-hand section click on 'import'. Attach the the relevant sql patches from the directory `/install/resources/upgrade_sql_statements/` and submit the form. Choose the patches between your current script version number and the latest, ensuring you do them in version number order. If there are none, you can ignore this step.
  8. Done - Enjoy the upgrade!

The website settings can be found via the admin area. To access:

  1. Login via the /admin url using your site admin credentials.
  2. On the top menu hover over 'Configuration', then click on 'Site Settings'.
  3. You'll see a screen similar to the following:

Yetishare - File Hosting Script - Settings

  1. All the settings are categoried on the left-hand side. By clicking on any of these it will filter the view on the main part of the page.
  2. To edit, click 'edit' on any of the values.
  3. Any changes are immediately reflected on the site.

Yetishare supports any number of languages. All the text content is routed through the translations module and can be translated.

Yetishare - File Hosting Script - Translations

Add New Language

  1. Login to the admin area.
  2. Via the Configuration menu, click Translations.
  3. Click the 'Add Language' button.
  4. Set the language name, Text Direction (only LTR) supported for now and the flag.
  5. Once added click on 'manage translations' and you'll see each text entry that you can edit.
  6. You can also export & import translations on the same screen if you'd prefer to edit them offline.
  7. To set as the main site language click the 'Default' checkbox on the 'Manage Languages' screen.

Note: You may need to logout and back in to see the new language take affect.

Translate Text Content

  1. Load the 'languages' page within the admin area.

Yetishare - File Hosting Script - Translations

  1. Click 'manage translations' and search for the text you'd like to translation.
  2. Once you've found it, click 'edit'.
  3. Click 'update' once you're done. The translation will be immediately available on your site.

The script structure can be seen below with notes next to each folder detailing it's purpose.

Yetishare - File Hosting Script

You can create your own themes within Yetishare so future updates to the theme part of the script don't overwrite any custom changes.

Yetishare File Hosting Script - Theme Settings

Your server configuration can have a significant impact on the performance of Yetishare. 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!

Apache

- 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.

PHP

- 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.

PHP-FPM (if using Nginx)

- Amend /etc/php72/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/

PHP Fast CGI

- 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.

MySQL

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 (Ignore this if using MySQL v8):

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.

Other

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
 

How to reset the admin password if you've forgotten it

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';
 

Emails are not being sent when a user registers on the site or when the contact form is submitted

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)

Yetishare - File Hosting Script - SMTP Settings

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:

  • Via FTP edit /admin/_test_scripts/test_email.php and replace the email address (you@youremail.com) with your own.
  • Re-upload the file to your website.
  • Login to your /admin/ area.
  • Then in the browser load this url maually - http://yoursite.com/admin/_test_scripts/test_email...
  • An email will be attempted to the email address you entered. Any errors will be shown on screen. A common error is that the sending email address can not be used via that SMTP server so you may need to change the sending email address or ask your web host to allow it.

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.

 

License

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 Yetishare allows you to install a SINGLE (one) copy of Yetishare on ONE domain. You may not resell, distribute or rent Yetishare. You can find our full terms and conditions here.

Credits

MFScripts Ltd

3rd Party Code

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've spent the past 8 years building Yetishare into what it is today, however there's still lots more we can do. If you have any comments on how we can improve the script further feel free to post on our RFCs via the MFScripts forum.

Thanks again for your continued support!

Adam Wilson & Simon Nooranvary - MFScripts.com

https://yetishare.com/