How to install Windows 7 on a PCI Express (NVMe) SSD

If you try to install Windows 7 on an SSD disk which is connected via the PCI Express bus (NVMe), you might face the issue that the drive is not presented in the Setup program. Due to this behavior, it is not possible to install the Windows 7 operating system on such hardware. Here is

Install large apps to another drive with Windows Store in Windows 10

Yet another interesting feature is spotted in the upcoming Windows 10 Anniversary Update. The user will be able to pick a different drive to install large apps and save space on the system drive. The following screenshot demonstrates this useful feature in action: Image credit: Neowin. The option is available for large apps and games.

How to Install Linux On Android Phone Without Rooting

How to Install Linux On Android Phone Without Rooting How to Install Linux On Android Phone Without Rooting Time to install the linux on your android device without rooting it. Kali Linux is widely used OS for penetration testing and best for creating dummy environment to test the various hacking attacks. And this cool OS

Make A Bootable Windows 10 USB Install Stick On Linux With WinUSB Fork

WinUSB is a tool that can be used to create a bootable USB Windows installer from an ISO or a DVD, either using a GUI or from the command line.
The application looks pretty much abandoned, with the latest release dating back to 2013 however, GitHub user slacka forked it, fixed most of its bugs, and updated it to support both wxWidgets 2 and 3.

A few months ago I tried using the original WinUSB to create a bootable Windows 10 pendrive, but it failed. I'm not sure if that's because of the changes in Windows 10, in Ubuntu (which I used to create the USB) or both, but using slacka's WinUSB fork worked, although I did encounter a small issue (see below).
I tested slacka's WinUSB fork to create a bootable Windows 10 USB on Ubuntu 16.04, and while using the GUI, I got an error (already reported) near the end of the process. However, I was still able to use the resulted bootable USB to install Windows 10:

The error doesn't occur when creating a Windows USB stick using WinUSB from the command line.
I should add that I only tested the WinUSB fork with Windows 10 on Ubuntu 16.04, but it should work with Windows 7 and Windows 8 / 8.1 (and older Ubuntu versions) as well. Also, I performed the Windows 10 installation in VirtualBox, and not on real hardware.
If you want to test the bootable Windows USB you've created using WinUSB, before installing it on real hardware, you can use VirtualBox. To be able to boot from USB in VirtualBox, see THIS AskUbuntu answer (make sure your username is added to the “vboxusers” and “disk” groups, or it won't work – you'll find the commands to do this in the AskUbuntu link above, under “EDIT”).
Install WinUSB fork in Ubuntu or Linux Mint
I uploaded slacka's WinUSB fork to the main WebUpd8 PPA, to make it easier to install in Ubuntu (16.04, 15.10, 15.04 and 14.04 or Linux Mint (17.x or 18) and derivatives. To add the PPA and install WinUSB, use the following commands:sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install winusbIf you don't want to add the PPA, you can grab the deb from HERE.
Arch Linux users can install slacka's WinUSB fork via AUR.
For other Linux distributions, download it from GitHub.
The original WinUSB is also available in a PPA (provides packages up to Ubuntu 14.10 only!).
Create a bootable Windows 10 USB install stick using WinUSB
A. Create a bootable Windows USB install stick using the WinUSB GUI
Simply launch WinUSB from the menu / Dash, select the Windows 10 (again, it probably also works with Windows 7 and 8 / 8.1) ISO or DVD,, then select the USB drive under “Target device” and click “Install”.
Remember that you may encounter THIS issue while using the GUI (however, in my test, the bootable Windows 10 USB worked despite of that).
B. Create a bootable Windows USB install stick from the command line using WinUSB
If you want to create a bootable Windows USB from the command line, you must first determine what the USB physical drive is. You can easily find this out from the WinUSB GUI (you'll find it under “Target device” – in my case it's “/dev/sdc”). You can also find the device using GNOME Disks, or from the command line, using “lsblk” and so on.
Important: make sure you use the correct USB device because it will be formatted!
Once you know the device and the path to the ISO, to create a bootable Windows USB stick from the command line, use:sudo winusb –format Here's an example:
sudo winusb –format /home/andrei/Downloads/win10.iso /dev/sdc
Originally published at WebUpd8: Daily Ubuntu / Linux news and application reviews.

Install MATE 1.14 In Ubuntu MATE 16.04 (Xenial Xerus) Via PPA

MATE Desktop 1.14 is now available for Ubuntu MATE 16.04 (Xenial Xerus). According to the release announcement, it took about 2 months to release MATE Desktop 1.14 in a PPA because everything has been well tested, so you shouldn't encounter any issues.

The PPA currently provides MATE 1.14.1 (Ubuntu MATE 16.04 ships with MATE 1.12.x by default), which includes changes such as:
client-side decoration apps now render correctly in all themes;touchpad configuration now supports edge and two-finger scrolling independently;python extensions in Caja can now be managed separately;all three window focus modes are selectable;MATE Panel now has the ability to change icon sizes for menubar and menu items;volume and Brightness OSD can now be enabled/disabled;many other improvements and bug fixes.
MATE 1.14 also includes improved support for GTK+3 across the entire desktop, as well as various other GTK+3 tweaks however, the PPA packages are built with GTK+2 “to ensure compatibility with Ubuntu MATE 16.04 and all the 3rd party MATE applets, plugins and extensions”, mentions the Ubuntu MATE blog.
A complete MATE 1.14 changelog can be found HERE.
Upgrade to MATE Desktop 1.14.x in Ubuntu MATE 16.04
To upgrade to the latest MATE Desktop 1.14.x in Ubuntu MATE 16.04 using the official Xenial MATE PPA, open a terminal and use the following commands:sudo apt-add-repository ppa:ubuntu-mate-dev/xenial-mate
sudo apt update
sudo apt dist-upgrade
Note: mate-netspeed applet will be removed when upgrading. That's because the applet is now part of the mate-applets package, so it's still available.
Once the upgrade finishes, restart your system. That's it!
How to revert the changes
If you're not satisfied with MATE 1.14, you encountered some bugs, etc., and you want to go back to the MATE version available in the official repositories, you can purge the PPA and downgrade the packages.
To do this, use the following commands:
sudo apt install ppa-purge
sudo ppa-purge ppa:ubuntu-mate-dev/xenial-mate
After all the MATE packages are downgraded, restart the system.
via Ubuntu MATE blog
Originally published at WebUpd8: Daily Ubuntu / Linux news and application reviews.

Facebook will delete your Photos if you don’t install Moments app

RECOMMENDED: Click here to fix Windows errors and optimize system performance
While it’s been merely a week since the social networking giant Facebook forced its users to install its Messenger app on the mobile web platform, numerous reports are now indicating Facebook’s unacceptable approach to get users forcibly into using its Moments app unless they don’t want to lose some of their photos.

Facebook wants you to install the Moments app
Here’s what Facebook says:

Photos you privately synced from your phone to Facebook will be deleted soon. Earlier this year, they were moved to Moments, a new app from Facebook. The Moments app lets you organize and privately share photos from your phone, and download or delete photos you’ve synced to Facebook. Moments is available for download in the App Store and the Google Play Store.

Facebook appears to have gone one step ahead by sending an email to some of its users saying the company will not hesitate to delete some of their photos if they don’t use Moments app.

The users who have reportedly received warning emails from Facebook have also been given a deadline of July 07, 2016 to either start using Moments or download their Synced albums. Once the date elapses, the company will simply delete the album containing their Synced Photos, the warning email reads further.

If you want to keep these photos, download and log into Moments before July 7, or else download these photos directly to your computer from your Facebook profile before July 7.

As unfortunate as it may sound, the email undoubtedly resulted in a panic situation as protecting or rather preventing the pictures from being deleted became the top priority for users. However, it should be noted that users stand a risk of losing the synced photos only and not the ones that are already uploaded.

RECOMMENDED: Click here to update all device drivers on your Windows PC

How to install and configure OpenVPN on OpenSUSE Leap 42.1

How to install and configure OpenVPN on OpenSUSE Leap 42.1

VPN or Virtual Private Network is a secure private network over a public network like the internet. A VPN is a secure tunnel trough the internet which protects your data traffic and increases internet privacy and security. Access to the VPN is restricted by secure authentication methods.

OpenVPN is an open source software to build virtual private networks, it uses the OpenSSL library to encrypt the tunneled data and supports UDP or TCP transports. OpenVPN can use pre-shared keys, certificate based and username/password based authentication mechanisms.

In this tutorial, I will show you how to implement a virtual private network using OpenVPNvpn under the Linux operating system OpenSUSE Leap 42.1.

Prerequisites

OpenSUSE Leap 42.1 – 64bit
Root privileges
TUN/TAP enabled

