Sunday, March 12, 2017

Linux | NextCloud | Ubuntu 14.04

Linux | NextCloud (Media Temple VPS or Dedicated Server)

Overview
This article explains how to install Nextcloud on your Media Temple VPS or dedicated server with Ubuntu 14.04. Nextcloud is an open source cloud solution that wants to be the secure home for all of your media. Often touted as the successor to the extremely popular ownCloud, Nextcloud includes many great features that anyone may find useful.


• File storage & sharing
• Mobile & dektop clients
• Calendar and contacts management
• Secure audio and video calls
• Collabora Online Office (LibreOffice)

Requirements:
• A VPS with Ubuntu 14.04 installed
• Root SSH Access
• Familiarity with basic shell commands

Instructions:
These installation instructions assume that you have a fresh Ubuntu 14.04 install on your Media Temple VPS or dedicated server. To change your Media Temple VPS operating system through the Account Center, see these instructions. If you already have a standard LAMP stack or a web server and database software installed, you can skip to step 3. For more in-depth instructions for installing and configuring a LAMP stack, check out this community article. Begin by connecting to your server via SSH as either root or a user with sudo access. Connect via SSH - Community article with instructions.

Step 1: First make sure that all your system packages are up-to-date by running these following apt-get commands in the terminal.

     apt-get update
     apt-get upgrade

Step 2: Install Apache and the required PHP modules

     apt-get install apache2 libapache2-mod-php5
     apt-get install php5-gd php5-json php5-mysql php5-curl
     apt-get install php5-intl php5-mcrypt php5-imagick

Step 3: Install MariaDB

Nextcloud requires a database to work properly. These instructions are for MariaDB, which is a powerful database utility. There's no reason to change to MariaDB if you already have a different database utility installed.
 

      apt-get install mariadb-server 

Configuring MariaDB for Nextcloud.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. You should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB.
 

mysql_secure_installation

Configure it like this:
- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y
 

Next we will need to log in to the MariaDB console and create a database for the Nextcloud. Run the following command:

mysql -u root -p


This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server you need to create a database for Nextcloud installation:

===========================================================================================================
MariaDB [(none)]> CREATE DATABASE nextcloud;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'strong_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q
 
===========================================================================================================
Disable MariaDB binary logging by commenting the following lines:

     vim /etc/mysql/my.cnf

Add the following three lines in [mysqld] section:

log-bin        = /var/log/mysql/mariadb-bin
log-bin-index  = /var/log/mysql/mariadb-bin.index
binlog_format  = mixed

Step 4: Download and unzip Nextcloud's files

Use 'wget' to download Nextcloud's installation files directly to your server. You may also download them to your computer and upload via S/FTP.

      wget https://download.nextcloud.com/server/releases/nextcloud-9.0.53.zip


 Unzip the installation files.

     unzip nextcloud-9.0.53.zip


Copy Nextcloud's files into your doc root

      cp -r nextcloud /var/www/html/

Step 5: Create a Nextcloud configuration file

Use your preferred shell editor to create and modify a Nextcloud configuration file.

      vim /etc/apache2/sites-available/nextcloud.conf

Add the following lines:

=========================================================================================================== <VirtualHost *:80>
ServerAdmin admin@yourdomain.com
DocumentRoot "/var/www/html/nextcloud/"
ServerName your-domain.com
ServerAlias www.your-domain.com
<Directory "/var/www/html/nextcloud/">
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/your-domain.com-error_log
CustomLog /var/log/apache2/your-domain.com-access_log common
</VirtualHost>

===========================================================================================================
Step 6: Create a symlink for nextcloud.conf
 

      ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

Step 7: Make sure that the Nextcloud installation files are web accessible

      chown -R www-data:www-data /var/www/html/nextcloud/

Step 8:
Remember to restart all services related to Apache server.

       service apache2 restart
 
Step 9: Use your browser to complete the installation

 

Navigate to http://[your-domain.com/] or http://192.168.0.5/owncloud (192.168.0.5 this my server IP address) and follow the easy instructions.

1. Create a new admin user. It is recommended that you use an original password for the admin user.
2. Leave the Data folder as the default directory. (/var/www/html/nextcloud/data)
3. Your database user should be root and use the password you created during MariaDB's installation.
4. Use the default localhost setting.


The next page is the login page. The first time you log into OwnCloud, use the administrator user name and password.


Congratulation’s! You have successfully installed NextCloud.

How to extended upload & download file speed
 After installing the OwnCloud you might be facing file upload & download related problem. Now I am describing how fix the problem. 
Let's stat and you should follow below steps:
Step 1:To create a file with this command, first change into the directory that contains your website files. For example, the default directory for webpage files for Apache on Ubuntu 14.04 is /var/www/html/:
    cd /var/www/html

Then, create the info.php file:

    vim /var/www/html/info.php

Paste the following lines into this file and save it: info.php

<?php
phpinfo();
?>
Step 02: Modifying the PHP Configuration.

The php.ini file can be edited to change the settings and configuration of how PHP functions. This section gives a few common examples.

Sometimes a PHP application might need to allow for larger upload files such as uploading  hemes and plugins on a WordPress site. To allow larger uploads for your PHP application, edit the php.ini file with the following command (Change the path and file to match your Loaded Configuration File. This example shows the path for Apache on Ubuntu 14.04.):

   vim /etc/php5/apache2/php.ini

The default lines that control the file size upload are:

post_max_size = 8M
upload_max_filesize = 2M
Change these default values to your desired maximum file upload size. For example, if you needed to upload a 16000M file you would changes these lines to:

post_max_size = 16000M
upload_max_filesize = 16000M 
output_buffering = 0
max_input_time 7200
max_execution_time, which defines how many seconds a PHP process can run for:
max_execution_time 7200 

Other common resource settings include the amount of memory PHP can use as set by memory_limit:
memory_limit = 1024M
When you have the php.ini file configured for your needs, save the changes, and exit the text editor. 



Restart the web server to enable the changes. For Apache on Ubuntu 14.04, this command will restart the web server:
      
      service apache2 restart
Refreshing the info.php page should now show your updated settings. Remember to remove the info.php when you are done changing your PHP configuration. 

END