Wednesday, May 3, 2017

Linux | NextCloud | Ubuntu 16.04

Linux | NextCloud (Media Temple VPS or Dedicated Server)


Overview:
In this tutorial we will show you how to install and configuration of Nextcloud on your Ubuntu 16.04 server. For those of you who didn’t know, Nextcloud is open source self-hosted file sync and share application (Calendar, Contacts, Documents, Email, and more). The developers at Nextcloud are doing their best to give the users a more secure platform, fewer bugs and overall a better product.

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation Nextcloud on a Ubuntu 16.04 LTS (Xenial Xerus) server.

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

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

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: Download and unzip Nextcloud's files:

First thing to do is to go to Nextcloud’s download page and download the latest stable version of Nextcloud, At the moment of writing this article it is version 9.0.53:

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
      apt-get install unzip

Unpack the Nextcloud archive to the document root directory on your server:

      unzip nextcloud-9.0.53.zip

      mv nextcloud /var/www/html

We will need to change some folders permissions:

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


Step 3: Install LAMP (Linux, Apache, MySQL (MariaDB), PHP) server.

A Ubuntu 16.04 LAMP server is required. If you do not have LAMP installed. Also install all required PHP modules.

Installing Apache on Ubuntu 16.04:

I will be installing Apache with apt-get, which is the default package manager for ubuntu. Your also required to install libapache2-mod-php module to work PHP with Apache2:

      apt-get install apache2 libapache2-mod-php
     
After installing apache services on your system, start all required services:

      systemctl enable apache2

      systemctl start apache2
      systemctl status apache2

You can verify that Apache is really running by opening your favorite web browser and entering the URL http://[your-domain.com/] or http://192.168.10.6/ (192.168.10.6 this my server IP address), if it is installed, then you will see this:
Configuring Apache web server for Nextcloud:Create a new virtual host directive in Apache. For example, create a new Apache configuration file named ‘nextcloud.conf’ on your virtual server:

      a2enmod rewrite

      touch /etc/apache2/sites-available/nextcloud.conf
      ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf
      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>
===========================================================================================================
Now, we can restart Apache web server so that the changes take place:

      systemctl restart apache2.service 

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

- 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

Installing PHP 7 on Ubuntu 16.04

PHP 7.0 is now the default PHP package shipping in Ubuntu LTS 16.04 (Xenial Xerus), Now install PHP 7 with the following command:

      apt-get install php7.0 php7.0-mysql php7.0-curl php7.0-gd php7.0-json php7.0-opcache php7.0-xml mcrypt php7.0-mcrypt


      apt-get install imagemagick php7.0-mbstring php7.0-mysql libapache2-mod-php7.0  php7.0-bz2 php7.0-zip


If you like to search all the available PHP 7 modules you can use to command:

      apt-cache search php7-*


Your server should restart Apache automatically after the installation of both MySQL and PHP. If it doesn’t, execute this command:

      systemctl restart apache2

      systemctl restart mysql

To test PHP, create a test file named info.php with he content below. Save the file, then browse to it to see if PHP is working:

      vim /var/www/html/info.php


<?php
phpinfo();
?>

Try to access it at http://[your-domain.com/] or http://192.168.10.6/info.php (192.168.10.6 this my server IP address) . If the PHP info page is rendered in your browser then everything looks good and you are ready to proceed further.

Step 4: Accessing Nextcloud.
To configure NextCloud, we will use the web interface.  So, go ahead and open up a web browser and point it to http://[your-domain.com/] or http://192.168.10.6/nextcloud (192.168.10.6 this my server IP address) You should see a web page like this. Enter username and password for the administrator user account, click on the ‘Advanced options’ hyperlink and enter the data directory (or leave the default setting), then enter database username, database password, database name, host (localhost) and click ‘Finish setup’. 

You can install the Android app for NexCloud


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


The home page will look like below; you can start uploading the contents using “+ sign” button.


Congratulation’s! You have successfully installed & configured NextCloud.

How to extended upload & download file speed 

After installing the NextCloud 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 /etc/php/7.0/apache2/php.ini

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/php/7.0/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

Linux | OwnCloud | Ubuntu 16.04

Linux | OwnCloud (Media Temple VPS or Dedicated Server)