Step 1 – Checking if TUN/TAP is enabled
If you want to create a VPN on your server, make sure TUN/TAP is installed and enabled. You can check that with the command below:

cat /dev/net/tun

The result should be:

cat: /dev/net/tun: File descriptor in bad state

Step 2 – Install OpenVPN
OpenVPN is available in the OpenSUSE repository. You can install it using the zypper command:

zypper in openvpn

Step 3 – Easy-RSA Setup
Next, download easy-rsa to generate a certificate file. The easy-rsa is a utility to manage certificates, you can create the root certificate authority with it and request and sign certificates.

Go to the OpenVPN directory and download easy-rsa with the wget command:

cd /etc/openvpn/
wget https://github.com/OpenVPN/easy-rsa/archive/release/2.x.zip

Extract the archive and move the easy-rsa directory:

unzip 2.x.zip
mv easy-rsa-release-2.x/easy-rsa/ /etc/openvpn/
rm -rf easy-rsa-release-2.x/

Configure the Key

Go to the easy-rsa directory and edit the vars file to configure the key and certificate:

cd easy-rsa/2.0/
vim vars

Line 53 – If you are really paranoid, you can increase the key size.

export KEY_SIZE=2048

Line 56 and 59 – In how many days the key and certificate will expire.

export CA_EXPIRE=3650
export KEY_EXPIRE=3650

Line 64 – 72 – Change the default value of the key and certificate information.

export KEY_COUNTRY=”US”
export KEY_PROVINCE=”California”
export KEY_CITY=”SanFrancisco”
export KEY_ORG=”Fort-Funston”
export KEY_EMAIL=”[email protected]”
export KEY_OU=”MyOrganizationalUnit”
export KEY_NAME=”EasyRSA”

Save the file and exit.

Initialize the PKI

Next, initialize the PKI (Public Key Infrastructure):

source ./vars && ./clean-all && ./build-ca

We will leave the default value, just press “Enter”.

Generate Diffie Hellman Parameters

Run the command below:

./build-dh

You will see the output:

Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
…………………………….

Generate the Server Private Key

Generate the private key with the name “server”:

./build-key-server server

Press enter and type “y” to confirm to generate the key.

Generate Key and Certificate for the Client

Generate the client key and certificate with name “client1”:

./build-key client1

Press enter and type “y” to confirm the key generation.

The key and certificate have been generated in the directory “keys”. Now make a copy of the “keys” directory and put it in the “openvpn” directory.

cp -r keys/ /etc/openvpn/

Step 4 – Configure OpenVPN
In this step, we will configure OpenVPN to run on UDP protocol, using port 2034 for the client connection. Create the new configuration file server.conf in the OpenVPN directory.

cd /etc/openvpn/
vim server.conf

Paste the configuration below:

#change with your port
port 2034
#You can use udp or tcp
proto udp
# “dev tun” will create a routed IP tunnel.
dev tun
#Certificate Configuration
#ca certificate
ca /etc/openvpn/keys/ca.crt
#Server Certificate
cert /etc/openvpn/keys/server.crt
#Server Key and keep this is secret
key /etc/openvpn/keys/server.key
#See the size a dh key in /etc/openvpn/keys/
dh /etc/openvpn/keys/dh2048.pem
#Internal IP will get when already connect
server 10.10.2.0 255.255.255.0
#this line will redirect all traffic through our OpenVPN
push “redirect-gateway def1”
#Provide DNS servers to the client, you can use goolge DNS
push “dhcp-option DNS 8.8.8.8”
push “dhcp-option DNS 8.8.4.4”
#Enable multiple client to connect with same key
duplicate-cn
keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon
#openvpn status log
status /var/log/openvpn/openvpn-status.log
#enable log
log-append /var/log/openvpn/openvpn.log
#Log Level
verb 3
Save the file and exit the editor.

Next, create a new directory and file for the openvpn log:

mkdir -p /var/log/openvpn/
touch /var/log/openvpn/{openvpn,openvpn-status}.log

Step 5 – Configure SuSEfirewall2
SuSEfirewall2 is a script for generating iptables rules based on the file “/etc/sysconfig/SuSEfirewall2″. We will install SuSEfirewall2 and then configure the port to access OpenVPN, then we will enable NAT with an iptables script for OpenVPN.

Install SuSEfirewall2 with the zypper command:

zypper in SuSEfirewall2

Now, go to the sysconfig directory, and edit the SuSEfirewall2 configuration file:

cd /etc/sysconfig/
vim SuSEfirewall2

Line 134 – Enable route.

FW_ROUTE=”yes”

Line 253 – Enable TCP port 22 for SSH access from outside the network.

FW_SERVICES_EXT_UDP=”22″

Line 267 – Enable udp port for openvpn client access – port 2034.

FW_SERVICES_EXT_UDP=”2034″

Line 877 – Enable custom rules SuSEfirewall2.

FW_CUSTOMRULES=”/etc/sysconfig/scripts/SuSEfirewall2-custom”

Save and exit.

Next, edit the SuSEfirewall2 custom rules in the scripts directory.

cd /etc/sysconfig/scripts/
vim SuSEfirewall2-custom

Inside of the “fw_custom_after_chain_creation” directive, paste the new iptables rules for OpenVPN:

iptables -A FORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.10.2.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.10.2.0/24 -o eth0 -j MASQUERADE

Save and exit.

Note:

IP 10.10.2.0/24 is the network from the server.conf OpenVPN configuration file.

Now we can enable forwarding by adding this new configuration line to the sysctl.conf file.

vim /etc/sysctl.conf

Paste configuration below:

net.ipv4.ip_forward = 1

Save and exit.

Note:

If you have the line already in the file, change the value from “0” to “1” instead of adding a new line.

Now run the command below to apply the configuration change.

sysctl -p

Start SuSEfirewall2 and OpenVPN server:

systemctl start SuSEfirewall2
systemctl start [email protected]

If you have an error, you can see the detailed error message in the OpenVPN log.

Add all services to the system startup:

systemctl enable SuSEfirewall2
systemctl enable [email protected]

Step 5 – Configure the Client
Download the client key and certificate from the keys directory to your local computer. You can use the scp command or sftp, I'm here using scp:

Command that has to be run on the local computer.

scp [email protected]:~/etc/openvpn/keys/ca.crt ~/myvpn/
scp [email protected]:~/etc/openvpn/keys/client1.crt ~/myvpn/
scp [email protected]:~/etc/openvpn/keys/client1.key ~/myvpn/

In the myvpn directory, create a new configuration file for the client “client1.ovpn”.

cd ~/myvpn/
vim client1.ovpn

Paste the configuration below:

client
dev tun
proto udp
#Server IP and Port
remote SERVERIP 2034
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo

Save and exit.

To connect to our VPN, you can install a VPN client or if you are using Linux, you can use the “Network-Manager”. If you want to test the VPN with a terminal, you can use the command below:

cd ~/myvpn/
sudo openvpn –config client1.ovpn

Reference
https://en.opensuse.org/SDB:OpenVPN_Installation_and_Setup

https://www.howtoforge.com/tutorial/how-to-install-openvpn-on-centos-7/

view as pdf | print

Share this page:
Tweet Follow

How to Install ownCloud 9 with Nginx on OpenSUSE Leap 42.1

How to Install ownCloud 9 with Nginx on OpenSUSE Leap 42.1

ownCloud is an OpenSource file sharing application based on the PHP programming language. OwnCloud provides Self-hosted file syncing and sharing with a nice web interface and syncing apps for all major mobile and desktop platforms with a functionally like dropbox, mega, etc. ownCloud makes it easy to access and sync files, calendars, and contacts across your devices.

In this tutorial, I will guide you to create your own sync and share server platform with ownCloud. We will install ownCloud with Nginx as the web server, MariaDB (a MySQL fork) as the database and php-fpm to handle the request for php on Linux OpenSUSE Leap 42.1.

Prerequisite

OpenSUSE Leap 42.1
Root privileges
Understanding zypper command

Step 1 – Install SuSEfirewall2
SuSEfirewall is a firewall script which stores its configuration in the file “/etc/sysconfig/SuSEfirewall2”. With SuSEfirewall2, you can open ports by editing the “SuSEfirewall2” file.

Install SuSEfirewall2 with the zypper command:

zypper in SuSEfirewall2

When the firewall is installed, go to the sysconfig directory and edit the “SuSEfirewall2″ configuration with vim:

cd /etc/sysconfig/
vim SuSEfirewall2

Go to line 253 and add the ports of all services that you want to use. In this step, I will add the: ssh, http, and https ports.

FW_SERVICES_EXT_TCP=”22 80 443”

Save the file and exit the editor.

Next, start SuSEfirewall2 and enable it to run at boot time:

systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2

Now restart the sshd service:

systemctl restart sshd

If you want to test the SSH server port, you can use telnet command to connect to port 22:

telnet 192.168.1.101 22

Step 2 – Install Nginx
Nginx is a lightweight web server with low memory and CPU consumption. We will use nginx as the web server for our ownCloud installation.

Install nginx with the zypper command:

zypper in nginx

Start nginx and enable it to run at boot with the systemctl command:

systemctl start nginx
systemctl enable nginx

Next, add an index.html file to test if nginx is working.

echo “This is Nginx Page OpenSUSE Leap” > /srv/www/htdocs/index.html

Now you can access nginx web server from your web browser, or you can check it with curl:

curl -I 192.168.1.101
curl 192.168.1.101

Step 3 – Install and Configure MariaDB
MariaDB is an OpenSource RDBMS based fork of the MySQL database. In this step, we will install and configure MariaDB. Then we will create a new user and database for the ownCloud installation.

Install MariaDB with the zypper command below:

zypper in mariadb mariadb-client

Now start MariaDB and add it to the system startup:

systemctl start mysql
systemctl enable mysql

MariaDB has been started, now you can configure the root password for MariaDB with the command below:

mysql_secure_installation

Set the MariaDB/MySQL password:

Enter current password for root (enter for none): PRESS ENTER
Set root password? [Y/n] Y
New password: TYPE YOUR PASSWORD
Re-enter new password: REPEAT PASSWORD
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Reload privilege tables now? [Y/n] Y

The MariaDB root password has been configured. Now we can login to the MariaDB/MySQL shell and create a new database and new user for ownCloud.

Login to the MariaDB/MySQL shell:

mysql -u root -p
TYPE your password

Create a new database “owncloud_db” and new user “ownclouduser” with password “ownclouduser@”:

create database owncloud_db;
create user [email protected] identified by 'ownclouduser@';
grant all privileges on owncloud_db.* to [email protected] identified by 'ownclouduser@';
flush privileges;
exit

The database for ownCloud installation has been created.

Step 4 – Install and Configure PHP-FPM
PHP-FPM (FastCGI Process Manager) is a modern FastCGI alternative to handle sites with a lot of visitors. PHP-FPM has an advanced process management and is easy to manage and configure.

In this step, we will install php-fpm and some PHP extensions, then we will configure the nginx web server to handle php file requests trough php-fpm.

Install php-fpm with this “zypper in” command:

zypper in php5-fpm php5-gd php5-mcrypt php5-mysql php5-pear php5-zip php5-curl php5-ldap php5-json

When the installation is completed, go to the php-fpm directory and copy the default configuration file:

cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf

Edit the php-fpm.conf file with the vim or nano editor:

vim php-fpm.conf

Uncomment line 32 to enable the php-fpm log. If there is error later in your PHP scripts, then you can find the log file in the “/var/log/” directory.

error_log = log/php-fpm.log

Change line 148 – 149 to “nginx” for the unix user/group of the processes.

user = nginx
group = nginx

Change the value in line 159 to run php-fpm with a socket file.

listen = /var/run/php-fpm.sock

Uncomment and change the value on lines 170 – 172 to set the permissions of the unix socket.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Save the file and exit the editor.

Next, edit the php.ini file in the cli directory:

cd /etc/php5/cli/
vim php.ini

Uncomment and change the value on line 758:

cgi.fix_pathinfo=0

Save and exit.

Copy the php.ini file to conf.d directory:

cp php.ini /etc/php5/conf.d/

Now configure the php session handleer path. In this tutorial, we run php-fpm as nginx user, so make sure the nginx user can write to the sessions directory. You can see session path configuration in the php.ini file on line 1390.

session.save_path = “/var/lib/php5”

Change the owner of the session directory “/var/lib/php5/”, make the nginx user the owner of the directory:

chown -R nginx:nginx /var/lib/php5/

Next, configure php-fpm to work with the nginx web server. Go to the nginx configuration directory and backup the nginx.conf file before you edit the configuration.

cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vim nginx.conf

Add the following new configuration on line 65 – this configuration will handle all PHP file requests.