Overview:
In this tutorial I will show you how to install and configuration OwnCloud on Ubuntu 16.04. For those of you who didn’t know, OwnCloud is a free and open-source software which enables you to create a private “file-hosting” cloud. OwnCloud is similar to DropBox service with the diference of being free to download and install on your private server. Owncloud made by PHP and backend database MySQL (MariaDB), SQLLite or PostgreSQL. OwnCloud also enables you to easily view and sync address book, calendar events, tasks and bookmarks. You can access it via the good looking and easy to use web interface or install OwnCloud client on your Desktop or Laptop machine (supports Linux, Windows and Mac OSX).

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation OwnCloud on a Ubuntu 16.04 (Xenial Xerus) server.


• File storage & sharing
• Mobile & desktop clients

Requirements:
• A VPS with Ubuntu 16.04 installed
• Root SSH Access
• Familiarity with basic shell commands
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 LAMP (Linux, Apache, MySQL (MariaDB), PHP) server.

A Ubuntu 16.04 LAMP server is required. If you do not have LAMP installed. Also install all required PHP modules.


Installing Apache on Ubuntu 16.04:

I will be installing Apache with apt-get, which is the default package manager for ubuntu. Your also required to install libapache2-mod-php module to work PHP with Apache2:

      apt-get install apache2 libapache2-mod-php

After installing apache services on your system, start all required services:

      systemctl enable apache2
      systemctl start apache2
      systemctl status apache2

You can verify that Apache is really running by opening your favorite web browser and entering the URL http://[your-domain.com/] or http://192.168.10.6/ (192.168.10.6 this my server IP address), if it is installed, then you will see this:

 Installing MySQL on Ubuntu 16.04:

Now that we have our web server up and running, it is time to install MySQL. MySQL is a database management system. Basically, it will organize and provide access to databases where our site can store information:


Now that we have our web server up and running, it is time to install MySQL. MySQL is a database management system. Basically, it will organize and provide access to databases where our site can store information:

      apt-get install mysql-server php7.0-mysql

Once complete, you can verify MySQL is installed by running the below command:

      systemctl status mysql
      systemctl start mysql

By default, MySQL is not hardened. You can secure MySQL 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 MySQL:

mysql_secure_installation

- 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
 
To log into MySQL, use the following command (note that it’s the same command you would use to log into a MySQL database):

mysql -u root -p

This will prompt you for a password, so enter your MySQL root password and hit Enter. Once you are logged in to your database server you need to create a database for OwnCloud installation:
===========================================================================================================
mysql> CREATE DATABASE ownclouddb;
mysql> CREATE USER 'ownclouduser'@'localhost' IDENTIFIED BY 'YOURPASSWORD';
mysql> GRANT ALL ON ownclouddb.* TO 'ownclouduser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit
===========================================================================================================

Installing PHP 7 on Ubuntu 16.04

PHP 7.0 is now the default PHP package shipping in Ubuntu LTS 16.04 (Xenial Xerus), Now install PHP 7 with the following command:


      apt-get install php7.0 php7.0-mysql php7.0-curl php7.0-gd php7.0-json php7.0-opcache php7.0-xml mcrypt php7.0-mcrypt

      apt-get install imagemagick php7.0-mbstring php7.0-mysql libapache2-mod-php7.0  php7.0-bz2 php7.0-zip 

If you like to search all the available PHP 7 modules you can use to command:

      apt-cache search php7-*

Your server should restart Apache automatically after the installation of both MySQL and PHP. If it doesn’t, execute this command:

      systemctl restart apache2
      systemctl restart mysql

To test PHP, create a test file named info.php with he content below. Save the file, then browse to it to see if PHP is working:

      vim /var/www/html/info.php

<?php
phpinfo();
?>

Try to access it at http://[your-domain.com/] or http://192.168.10.6/info.php (192.168.10.6 this my server IP address) . If the PHP info page is rendered in your browser then everything looks good and you are ready to proceed further.

Step 3: Installing OwnCloud 9.1.5.

OwnCloud provides you the official deb packages for the installation of ownCloud. Setup ownCloud repository using the following command:
 

wget -nv https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key -O Release.key
apt-key add - < Release.key
sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /' > /etc/apt/sources.list.d/owncloud.list"

Install ownCloud using the following command:

      apt-get update
      apt-get install owncloud

Step 5: OwnCloud Configuration.

To configure ownCloud, we will use the web interface.  So, go ahead and open up a web browser and point it to http://[your-domain.com/] or http://192.168.10.6/owncloud (192.168.10.6 this my server IP address) You should see a web page like this. Enter username and password for the administrator user account, click on the ‘Advanced options’ hyperlink and enter the data directory (or leave the default setting), then enter database username, database password, database name, host (localhost) and click ‘Finish setup’.


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


The home page will look like below; you can start uploading the contents using “+ sign” button.


Congratulation’s! You have successfully installed OwnCloud.
END