location ~ .php$ {
root /srv/www/htdocs;
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Save and exit, and then test the nginx configuration to make sure there is no error in the configuration:

nginx -t

If there is no error, you can see the results below:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Now start php-fpm and add it to stat at boot time, then restart the nginx service:

systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx

Nginx and php-fpm are configured, you can test the php file by creating a new phpinfo() file in the web root directory:

cd /srv/www/htdocs/
echo “” > info.php

Open your browser and visit the server IP:

http://192.168.1.101/info.php

or you can use curl:

curl -I 192.168.1.101/info.php

Step 5 – Generate SSL Certificate
Running ownCloud over a secure https connection is very important to keep your files secure and private. If you are running ownCloud on your own company, you can buy the SSL certificate, or if you want a free SSL certificate you can use Let's-encrypt. Here I will create a so called “self-signed” SSL certificate, the encryption of a self-signed certificate is not lower than an official certificate but you will have to accept a security warning in your browser when you access the service the first time.

Create a new “ssl” directory and generate the certificate with the openssl command:

cd /etc/nginx/
mkdir ssl; cd ssl/
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/example-owncloud.crt -keyout /etc/nginx/ssl/example-owncloud.key

Next, change the permissions of the key:

chmod 600 example-owncloud.key

Step 6 – Install and Configure ownCloud
In this step, we will install ownCloud and configure a new nginx virtual host for the ownCloud domain. We will install owncloud with the domain name “example-owncloud.co”, and the web root file in the “/srv/www/owncloud/” directory.

Download ownCloud

Go to the “/srv/www/” directory and download the ownCloud source and extract it:

cd /srv/www/
wget https://download.owncloud.org/community/owncloud-9.0.2.zip
unzip owncloud-9.0.2.zip

Now create a new data directory under the owncloud directory to store all user data. Change the owner of the ownCloud directory to the nginx user:

mkdir -p owncloud/data/
chown -R nginx:nginx owncloud/

Configure a Nginx Virtual Host for ownCloud

Go to the nginx directory and create a new directory for the virtual host file configuration:

cd /etc/nginx/
mkdir vhosts.d/

Go to the vhosts.d directory and create a new virtual host file for owncloud “example-owncloud.conf”.

cd vhosts.d/
vim example-owncloud.conf

paste the configuration below:

upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php-fpm.sock;
}
server {
listen 80;
server_name example-owncloud.co;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example-owncloud.co;
ssl_certificate /etc/nginx/ssl/example-owncloud.crt;
ssl_certificate_key /etc/nginx/ssl/example-owncloud.key;
# Path to the root of your installation
root /srv/www/owncloud/;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:.htaccess|data|config|db_structure.xml|README){
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^/]+/)$ $1/index.html;
try_files $uri $uri/ =404;
}
location ~ .php(?:$|/) {
fastcgi_split_path_info ^(.+.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ .php(?:$|/) { block
location ~* .(?:css|js)$ {
add_header Cache-Control “public, max-age=7200”;
# Add headers to serve security related headers
add_header Strict-Transport-Security “max-age=15768000; includeSubDomains; preload;”;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options “SAMEORIGIN”;
add_header X-XSS-Protection “1; mode=block”;
add_header X-Robots-Tag none;
# Optional: Don't log access to assets
access_log off;
}
# Optional: Don't log access to other assets
location ~* .(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
}

Save the file and exit the editor.

Test the nginx configuration and don't forget to restart all services:

nginx -t
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql

Testing

Visit the owncloud domain:

example-owncloud.co

You will be redirected to the https connection.

Next, type in your admin user and password, the database name, user, and password and click “Finish Setup”.

Wait a sec and you will see the owncloud file manager:

The installation of ownCloud with nginx and MariaDB on OpenSUSE Leap 42.1 is finished.

References

https://doc.owncloud.org/
https://www.howtoforge.com/tutorial/install-nginx-php-and-mysql-lemp-stack-on-opensuse-leap-42.1/
https://www.howtoforge.com/tutorial/how-to-install-owncloud-8-with-nginx-and-mariadb-on-centos-7/

view as pdf | print

Share this page:
Tweet Follow

Install Horde 5 Webmail for ISPConfig on Debian Jessie through PEAR

Install Horde 5 Webmail for ISPConfig on Debian Jessie through PEAR

Horde is a groupware suite that offers email, calendar, task, contact management and more things. It also offers SyncML and ActiveSync to synchronize with your cell phones or other software. You can find out more about Horde on their web page: http://www.horde.org/

This Howto assumes that you followed the ISPConfig 3 installation for Debian Jessie (Apache2, Bind, Dovecot) and all the packages there.

1. Install necessary packages
apt-get install php5-sasl php5-intl libssh2-php php5-curl php-http php5-xmlrpc php5-geoip php5-ldap php5-memcache php5-memcached php5-tidy

2. Remove conflicting packages
The php5-xcache package is not working with Horde. Instead of php5-xcache one of the other cache tools can be used like memcache.

apt-get remove php5-xcache

3. Register the Horde Pear channel
pear channel-discover pear.horde.org

4. Set the Horde installation directory
pear install horde/horde_role
pear run-scripts horde/horde_role

You'll be asked the following question:

Filesystem installation for base Horde application: /var/www/horde

You can also chose another folder for the web-accessible horde files. However, you'll need to adjust the path in the following steps then.

5. Install Horde Groupware Webmail Edition
pear install -a -B horde/webmail

This takes a while and there will be some errors regarding missing pear packages. Those will be fixed later.

6. Create MySQL Database
The Horde installation script will not create a MySQL database on its own. So we have to create it first and also the according user.

Enter the MySQL shell as

mysql -u root -p

Once entered, create the database and user 'horde' with password 'PASSWORD'. If you want to alter the database name, username, change according information. Set your own password of course.

CREATE DATABASE horde;
GRANT ALL ON horde.* TO [email protected] IDENTIFIED BY 'PASSWORD';
FLUSH PRIVILEGES;

Exit the MySQL Shell again

exit;

7. Run installation script
webmail-install

You'll be asked the following questions:

What database backend should we use? mysql

Username to connect to the database as: The username you set in the previous step

Password to connect with: The password you set in the previous step

How should we connect to the database? unix

Location of UNIX socket: Just press [enter]

Database name to use: The database name you set in the previous step

Internally used charset: utf-8

Use SSL to connect to the server: 0 *

Certification Authority to use for SSL connection: Just press [enter]

Split reads to a different server? false

Specify an existing mail user who you want to give administrator permissions (optional): [email protected] **

* Only set SSL to 1 if you can provide for each domain an SSL cert.

** Select an existing email user. That user then has configuration rights from within Horde itself. This is needed to create initial configuration files.

8. Create custom phptmp folder and chown horde folder to Apache user
mkdir /var/www/horde/phptmp/
chown -R www-data:www-data /var/www/horde

9. Add additional PEAR components
pear install channel://pear.php.net/Console_GetoptPlus-1.0.0RC1
pear install horde/Horde_ManageSieve
pear install channel://pear.php.net/XML_Serializer-0.20.2
pear install channel://pear.php.net/Date_Holidays-0.21.8
pear install channel://pear.php.net/Text_LanguageDetect-0.3.0
pear install pear/HTTP_Request2
pear install channel://pear.php.net/Console_Color2-0.1.2
pear install channel://pear.php.net/Numbers_Words-0.18.1
pear install channel://pear.php.net/Image_Text-0.7.0
pear install pear/Console_Getargs

10.Add local PEAR holiday calendars (optional)
There are several holiday calendars already in PEAR available. By default, they are not installed. Select one or more of the following calendars if you want to install them. This enables in Horde Kronolith (=calendar) to show holidays for that country. Of course, you could also add your own custom calendar to the PEAR installation.

pear install channel://pear.php.net/Date_Holidays_Australia-0.2.2
pear install channel://pear.php.net/Date_Holidays_Austria-0.1.6
pear install channel://pear.php.net/Date_Holidays_Brazil-0.1.2
pear install channel://pear.php.net/Date_Holidays_Croatia-0.1.1
pear install channel://pear.php.net/Date_Holidays_Czech-0.1.0
pear install channel://pear.php.net/Date_Holidays_Denmark-0.1.3
pear install channel://pear.php.net/Date_Holidays_Discordian-0.1.1
pear install channel://pear.php.net/Date_Holidays_EnglandWales-0.1.5
pear install channel://pear.php.net/Date_Holidays_Finland-0.1.2
pear install channel://pear.php.net/Date_Holidays_Germany-0.1.2
pear install channel://pear.php.net/Date_Holidays_Iceland-0.1.2
pear install channel://pear.php.net/Date_Holidays_Ireland-0.1.3
pear install channel://pear.php.net/Date_Holidays_Italy-0.1.1
pear install channel://pear.php.net/Date_Holidays_Japan-0.1.3
pear install channel://pear.php.net/Date_Holidays_Netherlands-0.1.4
pear install channel://pear.php.net/Date_Holidays_Norway-0.1.2
pear install channel://pear.php.net/Date_Holidays_PHPdotNet-0.1.2
pear install channel://pear.php.net/Date_Holidays_Portugal-0.1.1
pear install channel://pear.php.net/Date_Holidays_Romania-0.1.2
pear install channel://pear.php.net/Date_Holidays_SanMarino-0.1.1
pear install channel://pear.php.net/Date_Holidays_Serbia-0.1.0
pear install channel://pear.php.net/Date_Holidays_Slovenia-0.1.2
pear install channel://pear.php.net/Date_Holidays_Spain-0.1.4
pear install channel://pear.php.net/Date_Holidays_Sweden-0.1.3
pear install channel://pear.php.net/Date_Holidays_Turkey-0.1.1
pear install channel://pear.php.net/Date_Holidays_Ukraine-0.1.2
pear install channel://pear.php.net/Date_Holidays_UNO-0.1.3
pear install channel://pear.php.net/Date_Holidays_USA-0.1.1
pear install channel://pear.php.net/Date_Holidays_Venezuela-0.1.1

11. Create /etc/apache2/conf-available/horde.conf with the following content
Alias /Microsoft-Server-ActiveSync /var/www/horde/rpc.php

Alias /horde /var/www/horde

Options +FollowSymLinks

AllowOverride All

Require all granted

AddType application/x-httpd-php .php

php_value include_path “.:/usr/share/php”

php_value open_basedir “none”

php_value upload_tmp_dir “/var/www/horde/phptmp/”


Then enable this new apache config snippet:

a2enconf horde

12. Restart apache
/etc/init.d/apache2 restart

13. Edit /var/www/horde/config/conf.php and set
$conf['testdisable'] = false;

14. Open the horde test page on any domain
http://www.domain.com/horde/test.php

Most of the settings should be ok now. However, you might want to alter some of the default php garbage collection stuff.

Re-edit the /var/www/horde/conf/conf.php and disable the test page

$conf['testdisable'] = true;

15. Fix the BaseRewrite option
The default setup won't properly recognize the BaseRewrite option and makes Nag fail to add/edit entries. To fix this you need to edit the /var/www/horde/.htaccess file and search for

RewriteEngine On

RewriteRule .* – [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ rampage.php [QSA,L]


and replace the whole block with this

RewriteEngine On

RewriteBase /horde

RewriteRule .* – [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ rampage.php [QSA,L]


Notice: When you update Horde this file might get overwritten. In that case, just edit it again.

16. Allowing users to change their password from Horde (optional)
Horde can enable to let people change their ISPConig password from within Horde. For this, Horde provides a Passwd addon that needs to be configured to work with ISPConfig

Install the addon and chown it to Apache user:

pear install -a -B horde/passwd
chown -R www-data:www-data /var/www/horde/passwd

Horde also provides a simple way to alter configuration files with local values. This is done by copying an existing config file (e.g. conf.php) to conf.local.php. This can be useful if you want to alter the default preference settings of some Horde applications e.g. use by default a 24h clock. So you can provide a homogenous starting configuration for new users. The same also goes for the Passwd addon. By using a local config file we make sure, a future update of horde won't override our settings.

cp -a /var/www/horde/passwd/config/backends.php /var/www/horde/passwd/config/backends.local.php

The above command is one line.

Now edit the /var/www/horde/passwd/config/backends.local.php file and search for

$backends['sql'] = array (

'disabled' => false,

'name' => 'SQL Server',

[…]

// 'query_lookup' => 'SELECT user_pass FROM horde_users WHERE user_uid = %u',

// 'query_modify' => 'UPDATE horde_users SET user_pass = %e WHERE user_uid = %u',

),

);
and replace the whole block with this

$backends['sql'] = array (

'disabled' => false,

'name' => 'SQL Server',

'preferred' => '',

'policy' => array(

'minLength' => 7,

'maxLength' => 64,

'maxSpace' => 0,

'minNumeric' => 1,

),

'driver' => 'Sql',

'params' => array(

'phptype' => 'mysql',

'hostspec' => 'localhost',

'username' => 'root',

'password' => '***',

'encryption' => 'crypt-md5',

'database' => 'ISPCONFIG_DATABASE',

'table' => 'mail_user',

'user_col' => 'email',

'pass_col' => 'password',

'show_encryption' => false

// The following two settings allow you to specify custom queries for

// lookup and modify functions if special functions need to be

// performed. In places where a username or a password needs to be

// used, refer to this placeholder reference:

// %d -> gets substituted with the domain

// %u -> gets substituted with the user

// %U -> gets substituted with the user without a domain part

// %p -> gets substituted with the plaintext password

// %e -> gets substituted with the encrypted password

//

// 'query_lookup' => 'SELECT user_pass FROM horde_users WHERE user_uid = %u',

// 'query_modify' => 'UPDATE horde_users SET user_pass = %e WHERE user_uid = %u',

),

);
Of course, replace the password with the root MySQL password and change the database name to your ISPConfig database name. Once this is changed, you can use the Passwd tool to change the password from within Horde.

The policy section lets you set various options for what the password must look like. In this setup, it has to be at least 7 characters and it must contain at least 1 number and no white spaces. Check the beginning of this file to find out what other options there are.

17. Final things
Once you have made all the changes, login with the administrative user for horde. The email user you set during the webmail-install script setup. Once logged in, go into the administration section and then horde configuration and create all the necessary configs. To start with, you can use the button that just creates them all or you can chose to review the configuration for each horde application yourself and apply changes that you want.

Horde also offers further applications. Visit http://www.horde.org/apps to see what's there.

Horde also offers an RSS feed so that you'll be notified on newer versions and for updating see here: http://www.horde.org/apps/webmail/docs/UPGRADING

view as pdf | print

Share this page:
Tweet Follow

How to install and configure Solr 6 on Ubuntu 16.04

How to install and configure Solr 6 on Ubuntu 16.04

What is Apache Solr? Apache Solr is an open source enterprise-class search platform written in Java which enables you to create custom search engines that index databases, files, and websites. It has back end support for Apache Lucene. It can e.g. be used to search in multiple websites and can show recommendations for the searched content. Solr uses an XML (Extensible Markup Language) based query and result language. There are APIs (Applications program interfaces) available for Python, Ruby and JSON (Javascript Object Notation).

Some other features that Solr provides are:

Full-Text Search.
Snippet generation and highlighting.
Custom Document ordering/ranking.
Spell Suggestions.

This tutorial will show you how to install the latest Solr version on Ubuntu 16.04 LTS. The steps will most likely work with later Ubuntu versions as well.

Update your System
Use a non-root sudo user to login into your Ubuntu server. Through this user, you will have to perform all the steps and use the Solr later.

To update your system, execute the following command to update your system with latest patches and updates.

sudo apt-get update && apt-get upgrade -y

Setting up the Java Runtime Environment
Solr is a Java application, so the Java runtime environment needs to be installed first in order to set up Solr.

We have to install Python Software properties in order to install the latest Java 8. Run the following command to install the software.

[email protected]:~# sudo apt-get install python-software-properties
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-apt
python-minimal python-pycurl python2.7 python2.7-minimal
Suggested packages:
python-doc python-tk python-apt-dbg python-apt-doc libcurl4-gnutls-dev
python-pycurl-dbg python-pycurl-doc python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-apt
python-minimal python-pycurl python-software-properties python2.7
python2.7-minimal
0 upgraded, 10 newly installed, 0 to remove and 3 not upgraded.
Need to get 4,070 kB of archives.
After this operation, 17.3 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Press Y to continue.

After executing the command, add the webupd8team Java PPA repository in your system by running:

sudo add-apt-repository ppa:webupd8team/java

Press [ENTER] when requested. Now, you can easily install the latest version of Java 8 with apt.

First, update the package lists to fetch the available packages from the new PPA:

sudo apt-get update

Then install the latest version of Oracle Java 8 with this command:

sudo apt-get install oracle-java8-installer

[email protected]:~# sudo apt-get install oracle-java8-installer
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 x11-common xfonts-encodings xfonts-utils
Suggested packages:
binutils-doc binfmt-support visualvm ttf-baekmuk | ttf-unfonts | ttf-unfonts-core ttf-kochi-gothic | ttf-sazanami-gothic ttf-kochi-mincho | ttf-sazanami-mincho ttf-arphic-uming firefox
| firefox-2 | iceweasel | mozilla-firefox | iceape-browser | mozilla-browser | epiphany-gecko | epiphany-webkit | epiphany-browser | galeon | midbrowser | moblin-web-browser | xulrunner
| xulrunner-1.9 | konqueror | chromium-browser | midori | google-chrome
The following NEW packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 oracle-java8-installer x11-common xfonts-encodings xfonts-utils
0 upgraded, 10 newly installed, 0 to remove and 3 not upgraded.
Need to get 6,498 kB of archives.
After this operation, 20.5 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Press Y to continue.

You MUST agree to the license available in http://java.com/license if you want to use Oracle JDK, clicking on the OK button.

The package installs a kind of meta-installer which then downloads the binaries directly from Oracle. After installation process, check the version of Java installed by running the following command

java -version

java version “1.8.0_91”
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Now you have installed Java 8 and we will move to the next step.

Installing the Solr application
Solr can be installed on Ubuntu in different ways, in this article, I will show you how to install the latest package from the source.

We will begin by downloading the Solr distribution. First finding the latest version of the available package from their web page, copy the link and download it using the wget command

For this setup, we will use http://www.us.apache.org/dist/lucene/solr/6.0.1/

cd /tmp
wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz

[email protected]:/tmp# wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
–2016-06-03 11:31:54– http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
Resolving www.us.apache.org (www.us.apache.org)… 140.211.11.105
Connecting to www.us.apache.org (www.us.apache.org)|140.211.11.105|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 137924507 (132M) [application/x-gzip]
Saving to: ‘solr-6.0.1.tgz’
Now, run the given below command to extract the service installation file:

tar xzf solr-6.0.1.tgz solr-6.0.1/bin/install_solr_service.sh –strip-components=2

And install Solr as a service using the script:

sudo ./install_solr_service.sh solr-6.0.1.tgz

The output will be similar to this:

[email protected]:/tmp# sudo ./install_solr_service.sh solr-6.0.1.tgz
id: ‘solr’: no such user
Creating new user: solr
Adding system user `solr' (UID 111) …
Adding new group `solr' (GID 117) …
Adding new user `solr' (UID 111) with group `solr' …
Creating home directory `/var/solr' …
Extracting solr-6.0.1.tgz to /opt
Installing symlink /opt/solr -> /opt/solr-6.0.1 …
Installing /etc/init.d/solr script …
Installing /etc/default/solr.in.sh …
? solr.service – LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-06-03 11:37:05 CEST; 5s ago
Docs: man:systemd-sysv-generator(8)
Process: 20929 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
Jun 03 11:36:43 server1 systemd[1]: Starting LSB: Controls Apache Solr as a Service…
Jun 03 11:36:44 server1 su[20934]: Successful su for solr by root
Jun 03 11:36:44 server1 su[20934]: + ??? root:solr
Jun 03 11:36:44 server1 su[20934]: pam_unix(su:session): session opened for user solr by (uid=0)
Jun 03 11:37:05 server1 solr[20929]: [313B blob data]
Jun 03 11:37:05 server1 solr[20929]: Started Solr server on port 8983 (pid=20989). Happy searching!
Jun 03 11:37:05 server1 solr[20929]: [14B blob data]
Jun 03 11:37:05 server1 systemd[1]: Started LSB: Controls Apache Solr as a Service.
Service solr installed.
Use this command to check the status of the service

service solr status

You should see an output that begins with this:

[email protected]:/tmp# service solr status
? solr.service – LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-06-03 11:37:05 CEST; 39s ago
Docs: man:systemd-sysv-generator(8)
Process: 20929 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
Jun 03 11:36:43 server1 systemd[1]: Starting LSB: Controls Apache Solr as a Service…
Jun 03 11:36:44 server1 su[20934]: Successful su for solr by root
Jun 03 11:36:44 server1 su[20934]: + ??? root:solr
Jun 03 11:36:44 server1 su[20934]: pam_unix(su:session): session opened for user solr by (uid=0)
Jun 03 11:37:05 server1 solr[20929]: [313B blob data]
Jun 03 11:37:05 server1 solr[20929]: Started Solr server on port 8983 (pid=20989). Happy searching!
Jun 03 11:37:05 server1 solr[20929]: [14B blob data]
Jun 03 11:37:05 server1 systemd[1]: Started LSB: Controls Apache Solr as a Service.

Creating a Solr search collection:
Using Solr, we can create multiple collections. Run the given command, mention the name of the collection (here gettingstarted) and specify its configurations.

sudo su – solr -c “/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs”

[email protected]:/tmp# sudo su – solr -c “/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs”
Copying configuration to new core instance directory:
/var/solr/data/gettingstarted
Creating new core 'gettingstarted' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=gettingstarted&instanceDir=gettingstarted
{
“responseHeader”:{
“status”:0,
“QTime”:4427},
“core”:”gettingstarted”}
The new core directory for our first collection has been created. To view the default schema file, got to:

/opt/solr/server/solr/configsets/data_driven_schema_configs/conf

Use the Solr Web Interface
The Apache Solr is now accessible on the default port, which is 8983. The admin UI should be accessible at http://your_server_ip:8983/solr. The port should be allowed by your firewall to run the links.

For example:

http://192.168.1.100:8983/solr/

To see the details of the first collection that we created earlier, select the “gettingstarted” collection in the left menu.

After you selected the “gettingstarted” collection, select Documents in the left menu. There you can enter real data in JSON format that will be searchable by Solr. To add more data, copy and paste the following example JSON onto Document field:

{
“id”: 1,
“book_title”: “My First Book”,
“published”: 1985,
“description”: “All about Linux”
}
Click on the submit document button after adding the data.

Status: success
Response:
{
“responseHeader”: {
“status”: 0,
“QTime”: 189
}
}
Now we can click on Query on the left side then click on Execute Query,

We will see something like this:

{

“responseHeader”:{

“status”:0,

“QTime”:24,

“params”:{

“q”:”*:*”,

“indent”:”on”,

“wt”:”json”,

“_”:”1464947017056″}},

“response”:{“numFound”:1,”start”:0,”docs”:[

{

“id”:”1″,

“book_title”:[“My First Book”],

“published”:[1985],

“description”:[“All about Linux”],

“_version_”:1536108205792296960}]

}}

Virtual machine image download of this tutorial
This tutorial is available as ready to use virtual machine image in ovf/ova format for Howtoforge Subscribers. The VM format is compatible with VMWare and Virtualbox. The virtual machine image uses the following login details:

SSH / Shell Login

Username: administrator
Password: howtoforge

This user has sudo rights.

Please change all the above passwords to secure the virtual machine.

Conclusion
After successfully installing the Solr Web Interface on Ubuntu, you can now insert the data or query the data with the Solr API and Web Interface.

view as pdf | print

Share this page:
Tweet Follow

How to install TYPO3 8.1 with Nginx (LEMP) on Ubuntu 16.04

How to install TYPO3 8.1 with Nginx (LEMP) on Ubuntu 16.04

This tutorial shows how to install and run a TYPO3 (version 8.1) web site on a Ubuntu 16.04 system that has a Nginx web server installed instead of Apache. This kind of setup is often called LEMP = Linux + Nginx (pronounced “engine x”) + MySQL + PHP). Nginx is a fast and efficient HTTP server that uses less resources than Apache and delivers pages a lot faster, especially static files.

1 Preliminary Note
I want to install TYPO3 in a vhost called www.example.com here with the document root /var/www/www.example.com/web.

You should have a working LEMP stack. If you don't have a LEMP installation yet, use this tutorial: Ubuntu LEMP Server

Because we have to run all the steps from this tutorial with root privileges, we can either prepend all commands in this tutorial with the string sudo, or we become root right now by typing

sudo su

I will use the nano editor to edit config files on the shell, nano can be installed with this command:

apt-get install nano

2 Installing TYPO3
First we will install some additional PHP modules that are required by Typo3:

apt-get install php7.0-soap php7.0-zip

The document root of my www.example.com web site is /var/www/www.example.com/web – if it doesn't exist, create it as follows:

mkdir -p /var/www/www.example.com/web

Next, we download TYPO3 8.1 as a .tar.gz file from http://typo3.org/download/ and place it in our document root:

cd /var/www/www.example.com
wget get.typo3.org/8.1 -O typo3_src-8.1.2.tar.gz
tar xfz typo3_src-8.1.2.tar.gz
rm typo3_src-8.1.2.tar.gz
cd web
ln -s ../typo3_src-8.1.2 typo3_src
ln -s typo3_src/index.php index.php
ln -s typo3_src/typo3 typo3

It is recommended to make the document root and the TYPO3 files in it writable by the Nginx daemon which is running as user www-data and group www-data:

chown -R www-data:www-data /var/www/www.example.com

If you haven't already created a MySQL database for TYPO3 (including a MySQL TYPO3 user), you can do that as follows (I name the database typo3 in this example, and the user is called typo3_admin, and his password is typo3_admin_password):

mysql –defaults-file=/etc/mysql/debian.cnf

CREATE DATABASE typo3;
ALTER DATABASE typo3 CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost' IDENTIFIED BY 'typo3_admin_password';
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost.localdomain' IDENTIFIED BY 'typo3_admin_password';

FLUSH PRIVILEGES;

quit

Next we create a Nginx vhost configuration for our www.example.com vhost in the /etc/nginx/sites-available/ directory as follows:

nano /etc/nginx/sites-available/www.example.com.vhost

server {

listen 80;

server_name www.example.com example.com;

root /var/www/www.example.com/web;

if ($http_host != “www.example.com”) {

rewrite ^ http://www.example.com$request_uri permanent;

}

index index.php index.html;

location = /favicon.ico {

log_not_found off;

access_log off;

}

location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}

# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).

location ~ /. {

deny all;

access_log off;

log_not_found off;

}

location ~ .php$ {

try_files $uri =404;

include /etc/nginx/fastcgi_params;

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_intercept_errors on;

fastcgi_buffer_size 128k;

fastcgi_buffers 256 16k;

fastcgi_busy_buffers_size 256k;

fastcgi_temp_file_write_size 256k;

fastcgi_read_timeout 1200;

}

client_max_body_size 100M;

location ~ /.(js|css)$ {

expires 604800s;

}

if (!-e $request_filename){

rewrite ^/(.+).(d+).(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;

}

location ~* ^/fileadmin/(.*/)?_recycler_/ {

deny all;

}

location ~* ^/fileadmin/templates/.*(.txt|.ts)$ {

deny all;

}

location ~* ^/typo3conf/ext/[^/]+/Resources/Private/ {

deny all;

}

location ~* ^/(typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon.ico) {

}

location / {

if ($query_string ~ “.+”) {

return 405;

}

if ($http_cookie ~ 'nc_staticfilecache|be_typo_user|fe_typo_user' ) {

return 405;

} # pass POST requests to PHP

if ($request_method !~ ^(GET|HEAD)$ ) {

return 405;

}

if ($http_pragma = 'no-cache') {

return 405;

}

if ($http_cache_control = 'no-cache') {

return 405;

}

error_page 405 = @nocache;

try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache;

}

location @nocache {

try_files $uri $uri/ /index.php$is_args$args;

}

}
This configuration already contains everything that is needed for clean URLs (because of the try_files $uri $uri/ /index.php$is_args$args; line in the @nocache location).

Next, make sure you have the following line in /etc/nginx/mime.types:

nano /etc/nginx/mime.types

[…]

text/x-component htc;

[…]
To enable the vhost, we create a symlink to it from the /etc/nginx/sites-enabled/ directory:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost

Reload Nginx for the changes to take effect:

service nginx reload

Create the FIRST_INSTALL file in the website root to enable the TYPO3 installer.

touch /var/www/www.example.com/web/FIRST_INSTALL

And change the owner to www-data so that the TYPO3 installation script can remove the file when the installation is finished.

chown www-data:www-data /var/www/www.example.com/web/FIRST_INSTALL

We have to adjust a few php.ini values to match the requirements for TYPO3. Open the php.ini file:

nano /etc/php/7.0/fpm/php.ini

And adjust the following config options so that they have these values:

[….]
max_execution_time=240
[….]
post_max_size = 20M
[….]
upload_max_filesize = 20M
[….]
max_input_vars=1500
[….]
memory_limit = 256M
[….]
Then save the file and restart PHP-FPM to load the new configuration:

service php7.0-fpm restart

Now we can launch the web-based TYPO3 installer by going to http://www.example.com/:

Click on the “System looks good. Continue” button to start the installation process. In case that this page shows a message that not all prerequisites are fulfilled, then adjust your config first to match the requirements before you proceed with the installation:

Next fill in the database details (user: typo3_admin; password: typo3_admin_password from when we created the typo3 database), select connection type socket and click on Continue:

On the next page choose Use an existing empty database and pick typo3 from the drop-down menu. Then click on Continue:

Next, provide a username and password for the TYPO3 admin user and enter a name for your TYPO3 website. Click on Continue then:

The installation is now finished. If you want to start with a demo website instead of a completely empty system, select the Yes, download the list of distributions option (this will not install demo data immediately, but just make a demo website available in the backend from where you can choose to install it). I'll choose here to not download any demo sites. Then click on Open the backend:

The admin area can be found under http://www.example.com/typo3/. Log in with the username admin and the password you defined during installation:

And login with the TYPO3 administrator user that you created above.

And start to build your TYPO3 website. The frontend will show an error like “Service Unavailable (503) No pages are found on the root level!” until you added a root page in the backend. I recommend taking a look at the excellent TYPO3 documentation on how to create your first website in TYPO3 if you are not familiar with this CMS yet.

3 Virtual machine image download of this tutorial
This tutorial is available as ready to use virtual machine image in ovf/ova format for Howtoforge Subscribers. The VM format is compatible with VMWare and Virtualbox. The virtual machine image uses the following login details:

SSH / Shell Login

Username: administrator
Password: howtoforge

This user has sudo rights.

MySQL / MariaDB Login

Username: root
Password: howtoforge

The IP of the VM is 192.168.1.100, it can be changed in the file /etc/network/interfaces.

TYPO3 Login

Username: admin
Password: howtoforge

Please change all the above passwords to secure the virtual machine.

4 Links

TYPO3: http://typo3.org/
Nginx: http://nginx.org/
Nginx Wiki: http://wiki.nginx.org/
Ubuntu: http://www.ubuntu.com/

view as pdf | print

Share this page:
Tweet Follow

How To Install GNOME Shell Extension

This article introduces how to install GNOME Shell Extension whether it is automatically via Extensions Repository or by GNOME Tweak Tool. Both way are suitable for beginners. Here we use GNOME Shell 3.14 in Ubuntu GNOME 16.04 Xenial Xerus as the example.
What is GNOME Shell Extension
Remember Mozilla Firefox and its add-ons. A GNOME Shell Extension is the same thing for GNOME Shell. If an add-on adds a new functionality to Firefox, so does GNOME Shell Extension. For example, you may add new bottom taskbar, traditional menu, weather widget, and another good features by installing an Extension in your GNOME Shell desktop.
Install An Extension from The Official Repository
This is the automatic way to install extension. This is the most common way. You must be using GNOME Shell to do it, because of course you can't install GNOME Shell Extension in KDE. Basically you just need one click to install it.
We pick an example Ping Indicator exension by trifonovkv.
Go to the extension web page in Extension Repository. For Ping Indicator, the web page is located at https://extensions.gnome.org/extension/923/ping-indicator. Look for on-off switch button in that page. Usually it is located at the left side of the extension name. Click the button to turn it on.A dialog window will ask for your permission to install the extension. Permit it. You will find your extension in the place it belongs. For Ping Indicator extension, you will find it on your top panel on the tray.

Install Extension via GNOME Tweak Tool
This is the offline way because you don't have to visit the Extensions Repository website to install it. We pick EasyScreenCast extension here as an example.
Obtain the source code of the extension. It is usually packaged in .zip format. For EasyScreenCast, download it from its original source code web page https://github.com/iacopodeenosee/EasyScreenCast. In GitHub page, click on green button (Clone or Download) then click on Download ZIP button. Any extension hosted in GitHub has the same way to download. Open your GNOME Tweak Tool. Go to Extensions menu > scroll down > click Install button > pick the .zip file > press OK. Sometimes you'll be asked to restart yur GNOME sessions. It means simply log out and log in again.Now you can use the extension you've just installed.

How To Install Google Earth on Ubuntu 16.04

Brief: This tutorial shows you how to install Google Earth on Ubuntu 16.04, via GUI and via command line.

Google Earth is a virtual globe that lets you travel anywhere sitting right in front of your desk. You can explore any place on earth (even in 3D) and also beyond earth. You can explore the surface of Moon and Mars, and explore the stars in the night sky.

One of our readers has informed us that he’s facing difficulties installing Google Earth on his Ubuntu 16.04 system. So, here we are with the installation guide for Google Earth on Ubuntu 16.04.

Installing Google Earth in Ubuntu 16.04
There was a time Linux distros were for nerds. They almost always had to type a bunch of commands to get various things done. But over the years, with the contribution of people all over the world, those days are gone. Now we are able to do almost everything from the graphical interface. But for those who feel more comfortable in terminal windows (count me in), we’ve included command-line installation guide as well.

Install Google Earth via GUI
Preparation

First of all, make sure the package database is up-to-date. Run this command in terminal:
sudo apt update
For a smooth installation experience, install GDebi:
sudo apt install gdebi

Suggested Read: How to use GDebi As Default Package Installer In Ubuntu.

Installing Dependencies
The reason installing Google Earth on Ubuntu 16.04 is somewhat troubling is that some of the packages it needs as dependencies are not available on Ubuntu 16.04 official repository. So, first we have to install them manually:

Go to pkgs.org.
Search and download the following packages according to your CPU architecture. Read this post to find out if you have 32 bit or 64 bit Ubuntu system.

lsb-invalid-mta :
[all] lsb-invalid-mta_4.1+Debian11ubuntu8_all.deb
lsb-security :
[64bit] lsb-security_4.1+Debian11ubuntu8_amd64.deb
[32bit] lsb-security_4.1+Debian11ubuntu8_i386.deb
lsb-core :
[64bit] lsb-core_4.1+Debian11ubuntu8_amd64.deb
[32bit] lsb-core_4.1+Debian11ubuntu8_i386.deb

Double-click on the downloaded packages. GDebi Package Installer window will open. Click on Install Package.
Installing lsb-invalid-mta

Follow the instructions and complete installing the three downloaded packages.

Installing Google Earth

Go to Google Earth downloading page.
Download the Google Earth package according to your CPU architecture (64bit/32bit).
Double-click on the downloaded package.
Installing google-earth-stable

After finishing installing Google Earth package, you’re good to go.

Google Earth on Ubuntu 16.04
Install Google Earth via Command-line
Fire up a terminal window and run these commands one after another:

# for 64 bit systems

cd /tmp
mkdir google-earth && cd google-earth
wget http://archive.ubuntu.com/ubuntu/pool/main/l/lsb/lsb-invalid-mta_4.1+Debian11ubuntu8_all.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/l/lsb/lsb-security_4.1+Debian11ubuntu8_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/l/lsb/lsb-core_4.1+Debian11ubuntu8_amd64.deb
sudo dpkg -i *.deb
sudo apt -f install
wget https://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb
sudo dpkg -i google-earth-stable*.deb
# for 32 bit systems

cd /tmp mkdir google-earth && cd google-earth wget http://archive.ubuntu.com/ubuntu/pool/main/l/lsb/lsb-invalid-mta_4.1+Debian11ubuntu8_all.deb wget http://archive.ubuntu.com/ubuntu/pool/main/l/lsb/lsb-security_4.1+Debian11ubuntu8_i386.deb wget http://archive.ubuntu.com/ubuntu/pool/main/l/lsb/lsb-core_4.1+Debian11ubuntu8_i386.deb sudo dpkg -i *.deb sudo apt -f install wget https://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.deb sudo dpkg -i google-earth-stable*.deb

And there you are with Google Earth installed on your Ubuntu 16.04.

Any more trouble?
Are you facing any trouble using Linux or need any tutorials? You can always request a tutorial on or contact us on our Facebook Page. Let us know, and we’ll get back to you.

How To Install Node.js On Ubuntu 16.04 [Quick Tip]

If you are looking to install Node.js on Ubuntu 16.04, you are in luck. Node.js is available in Ubuntu repository and you can easily install it.

What is Node.js ?
If you are looking to install Node.js, I think you already know about Node.js. Node.js “is an open-source, cross-platform runtime environment for developing server-side Web applications”. It’s simplicity to build and deploy fast and scalable applications have made it one of the most popular web technology of recent years.

Node.js is supported with npm (Node.js Package Manager). It’s an open source library of Node.js packages. So, you can simply use them in your application without the need of rewriting the entire thing all by your own.

Enough talking about Node.js and npm. Let’s see how to install Node.js in Ubuntu 16.04.

Install Node.js on Ubuntu 16.04
As I said earlier, Node.js is available in Ubuntu 16.04 repository. So, all you need to do is to open a terminal and use the following command:

sudo apt install nodejs
To install npm, use the following command:

sudo apt install npm
I recommend installing npm as well because you are going to need it anyways. Both Node.js and npm are not big in size.

For working on Node.js, you can use any good code editor for Linux or IDE. It’s basically your preference.

I am not going to show you how to get started with Node.js because that’s not the purpose of this quick tutorial.

If you want to remove Node.js and npm, you can use the command below:

sudo apt remove nodejs npm
That’s all you need to do to install Node.js on Ubuntu 16.04 and to uninstall it. I hope you find this quick tip helpful. If you have question or suggestions, feel free to leave a comment below.

In the end, if you love Node.js so much, you should check out NodeOS, a Linux distribution for Node.js users.

How to Easily Install Light Table on Ubuntu Linux

Brief: This tutorial shows you how to install Light Table on Ubuntu, Linux Mint and other Ubuntu-based Linux distributions.

Light Table is a feature rich and modern open source editor. It’s not an exaggeration to call it one of the best code editors for Linux. You can download the source code and use it to install Light Table but it requires extra effort in making it searchable or creating a desktop shortcut.

Don’t worry, there are easier ways to install Light Table in Ubuntu. But before we see that, let’s have a look at some of the main features of it.

Light Table features

Free and open source
Cross-platform
Lightweight
Modern, smart UI with minimalist interface
Auto-complete
Inline evaluation
Customizable with themes and plugins
Split views and instant feedback
Command palette
Fuzzy finder
Auto updates

Install Light Table in Ubuntu and other Linux
There are two ways to install Light Table in Ubuntu.

Use an unofficial PPA (works for all Ubuntu based Linux distributions)
Use Ubuntu Make command line tool (an Ubuntu exclusive way)

Method 1: Install Light Table in Ubuntu using PPA
This unofficial PPA by Anton Yakutovich downloads the latest build of Light Table and installs it. you don’t need to worry about the future updates because Light Table notifies you if there are any new updates available.

The benefit of using the PPA is that you avoid doing all these extra efforts to make it work like a normal application.

In addition to that, this PPA will also work in other Linux distributions based on Ubuntu such as Linux Mint and elementary OS. PPA is available for Ubuntu 16.04, Ubuntu 15.10 and Ubuntu 14.04.

Open a terminal and use the following commands:

sudo add-apt-repository ppa:dr-akulavich/lighttable
sudo apt-get update
sudo apt-get install lighttable-installer
Once installed, you can look for Light Table in Unity Dash and run it.

To uninstall Light Table installed via the above PPA, use the commands below:

sudo apt-get remove lighttable-installer
sudo add-apt-repository –remove ppa:dr-akulavich/lighttable
Method 2: Install Light Table in Ubuntu using Ubuntu Make
Ubuntu also provides a command line tool, Ubuntu Make, for developers to easily install various programming tools such as IntelliJ IDEA, Android Studio, Ubuntu SDK etc.

I recommend using the official PPA to install the latest version of Ubuntu Make instead of directly installing it from Ubuntu repositories (they contain older version).

Use the commands below to install the latest version of Ubuntu Make.

sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt-get update
sudo apt-get install ubuntu-make
Once you have Ubuntu Make installed, use the commands below to install Light Table:

umake ide lighttable
To uninstall Light Table installed via Ubuntu Make, use the command below:

umake -r ide lighttable
Voila!! You are all good with Light Table. Here is what Light Table looks like on my Ubuntu 16.04:

I am using Paper Theme, in case you wonder about its unusual appearance.

I hope this quick tutorial helped you to install Light Table on Ubuntu. If you have any questions or suggestions, feel free to leave a comment.

How To Install IntelliJ IDEA On Ubuntu Linux

Brief: This tutorial shows you how to install IntelliJ IDEA on Ubuntu, Linux Mint, elementary OS, Linux Lite and other Linux distributions based on Ubuntu.

IntelliJ IDEA is an integrated development environment (IDE) for Java development. It’s developed by JetBrains, the same company that developed PyCharm, the best IDE for Python. Like PyCharm, IntelliJ IDEA too has two variants:

Community Edition (Free)
Ultimate Edition (Paid version with extra features)

I am not going to dive into the features of IntelliJ IDEA or which edition is better. I presume that since you have come to read this post, you are already aware of the advantages of using IntelliJ IDEA.

In an earlier post, we have seen how to install PyCharm on Ubuntu. In this post, we shall see how to install IntelliJ IDEA on Ubuntu and other Linux distributions based on Ubuntu.

Before we go on installing IntelliJ on Ubuntu, please make sure that you have Java on your system. Read this post to see how to install Java on Ubuntu.

Once you have made sure of that, let’s go on with IntelliJ installation. We’ll see two ways of installing IntelliJ on Ubuntu.

Install IntelliJ using Ubuntu Make (exclusive for Ubuntu)
Install IntelliJ using PPA (Valid for all Linux distributions based on Ubuntu)

Method 1: Install IntelliJ on Ubuntu using Ubuntu Make (Ubuntu exclusive way)
Ubuntu Make is a command line utility from Ubuntu that enables developers to install various development tools and IDEs such as Eclipse, PyCharm, Ubuntu SDK, Android Studio etc. IntelliJ IDEA is one of the supported IDEs by Ubuntu Make.

You need to install Ubuntu Make first.

If you are using Ubuntu 16.04, you can install Ubuntu Make using the command below (not recommended):

sudo apt install ubuntu-make
If you are using a version older than 16.04 such as Ubuntu 14.04, Ubuntu 15.10 etc, you can use the official PPA to install Ubuntu Make (recommended).

sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt-get update
sudo apt-get install ubuntu-make
Note: I strongly recommend to use PPA for installing Ubuntu Make because it has the latest version of Ubuntu Make. The latest version of Ubuntu Make consists of IntelliJ and many other IDEs while the older version in Universe archive has limited IDEs to install.

Once you have Ubuntu Make installed, you can use the command below to install IntelliJ IDEA Community edition:

umake ide idea
To install the IntelliJ IDEA Ultimate edition, use the command below:

umake ide idea-ultimate
It will take some time in downloading and installing IntelliJ IDEA. It also depends on your internet speed. Once installed, you can simply search for IntelliJ in Unity Dash (if you are using Ubuntu Unity) and start the IDE.

To remove IntelliJ IDEA installed via Ubuntu Make, use the command below for your respective versions:

umake -r ide idea
umake -r ide idea-ultimate
IntelliJ IDEA running on Ubuntu 16.04
Method 2: Install IntelliJ using PPA (valid for Ubuntu based Linux distros)
There is an unofficial PPA available that you can use to easily install IntelliJ in Linux Mint, elementary OS and other Ubuntu-based Linux distributions, including Ubuntu of course. This PPA is developed and maintained by Marcel Kapfer and is available for Ubuntu 12.04, 14.04, 15.10, 16.04 and 16.10. So basically, it covers all the active Ubuntu versions and Linux distros based on them.

Open a terminal and use the commands below:

sudo add-apt-repository ppa:mmk2410/intellij-idea-community
sudo apt-get update
sudo apt-get install intellij-idea-community
Only Community version is available via this PPA unfortunately. The PPA will download the IDE, so again installation time will depend on your internet connection.

To remove IntelliJ installed from the above PPA, use the command below:

sudo apt-get remove intellij-idea-community
sudo add-apt-repository –remove ppa:mmk2410/intellij-idea-community
Method 3: Install IntelliJ IDEA using Source Code
If you are not using Ubuntu based Linux distribution or if you don’t like using PPA, you can take the hard road and install ItelliJ IDEA from its source code. It’s limited to Community edition, though. You can browse the source code on its GitHub repository.

You can browse and download the source code on its GitHub repository.

IntelliJ Community Edition Source Code

The main part of installing an IDE comes into configuration but I am more of a C++ guy than Java so I leave that part to you 🙂 I hope this post helped you to install IntelliJ on Ubuntu and other Linux distributions. If you have questions, suggestions or a word of thanks, feel free to drop a comment below.

How To Install Themes & Icons In Ubuntu 16.04

How to install Themes in Ubuntu 16.04, Ubuntu 15.10, Ubuntu 14.04 and Ubuntu 15.04. Change Unity Desktop themes on Ubuntu with Ubuntu/Gnome Tweak Tool or via Terminal Commands. You can download and install custom themes in Ubuntu 15.04/14.10/14.04. There are two ways to download and install themes in Ubuntu: Install Themes via PPA – Run

Install LibreOffice 5.1.2 On Ubuntu 16.04

LibreOffice 5.1.2 for Linux Ubuntu Systems. How to install LibreOffice 5.1.2 in Ubuntu 16.04, Ubuntu 15.04, Ubuntu 14.04, Ubuntu 15.10 and Ubuntu 14.10 Systems. LibreOffice 5.1.2 on Ubuntu Before installing the latest version, please remove LibreOffice old version. Run the following command to remove the old version of the LibreOffice application: sudo apt-get remove –purge

Install Viber Messaging & Calling App On Ubuntu 16.04

Viber messaging and calling app for Linux PC – Download and Install Viber for Linux Desktop (.deb). How to install Viber 6.0.1 on Ubuntu 16.04 and Linux Mint Systems. Viber is absolutely free and allows to make free calls or send free text messages to any mobile network or device, in any country. To use