The Story Behind ‘init’ and ‘systemd’: Why ‘init’ Needed to be Replaced with ‘systemd’ in Linux

I am subscribed to several mailing lists related to various Linux Distributions and Applications just to keep myself updated with what’s going on where. What are the new bugs? What are the Patches Released? What is expected in next release? and a whole lot of other stuffs. These days the mailing list is heavily populated with “Choose your side on Linux Divide”, mainly on Debian Mailing list along with a few other.

Linux Systemd

systemd replaces init

What “Choose your side on Linux Divide” is all about?

The init daemon is going to be replaced with daemon systemd on some of the Linux Distributions, while a lot of them have already implemented it. This is/will be creating a huge gap between traditional Unix/Linux Guard and New Linux Guard – programmers and System Admins.

In this article, we will discuss and solve following all queries one-by-one.

  1. What init is?
  2. What is systemd?
  3. Why init needed to be replaced?
  4. What features systemd will own.

What is init?

In Linux, init is a abbreviation for Initialization. The init is a daemon process which starts as soon as the computer starts and continue running till, it is shutdown. In-fact init is the first process that starts when a computer boots, making it the parent of all other running processes directly or indirectly and hence typically it is assigned “pid=1“.

If somehow init daemon could not start, no process will be started and the system will reach a stage called “Kernel Panic“. init is most commonly referred to as System V init. System V is the first commercial UNIX Operating System designed and usages of init on most of the Linux Distribution of today is identical with System V OS with a few exception like Slackware using BSD-style and Gentoo using custom init.

The need to replace init with something more perfect was felt from a long time and several alternatives were developed from time-to-time, some of which became distribution’s native init replacement, some of which are:

  1. Upstart – A init replacement daemon implemented in Ubuntu GNU/Linux and designed to start process asynchronously.
  2. Epoch – A init replacement daemon built around simplicity and service management, designed to start process single-threaded.
  3. Mudar – A init replacement daemon written in Python, implemented on Pardus GNU/Linux and designed to start process asynchronously.
  4. systemd – A init replacement daemon designed to start process in parallel, implemented in a number of standard distribution – Fedora, OpenSuSE, Arch, RHEL, CentOS, etc.

What is systemd?

systemd is a System Management Daemon named with UNIX convention to add ‘d‘ at the end of daemon. So, that they can be easily recognized. Initially it was released under GNU General Public License, but now the releases are made under GNU Lesser General Public License. Similar to init, systemd is the parent of all other processes directly or indirectly and is the first process that starts at boot hence typically assigned a “pid=1“.

systemd, may refer to all the packages, utilities and libraries around daemon. It was designed to overcome the shortcomings of init. It itself is a background processes which is designed to start processes in parallel, thus reducing the boot time and computational overhead. It has a lot other features as compared to init.

Why there was a need to replace init?

A init process starts serially i.e., one task starts only after the last task startup was successful and it was loaded in the memory. This often resulted into delayed and long booting time. However, systemd was not designed for speed but for getting the things done neatly which in turns avoid all the UN-necessary delay.

Features of systemd
  1. Clean, stateforward and efficient design.
  2. Simpler boot process.
  3. Concurrent and parallel processing at boot.
  4. Better API.
  5. Simple Unit Syntax.
  6. Ability to remove optional components.
  7. Low memory footprints.
  8. Improved technique to express dependencies.
  9. Initialization instruction written in config file and not in shell script.
  10. Make use of Unix Domain Socket.
  11. Job Scheduling using systemd Calendar Timers.
  12. Event Logging with journald.
  13. Choice of logging System events with systemd as well as syslog.
  14. Logs are stored in binary file.
  15. systemd state can be preserved to be called later in future.
  16. Track process using kernel’s cgroup and not PID.
  17. Users login managed by systemd-logind.
  18. Better integration with Gnome for interoperability.
Bottlenecks systemd
  1. Everything at one place.
  2. Not POSIX standard.

Systemd and Distro Integration

Linux Distribution Integration
Fedora Yes, first distro to adopt systemd
Arch Yes
RedHat Yes
CentOS Yes
Debian Yes, Debian 8 codename Jessie will have systemd by default
Gentoo Yes, but needs to be downloaded, installed and configure side with custom init
OpenSUSE Yes
Slack No (Though it has not been adopted till now in slackware, Patric Volkerding has not shown any indication if it will be adopted or not)
Ubuntu Yes, needs to be installed and configured with Upstream.
Controversy

Linus Torvalds, Chief architect of Linux kernel, feels attitude of key developer of systemd towards users and bug reports do not seems ok. It was also reported that systemd philosophy is weird and a foreign way to control system processes. The same has been recorded from Patric Volkerding and other notable Linux Users and Developers as well as over online forum, time-to-time.

systemd vs init

Features init systemd
DBus Dependency – Mandatory No Yes
Device based Activation No Yes
Device dependency configuration with udev No Yes
Timer based Activation Cron/at Proprietary
Quota Management No Yes
Automatic Service Dependency Handling No Yes
Kills users Process at logout No Yes
Swap Management No Yes
SELinux integration No Yes
Support for Encrypted HDD No Yes
Static kernle module loading No Yes
GUI No Yes
List all the child processes No Yes
Sysv compatible Yes Yes
Interactive booting No Yes
Portable to non x86 Yes No
Adopted on Several Distro Several Distro
Parallel service startup No Yes
Resource limit per service No Yes
Easy extensible startup script Yes No
Separate Code and Configuration File Yes No
Automatic dependency calculation No Yes
Verbose debug Yes No
Version N/A V44+
Size 560 KB N/A
Number of Files 75 files 900 files + glib + DBus
Lines of code – LOC 15000 (Approx) 224000 (Approx) (inc Codes, comments and white space) 125000 (Approx) (acctual code)

Conclusion

Anything running as pid=1 must not break, must not be mess and must be controlled by users effectively and efficiently. Many-a-user believes that replacing init for systemd is nothing more than reinventing the wheel everytime as a side effect of Linux. But this is the diverse nature of Linux. This is because Linux is that much powerful. Change is good and we must appreciate it if it is for a good reason.

That’s all for now. I’ll be here again with another Interesting article you people will love to read. Till then stay tuned and connected to Tecmint. Don’t forget to provide us with your valuable feedback in the comments below.

Source

GRV – A Tool for Viewing Git Repositories in Linux Terminal

GRV (Git Repository Viewer) is a free open-source and simple terminal-based interface for viewing git repositories. It provides a way to view and search refs, commits, branches and diffs using Vi/Vim like key bindings. It’s behavior and style can be easily customized through a configuration file.

GRV Features:

  • Provides a query language to filter refs and commits.
  • Supports Vi/Vim-like key-bindings by default, and key bindings can be customized.
  • Captures changes to the repository by monitoring the filesystem allowing the UI to be updated automatically.
  • It is organized as tabs and splits; allows for creating custom tabs and splits using any combination of views.
  • Supports customizable themes.
  • Offers mouse support.

Requirements:

  1. Go version 1.5 or later should be installed on your system.
  2. libncursesw, libreadline and libcurl.
  3. cmake (to build libgit2).

How to Install GRV in Linux Systems

First install required dependencies using the default package manager as shown.

$ sudo apt install libncurses5-dev libncursesw5-dev libreadline-dev cmake	#Debian/Ubuntu 
# yum install ncurses-devel readline-devel cmake 		                #RHEL/CentOS
# dnf install ncurses-devel readline-devel cmake		                #Fedora 

Then install GRV, the following commands will install GRV to $GOPATH/bin. A static libgit2 will be built and included in GRV when built this way.

$ go get -d github.com/rgburke/grv/cmd/grv 
$ cd $GOPATH/src/github.com/rgburke/grv
$ make install

After successfully installing GRV, you can view refscommitsbranches and diffs of your repository using the syntax that follows.

$ $GOBIN/grv -repoFilePath /path/to/repository/

In this example, we will view refs, commits, branches and diffs of repository file in ~/bin/shellscripts.

$ $GOBIN/grv -repoFilePath ~/bin/shellscripts 

View Git Refs

View Git Refs

View Git Diff

View Git Diff

View Git Commits

View Git Commits

You can find additional usage options from the GRV help page.

$ $GOBIN/grv -h

GRV Github repositoryhttps://github.com/rgburke/grv

In this article, we have explained how to install and use GRV, a terminal based UI for viewing git repositories. Use the feedback form below to share your thoughts about it or ask any questions.

Source

Install ImageMagick (Image Manipulation) Tool on RHEL/CentOS and Fedora

ImageMagick is a free open source simple software suite for any kind of image manipulation that is used for creating, editing, converting, displaying image files.

It can able to read and write over 200 image files such as JPEG, GIF, PNG, TIFF, and Photo CD image formats and it is also used for thumbnail or captcha generation. It also includes command line options for creating transparent or animated gif image formats and many more feature like resize, sharpen, rotate or add special effects to an image.

To use ImageMagick tool with PHP or Perl programming language, you will need to install ImageMagick with Imagick PHP extension for PHP and ImageMagick-Perl extension for Perl.

Imagick is a simple PHP extension for creating and modifying images using the ImageMagick API program. There is a confusion in name, as people think that ImageMagick and Imagick both are same, but you can use ImageMagick without Imagick extension but you need both installed on your machine to use and run it.

Installing ImageMagick from Repository

First, install following prerequisite php-pearphp-devel and gcc packages to compile imagick PHP extension.

# yum install php-pear php-devel gcc 

Once you’ve installed php-pearphp-devel and gcc packages, you may now install ImageMagick software for PHP and Perl support using yum command.

# yum install ImageMagick ImageMagick-devel ImageMagick-perl

Next, verify that ImageMagick has been installed on your system by checking its version.

# convert --version
 
Version: ImageMagick 6.7.8-9 2019-02-01 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP    

Installing ImageMagick 7 from Source Code

To install ImageMagick from source, you need a proper development environment with a compiler and related development tools. If you don’t have the required packages on your system, install development tools as shown:

# yum groupinstall 'Development Tools'
# yum -y install bzip2-devel freetype-devel libjpeg-devel libpng-devel libtiff-devel giflib-devel zlib-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libtool-ltdl-devel libX11-devel libXext-devel libXt-devel lcms-devel libxml2-devel librsvg2-devel OpenEXR-devel php-devel

Now, download the latest version of ImageMagick source code using following wget command and extract it.

# wget https://www.imagemagick.org/download/ImageMagick.tar.gz
# tar xvzf ImageMagick.tar.gz

Configure and compile the ImageMagick source code. Depending on your server hardware specs, this may take some time to finish.

# cd ImageMagick*
# ./configure
# make
# make install

Verify that the ImageMagick compile and install were successful.

# magick -version

Version: ImageMagick 7.0.8-28 Q16 x86_64 2019-02-19 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP 
Delegates (built-in): bzlib djvu fontconfig freetype jng jpeg lzma openexr pangocairo png tiff wmf x xml zlib

Install Imagick PHP Extension

Next, compile the imagick for PHP extension. To do, simple run the following ‘pecl‘ command. It will install ImageMagick and imagick PHP extension module ‘imagick.so‘ under /usr/lib/php/modules directory. If you are using 64-bit system, the module directory path would be /usr/lib64/php/modules.

# pecl install imagick 

downloading imagick-3.4.3.tgz ...
Starting to download imagick-3.4.3.tgz (245,410 bytes)
...................................................done: 245,410 bytes
19 source files, building
running: phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
Please provide the prefix of Imagemagick installation [autodetect] : 

Note: It will ask you to provide Imagemagick installation prefix, simply hit enter to auto detect.

Now, add the ‘imagick.so‘ extension to ‘/etc/php.ini‘ file.

echo extension=imagick.so >> /etc/php.ini

Next, restart Apache web server.

# service httpd restart

Verify imagick PHP extension by running the following command. You will see imagick extension similar to below.

# php -m | grep imagick

imagick

Alternatively, you can create a file called ‘phpinfo.php‘ under website root directory (ex: /var/www/html/).

# vi /var/www/html/phpinfo.php

Add the following code.

<?php

     phpinfo ();
?>

Open your favorite web browser and type ‘http://localhost/phpinfo.php‘ or ‘http://ip-addresss/phpinfo.php‘ and verify the imagick extension.

Check Imagick Version

Check Imagick Version

Source

Chkservice – An Easy Way to Manage Systemd Units in Terminal

Systemd (system daemon) is a modern system management daemon for Linux systems. Systemd is a replacement for init system manager; it controls system startup and services, and introduces the idea of units (managed via unit files) to identify different types of system resources such as services, devices, swap, automount, targets, paths, sockets and others.

It ships in with systemctl, a component for controlling systemd’s behavior and units (starting, stopping, restarting, viewing status etc) using the command line. What if you simply want to manage units using keyboard shortcuts, that is where chkservice comes in.

Read AlsoHow to Manage ‘Systemd’ Services and Units Using ‘Systemctl’ in Linux

Chkservice is an easy-to-use, ncurses-based command line tool for managing systemd units on a terminal. It lists units alphabetically under the categories (services, targets, automounts etc), showing the their status and description, and allows you, with superuser privileges to start, stop, enable and disable units.

Install chkservice in Linux Systems

On Debian and its derivatives, chkservice can be easily installed using its own PPA as shown.

$ sudo add-apt-repository ppa:linuxenko/chkservice
$ sudo apt-get update
$ sudo apt-get install chkservice

On Fedora Linux distributions.

# dnf copr enable srakitnican/default
# dnf install chkservice

On Arch Linux distribution.

# git clone https://aur.archlinux.org/chkservice.git
# cd chkservice
# makepkg -si

On other Linux distributions, you can build the release version using following commands.

# git clone https://github.com/linuxenko/chkservice.git
# mkdir build
# cd build
# cmake ../
# make

Once you have installed chkservice, launch it with root privileges using the sudo command. It’s output consists of four columns, the first showing enabled/disabled/masked status, the second showing started/stopped status, unit name/type and last column is the unit description.

$ sudo chkservice

chkservice for Managing Systemd Services

chkservice for Managing Systemd Services

Chksericve unit status information:

  • [x] – shows a unit is enabled.
  • [ ] – shows a unit is disabled.
  • [s] – indicates a static unit.
  • -m- – shows a unit is masked.
  • = – indicates unit has been stopped.
  • > – shows unit is running.

Below are the chkservice navigation keys:

  • Up/k – move cursor up.
  • Down/j – move cursor down.
  • PgUp/b – move page up.
  • PgDown/f – move page down.

The following are chkservice action keys:

  • r – updates or reload information.
  • Space bar – used to enable or disable a unit.
  • s – for starting or stopping a unit.
  • q – exit.

To view the help page as shown in the screenshot below, use ? (press [Shift + /]).

Chkservice Help and Options

Chkservice Help and Options

chkservice Github repository: https://github.com/linuxenko/chkservice

You may also like to read these systemd related articles.

  1. How to Create and Run New Service Units in Systemd Using Shell Script
  2. Managing System Startup Process and Services (SysVinit, Systemd and Upstart)
  3. Manage Log Messages Under Systemd Using Journalctl
  4. How to Change Runlevels (targets) in SystemD

That’s it! If you encountered any errors during installation or want to ask questions, share any thoughts, use the comment form below.

Source

How to Securely and Anonymously Share Files of Any Size Over the Tor Network with OnionShare

It’s mid-2016 and there are lots of methods to share files online between you and another person 12 timezones away. Some of them are convenient in that they offer a certain amount of disk space for free, and also offer commercial options if you require more storage.

OnionShare - Share Files of Any Size Securely and Anonymously Over Tor Network

OnionShare – Share Files of Any Size Securely and Anonymously Over Tor Network

Of course, you can set up your alternative using a tool such as ownCloud, but what if all you need is a one-time-only method to share files privately and securely? On one hand, setting up your own cloud for this sounds like an overkill, and using a service offered by a third party leaves your data whether you want it or not available at that third party’s will, and possibly subject to government requests.

In this article we will explain how to use Onionshare, an open source desktop utility that allows you to share files hosted on your own computer of any size securely and anonymously using the Tor browser on the other end.

Please note that you don’t necessarily have to be distributing top secret or otherwise highly confidential data in order to be concerned with your privacy – being able to share files securely and anonymously should be something we have access to every day. Let’s see how we can do it very easily.

Installing Onionshare in Linux

As we mentioned earlier, with Onionshare you don’t have to store online the files you want to share. Onionshare will start a web server locally and use a Tor service to make those files available over the Internet through the Tor network.

Thus, only the person with the right permissions will be able to see them for as long as you allow them to. In theory, you will want to close the web server running on your local computer as soon as the remote user is done downloading files. Enough talk, let’s now install Onionshare. We will use the following environment:

Local host: Linux Mint 17.3 32 bits
Remote host: Windows 7 Professional 64 bits

To install Onionshare in Linux Mint, or another Ubuntu derivative (including Ubuntu itself), do:

$ sudo add-apt-repository ppa:micahflee/ppa

Press enter when you’re prompted to confirm whether you actually want the PPA to your software sources.

$ sudo apt-get update
$ sudo apt-get install onionshare

If you are using CentOSRHEL or Fedora, make sure you have enabled the EPEL repository:

# yum update && yum install epel-release -y
# yum install onionshare

If you’re using another distribution, you may want to follow the build instructions provided by the developer in GitHub.

Once Onionshare is installed and before launching it you will also need to install and start in the background the Tor browser. This will help set up the secure channel between your computer and the remote user’s machine.

To accomplish this goal, follow these steps:

Step 1 – Head over to the Tor project’s website and download the program. At the time of this writing, the latest version of Tor is 6.0.2:

Step 2 – Untar the file, change to the directory where the files were extracted, and start Tor:

$ tar xJf tor-browser-linux32-6.0.2_en-US.tar.xz
$ cd tor-browser_en-US
$ ./start-tor-browser.desktop

Step 3 – Connect to the Tor network. You will only need to do this once.

Start Tor Browser

Start Tor Browser

We are now ready to launch Onionshare from our list of installed programs (sorry the above image is in Spanish). You can either add files using the Add Files button or dragging and dropping them in the white area (“Drag files here”):

OnionShare Secure File Sharing

OnionShare Secure File Sharing

After you started Onionshare’s web server, the files in the list become available through the given URL (see highlighted in the image above). You can then copy it using the Copy URL button and send it to the person you want to share the files with. Keep in mind, however, that this URL will not be accessible by a regular web browser such as Firefox, Google Chrome, Opera, Safari, or Internet Explorer. The other person needs to be using the Tor browser (downloads for other operating systems are available in the project’s website).

It is important to note that protecting the URL is essential in this process. You don’t want to share it over an insecure channel or non-encrypted chat service. A Google search for encrypted chat services (without quotes) will return a list of options you may want to consider to share the download URLs.

When the remote user points the Tor browser to the URL, he or she will be given the option to download the file. The blue button shows the changed name of the file, whereas the original appears right below. Tor will warn you that it can’t open the file and advise you to download it, but warning you to be aware that in order to keep your privacy- you should avoid opening files that may circumvent Tor and connect you directly to the Internet:

OnionShare File Sharing Using Tor Browser

OnionShare File Sharing Using Tor Browser

After the download is finished, the server running on your local machine will be automatically closed by Onionshare:

OnionShare File Download

OnionShare File Download

Please note that even though we have illustrated the use of Onionshare with a single file, it supports the transfer of several files and folders over a single URL, and multiple persons downloading at the same time.

Summary

In this guide we have shown how to install Onionshare and use it, along with the Tor network, to share files securely and anonymously. With Onionshare you can forget about worrying about your privacy and the care given to your personal data by third party businesses. You’re now in full control of your precious, private files.

To read more about Tor, and find out suggestions to use the network more effectively, you may want to refer to the full list of warnings in the project’s website here.

Source

Pydio – Create Own File Sharing and Synchronization Portal like Dropbox in Linux

Pydio File Sharing and Synchronization

Pydio – Create Own File Sharing and Synchronization Platform

Pydio is an Open source, secure and powerful online file sharing and synchronization software solution that can be an alternative to many online cloud storage systems. It can be accessed from the web, desktop or mobile platforms and hosting is private therefore you can implement your own security measures.

 12 Open Source Cloud Storage Solutions to Sync Your Data Safely

Pydio Features

Pydio offers the following features:

  1. Secure links with passwords with an expiration date.
  2. Integration with LDAP/AD server for user authentication.
  3. Monitor user activities in real time on the system.
  4. Creation of workspace from shared folders among different users.
  5. Notify users of file or folder modifications.
  6. Supports SSO with many Content Management Systems (CMS) such as WordPress, Joomla, Drupal, Xibo and many others including custom designed CMS.
  7. Preview user files such as audio, video and documents such as Office documents, PDFs and many more.

In this tutorial, I am going to take you through the process of setting up Pydio file sharing and synchronization portal on RHEL/CentOS and Fedora.

Step 1: Installing Web Server and Dependencies

1. Pydio only requires a web server (Apache, Nginx or Lighttpd) with PHP 5.1 or higher along with some dependencies such as GD, MCrypt, Mbstring, DomXML, etc. In most of the today’s distributions, these libraries are pre-installed on standard PHP installation. If not, let’s install them using following series of commands.

Before installing dependencies, first you need to enable EPEL repository under your Linux system and update the repository database using yum package manager:

# yum install epel-release
# yum update

Once the repository has been enabled, you can now install the Apache web server and php libraries as shown:

# yum -y install httpd
# yum -y install php php-gd php-ldap php-pear php-xml php-xmlrpc php-mbstring curl php-mcrypt* php-mysql

--------------- On Fedora 22+ ---------------
# dnf -y install php php-gd php-ldap php-pear php-xml php-xmlrpc php-mbstring curl php-mcrypt* php-mysql

2. Once all the required PHP extensions are installed properly, it’s time to open Apache HTTP and HTTPS ports on firewall.

--------------- On FirewallD for CentOS 7 and Fedora 22+ ---------------
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload
--------------- On IPtables for CentOS 6 and Fedora ---------------
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
# /etc/init.d/iptables save

Step 2: Create Pydio Database

3. To create pydio database, you must have MySQL/MariaDB server installed on the system, if not let’s install it.

# yum install mysql mysql-server            [On CentOS/RHEL 6 and Fedora]                 
# yum install mariadb mariadb-server        [On CentOS 7]
# dnf install mariadb mariadb-server        [On Fedora 22+]

Next secure mysql installation using command mysql_secure_installation and follow on screen instructions as shown.

MySQL Secure Installation

MySQL Secure Installation

Now connect to MySQL and create a new pydio user and set grant privileges as shown:

create database pydio;
create user pydio@localhost identified by 'tecmint';
grant all privileges on pydio.* to pydio@'localhost' identified by 'tecmint';

Step 3: Installing Pydio File Hosting Server

4. Here, we will use official Pydio repository to install most recent version of Pydio package with the help of following series of commands.

# rpm -Uvh http://dl.ajaxplorer.info/repos/pydio-release-1-1.noarch.rpm
# yum update
# yum --disablerepo=pydio-testing install pydio

Step 4: Configuring Pydio File Hosting Server

5. Next open and add the following configuration to .htaccess file to enable Pydio access over web as shown:

# vi /var/lib/pydio/public/.htaccess

Add the following configuration.

Order Deny,Allow
Allow from all
<Files ".ajxp_*">
deny from all

RewriteEngine on
RewriteBase pydio_public
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)\.php$ share.php?hash=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)--([a-z]+)$ share.php?hash=$1&lang=$2 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)$ share.php?hash=$1 [QSA]

In CentOS 7.x and Fedora 22+ distributions, you need to modify and add the following lines to pydio.conf file.

Alias /pydio /usr/share/pydio
Alias /pydio_public /var/lib/pydio/public

<Directory "/usr/share/pydio">
        Options FollowSymLinks
        AllowOverride Limit FileInfo
	Require all granted
      	php_value error_reporting 2
</Directory>


<Directory "/var/lib/pydio/public">
        AllowOverride Limit FileInfo
	Require all granted
      	php_value error_reporting 2
</Directory>

6. Next configure php.ini to allow max file upload, disable php output buffering and increase memory_limit to boost performance of Pydio as shown:

# vi /etc/php.ini
post_max_size = 1G
upload_max_filesize = 1G
output_buffering = Off
memory_limit = 1024M

7. Now set correct charset encoding in your locale definition in the form: en_us.UTF-8. First find out current charset lang of system by running following command.

# echo $LANG

Next open /etc/pydio/bootstrap_conf.php file and add the following line.

define("AJXP_LOCALE", "en_US.UTF-8");

8. It is recommended to use SSL encryption to secure all Pydio connections of data over secure HTTPS network. To do this, first install the mod_ssl package and open the following file and modify as shown:

# yum install mod_ssl
# vi /etc/pydio/bootstrap_conf.php

Now uncomment the following line at the bottom of the file. This will automatically redirect all connection via HTTPS.

define("AJXP_FORCE_SSL_REDIRECT", true);

9. Finally restart Apache web server to take new changes into effect.

# systemctl restart httpd.service       [On CentOS 7 and Fedora 22+]
# service httpd restart                 [On CentOS 6 and Fedora]

Step 5: Start Pydio Web Installer Wizard

10. Now open your web browser and type the url to load the web installer.

http://localhost/pydio/
OR
http://ip-address/pydio/

Pydio Installer

Pydio Installer

Click on the “Start Wizard” and follow on screen installer instructions….

Create Pydio Admin Account

Create Pydio Admin Account

Create Pydio Admin Account

Setup Global Options

Set Pydio Global Options

Set Pydio Global Options

Configure Pydio MySQL Database

Configure Pydio MySQL Database

Configure Pydio MySQL Database

Pydio Login

Pydio Login

Pydio Dashboard

Pydio Dashboard

Concluding

Cloud storage is on the rise and many companies out there are embarking on designing web file sharing software solutions such as Pydio. Hope you find this tutorial helpful and if you know of any other software out there that you have used, or if you are facing problems during installation or setup, let us know of it by leaving a comment. Thanks for reading and stay connected to Tecmint.

Reference: https://pyd.io/

Source

NitroShare – Easily Share Files Between Multiple Operating Systems on Local Network

One of the most important uses of a network is for file sharing purposes. There are multiple ways Linux and Windows, Mac OS X users on a network can now share files with each other and in this post, we shall cover Nitroshare, a cross-platform, open-source and easy-to-use application for sharing files across a local network.

Nitroshare tremendously simplifies file sharing on a local network, once installed, it integrates with the operating system seamlessly. On Ubuntu, simply open it from the applications indicator, and on Windows, check it in the system tray.

Additionally, it automatically detects every other device on a network that has Nitroshare installed thereby enabling a user to easily transfer files from one machine to another by selecting which device to transfer to.

Suggested Read: OnionShare – Securely and Anonymously Share Files Over the Tor Network

The following are the illustrious features of Nitroshare:

  1. Cross-platform, runs on Linux, Windows and Mac OS X
  2. Easy to setup, no configurations required
  3. It’s simple to use
  4. Supports automatic discovery of devices running Nitroshare on local network
  5. Supports optional TSL encryption for security
  6. Works at high speeds on fast networks
  7. Supports transfer of files and directories (folders on Windows)
  8. Supports desktop notifications about sent files, connected devices and more

The latest version of Nitroshare was developed using Qt 5, it comes with some great improvements such as:

  1. Polished user interfaces
  2. Simplified device discovery process
  3. Removal of file size limitation from other versions
  4. Configuration wizard has also been removed to make it easy to use

How To Install Nitroshare on Linux Systems

NitroShare is developed to run on a wide variety of modern Linux distributions and desktop environments.

On Debian Sid and Ubuntu 16.04+

NitroShare is included in the Debian and Ubuntu software repositories and can be easily installed with the following command.

$ sudo apt-get install nitroshare

But the available version might be out of date, however, to install the latest version of Nitroshare, issue the command below to add the PPA for the latest packages:

$ sudo apt-add-repository ppa:george-edison55/nitroshare
$ sudo apt-get update
$ sudo apt-get install nitroshare

On Fedora 24-23

Recently, NitroShare has been included to Fedora repositories and can be installed with the following command:

$ sudo dnf install nitroshare

On Arch Linux

For Arch Linux, NitroShare packages are available from the AUR and can be built/installed with the following commands:

# wget https://aur.archlinux.org/cgit/aur.git/snapshot/nitroshare.tar.gz
# tar xf nitroshare.tar.gz
# cd nitroshare
# makepkg -sri

How to Use NitroShare on Linux

Note: As I had already mentioned earlier on, all other machines that you wish to share files with on the local network must have Nitroshare installed and running.

After successfully installing it, search for Nitroshare in the system dash or system menu and launch it.

Suggested Read: Pydio – Create Own File Sharing and Synchronization Portal like Dropbox in Linux

NitroShare is very easy to use, you will find options to “Send Files“, “Send Directory“, “View Transfers“, etc from the AppIndicator / tray icon menu, choose the files or directory that you want to send and you will get a list of available devices on your local network that runs NitroShare:

NitroShare - Select Send Files Option

NitroShare – Select Send Files Option

After selecting the files, click on “Open” to proceed to choosing the destination device as in the image below. Select the device and click “Ok” that is if you have any devices running Nitroshare on the local network.

NitroShare - Available Local Devices

NitroShare – Available Local Devices

Nitroshare - File Transfer Progress

Nitroshare – File Transfer Progress

From the NitroShare settings – General tab, you can add the device name, set default downloads location and in Advance settings you can set port, buffer, timeout, etc. only if you needed.

Homepagehttps://nitroshare.net/index.html

That’s it for now, if you have any issues regarding Nitroshare, you can share with us using our comment section below.

Source

How to Install Rust Programming Language in Linux

Rust (commonly known as Rust-Lang) is a relatively new, open source practical systems programming language that runs extremely fast, prevents segfaults, and guarantees thread safety. It is a safe and concurrent language developed by Mozilla and backed by LLVM.

It supports zero-cost abstractions, move semantics, guaranteed memory safety, threads without data races, trait-based generics and pattern matching. It also supports type inference, minimal runtime as well as efficient C bindings.

Rust can run on a great number of platforms and is being used in production by companies/organizations such as DropboxCoreOSNPM and many more.

In this article, we will show how to install Rust programming language in Linux and setup your system to get started with writing programs with rust.

Install Rust Programming Language in Linux

To install Rust, use the following official method of installing rust via the installer-script, which requires curl command-line downloader as shown.

$ sudo apt-get install curl  [On Debian/Ubuntu]
# yum install install curl   [On CentOS/RHEL]
# dnf install curl           [On Fedora]

Then install rust by running the following command in your terminal, and follow the onscreen instructions. Note that rust is actually installed as well as managed by the rustup tool.

$ curl https://sh.rustup.rs -sSf | sh

Install Rust in Linux

Install Rust in Linux

Once the Rust installation is complete, the Cargo’s bin directory (~/.cargo/bin – where all tools are installed) will be added in your PATH environment variable, in ~/.profile.

During the installation rustup will attempt to add the cargo’s bin directory to your PATH; if this fails for one reason or another, do it manually to get started with using rust.

Add Rust Cargo Bin Directory to PATH

Add Rust Cargo Bin Directory to PATH

Next, source the ~/.profile file to use the modified PATH and configure your current shell to work with the rust environment by running these commands.

$ source ~/.profile
$ source ~/.cargo/env

Finally verify the version of rust installed on your system by running the following command.

$ rustc --version

Check Rust Installed Version in Linux

Check Rust Installed Version in Linux

Test Rust Programming Language in Linux

Now that you have rust installed on your system, you can test it by creating your first rust program as follows. Begin by making a directory where your program files will reside.

$ mkdir myprog
$ cd myprog

Create a file called test.rs, copy and paste the following lines of code to the file.

fn main() {
    println!("Hello World, it’s TecMint.com – Best Linux HowTos, Guides on the Internet!");
}

Then run the following command which will create an executable called test in the current directory.

$ rustc main.rs

Finally, execute test as shown.

$ ./test 

Write Programs in Rust Language

Write Programs in Rust Language

Important: You should take note of these points about rust releases:

  • Rust has a 6-week rapid release process, be sure to get many builds of rust available at any time.
  • Secondly, all these builds are managed by rustup, in a consistent manner on every supported platform, enabling installation of rust from the beta and nightly release channels, and support for additional cross-compilation targets.

Rust Homepagehttps://www.rust-lang.org/en-US/

In this article, we have explained how to install and use rust programming language in Linux. Try it out and give us your feedback or share any queries via the comment form below.

Source

Installing Seafile (Secure Cloud Storage) with MySQL Database in RHEL/CentOS/SL 7.x/6.x

Seafile is an advanced Open Source collaborative cloud storage application written in Python with file sharing and syncing support, team collaboration and privacy protection using client side encryption. It’s build as a multi-platform file syncing with clients that runs on all major platforms (Linux, Raspberry Pi, Windows, Mac, iPhone and Android) and can be easily integrated with local services such as LDAP and WebDAV or can be deployed using advanced network services and databases like MySQL, SQLite, PostgreSQL, Memcached, Nginx or Apache Web Server.

Install Seafile in CentOS

Install Seafile in Linux

This tutorial will guide you on a step by step Seafile Server installation on RHEL/CentOS/Scientific Linux 7.x/6.x deployed with MySQL database, with start-up init scripts for running the server on default Seafile port (8000/TCP) and default HTTP transaction port (80/TCP), create necessary Firewall rules to open required ports.

Requirements

  1. Minimal CentOS 6.5 installation with static IP address.
  2. MySQL/MariaDB database
  3. Python 2.6.5+ or 2.7
  4. Python-setuptools
  5. Python-simplejson
  6. Python-imaging
  7. Python-mysqldb

This installation procedure tested on CentOS 6.4 64-bit system, but can also be used on other Linux distributions with the specification that init start-up scripts differ from one distribution to another.

Step 1: Install Python Modules

1. First do a system Update, then install all required Python modules using the following commands.

# yum upgrade
# yum install python-imaging MySQL-python python-simplejson python-setuptools

2. If you use a Debian or Ubuntu server install all Python modules with the next commands.

$ sudo apt-get update
$ sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb

Step 2: Install Seafile Server

3. After all Python modules are installed create a new system user with a strong password that will be used to host Seafile server configuration and all data on its home directory, then switch to newly user account created.

# adduser seafile
# passwd seafile
# su - seafile

Create Seafile User

Create Seafile User

4. Then login to MySQL database and create three databases, one for every Seafile Server components: ccnet serverseafile server and seahub with a single user for all databases.

$ mysql -u root -p

mysql> create database `ccnet-db`;
mysql> create database `seafile-db`;
mysql> create database `seahub-db`;
mysql> create user 'seafile'@'localhost' identified by 'password';
mysql> GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> exit;

Install Seafile with MySQL Database

Create Seafile Database

5. Now it’s time to download and install Seafile Server. Go to Seafile official download page and grab the last .Tar Linux archive release for your server architecture using wget command, then extract it to your home Seafile user created earlier and enter Seafile extracted directory.

$ wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.4_x86-64.tar.gz
$ tar xfz seafile-server_3.0.4_x86-64.tar.gz
$ cd seafile-server_3.0.4/

Download Seafile

Download Seafile

6. To install Seafile Server using MySQL database run setup-seafile-mysql.sh initialization script and answer all questions using the following configuration options, after the script verifies the existence of all Python required modules.

$ ./setup-seafile-mysql.sh
  1. What is the name of your server? = choose a descriptive name (no spaces allowed).
  2. What is the IP or domain of the server? = enter your server IP address or your valid domain name.
  3. Which port do you want to use for ccnet server? = hit [Enter] – leave it default – 10001.
  4. Where do you want to put seafile data? = hit [Enter] – the default location will be your $HOME/seafile-datadirectory.
  5. Which port do you want to use for seafile server? = hit [Enter] – leave it default – 12001.

Run Seafile MySQL Script

Run Seafile MySQL Script

  1. Which port do you want to use for seafile httpserver? = hit [Enter] – leave it default – 8082.
  2. Please choose a way to initialize seafile databases: = choose 1 and provide default MySQL credentials: localhost, 3306 and root password.
  3. Enter the name for MySQL user of seafile: = seafile ( if you created other username enter that username) and seafile MySQL user password.
  4. On ccnet-server, seafile-server and seahub databases just hit [Enter] key – default.

Configure Seafile for MySQL

Configure Seafile for MySQL

MySQL Seafile Configuration

MySQL Seafile Configuration

After Seafile Server successfully installs, it will generate some useful information such as what ports needs to be open on your Firewall to allow external connection and what scripts to handle in order to start the server.

Seafile Installation Confirmation

Seafile Installation Confirmation

Step 3: Open Firewall and Create Seafile init Script

7. Before starting Seafile server from local script for a test, change back to root account and open iptablesfirewall file configuration located on /etc/sysconfig/ system path and add the following line rules before first REJECT line, then restart iptables to apply new rules.

$ su - root
# nano /etc/sysconfig/iptables

Append the following rules.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8082 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12001 -j ACCEPT

Open Ports for Seafile

Open Ports for Seafile

Restart iptables to apply rules using the following command.

# service iptables restart

NOTE: If you changed Seafile standard ports on installation process update your Firewall iptables rules accordingly.

8. Now it’s time to test Seafile Server. Switch to Seafile user and seafile-server directory and start the server using seafile.sh and seahub.sh scripts.

The first time you start seahub.sh script, create an administrative account for Seafile Server using your email address and choose a strong password for admin account, especially if you are deploying this configuration in a production environment.

# su - seafile
$ cd seafile-server-latest/
$ ./seafile.sh start
$ ./seahub.sh start

Start Seafile Server

Start Seafile Server

9. After the server is successfully started, open a browser and navigate to your server IP address or domain name on port 8000 using HTTP protocol, then login using you admin account created on the above step.

http://system_IP:8000

OR 

http://domain_name:8000

Seafile Login Screen

Seafile Login Screen

Seafile Dashboard

Seafile Dashboard

10. After first configuration tests, stop Seafile server and create an init script that will help you manage more easily the entire process, just like any other Linux system daemon processes.

$ ./seafile.sh stop
$ ./seahub.sh stop
$ su - root
# nano /etc/init.d/seafile

Add the following content on this init script – If Seafile is installed on other system user make sure to update user and paths accordingly on su – $USER -c lines.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

# source function library
. /etc/rc.d/init.d/functions

start() {
        echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

stop() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"
}

restart() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"

         echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
    restart)
       restart
        ;;
        *)
      echo "Usage: $0 start stop restart"
        ;;
esac

11. After init file has been created, make sure it has execution permissions and manage the process using startstop and restart switches. Now you can add Seafile service on system start-up using chkconfig command.

# chmod +x /etc/init.d/seafile
# service seafile start 
# service seafile stop 
# service seafile restart
# chkconfig seafile on | off
# chkconfig --list seafile

Start Seafile Service

Start Seafile Service

Add Seafile Service on Startup

Add Seafile Service on Startup

12. By default Seafile server uses 8000/TCP HTTP port for web transactions. If you want to access Seafile Server from browser on standard HTTP port use the following init script which starts the server on port 80 (be aware that starting a service on ports below 1024 requires root privileges).

# nano /etc/init.d/seafile

Add the following content on this init script to start Seafile on standard HTTP port. If Seafile is installed on other system user make sure to update user and paths accordingly on su – $USER -c and $HOME lines.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

# source function library
. /etc/rc.d/init.d/functions

start() {
                echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
                ## Start on port default 80 http port ##
/home/seafile/seafile-server-latest/seahub.sh start 80
}

stop() {
                echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
}

restart() {
      echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
                 echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
/home/seafile/seafile-server-latest/seahub.sh start 80
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
     restart)
       restart
        ;;
                *)
        echo "Usage: $0 start stop restart"
        ;;
Esac

13. If you previously started Seafile on port 8000 make sure all processes are killed, start the server on port 80.

# chmod +x /etc/init.d/seafile
# service seafile start | stop | restart

Open a browser and direct it to the following address.

http://system_ip 

OR

http://domain_name.tld

Start Seafile Service on Port 80

Start Seafile Service on Port 80

Seafile Login Panel

Seafile Login Panel

14. You can also verify on what ports Seafile is running using netstat command.

# netstat -tlpn

Verify Seafile Service

Verify Seafile Service

That’s it! Seafile can happily replace other cloud collaborative and file syncing platforms like public DropboxOwncloudPydioOneDrive, etc on your Organization, being designed for better teamwork and full control over your storage with advanced security in user-space.

Source

Phabricator – An Open Source Powerful “Project Management” Tool for Linux

Phabricator is an open source application that helps software companies to create/build better software, which is built using PHP language and available under Apache 2.0 open source license for Linux, MacOSX and can be run in any platform, it can even run in windows but it is totally based on Linux support. Phabricator has been used by Facebook before. The first version of phabricator was built by facebook with lots of features such as reviewing and auditing codes, tracking bugs etc.

Install Phabricator in Linux

Install Phabricator in CentOS and Ubuntu

We can use phabricator as a repository same as git and svn. There are several privacy settings available to secure the code among particular development teams. We can review the code of coworkers before finalizing the code.

I hope everyone is aware about git, if not please have a quick look at the GIT article below, that explain how to use it.

  1. Install GIT to Create Your Own Projects on GITHub Repository

Same like git, phabricator also has lots of features and used by most of the popular companies like Facebook, Dropbox, Groupon to develop there web applications.

Requirements

Phabricator can run in a normal computer, with following required packages. We don’t need specification with high resources.

  1. Apache2.2.7 or higher
  2. MySQL and PHP 5.2 or higher
  3. Git and some of the php extensions.

NOTE: Phabricator can only be installed on an entire domain (tecmint.com) or on an sub domain (phabricator.tecmint.com). You cannot install it to a specific path on any existing domain, say “tecmint.com/phabricator”.

Step 1: Installing Required Components

There are scripts available for setting-up in Ubuntu and Redhat based Linux, choose this option if you are not familiar with Linux.

  1. RedHat Derivatives – http://www.phabricator.com/rsrc/install/install_rhel-derivs.sh
  2. Ubuntu Derivatives – http://www.phabricator.com/rsrc/install/install_ubuntu.sh

If you are an Advance user, you just need to setup a LAMP server to run a phabricator. Okay, now let us start installing Phabricator on RHEL/CentOS and Ubuntu/Debian.

On RHEL/CentOS

Install LAMP server and include some php extensions, while installing.

# yum install mysql-server httpd git php php-mysql php-gd php-curl php-apc php-cli -y
On Ubuntu/Debian
$ sudo apt-get install mysql-server apache2 git-core git php5 php5-mysql php5-gd php5-curl php-apc php5-cli -y

NOTE: On Ubuntu based distributions, during installation it will ask you to enter root password for MysQL.

Step 2: Downloading Phabricator Files

Once, you have all the above stuff installed, now pick install directory. Here I’m going to create a directory called ‘myprojectapp‘ under DocumentRoot of Apache directory.

# mkdir /var/www/html/myprojectapp		[On RedHat]

$ sudo mkdir /var/www/myprojectapp		[On Ubuntu]

If you are installing, as a normal user you need to add current user (in my case ‘tecmint‘) in Apache group to get the write permission. This step can be ignored if you are switched to root user.

# chown -R tecmint:apache /var/www/html		[On RedHat]
$ sudo chown -R tecmint:www-data /var/www	[On Ubuntu]	

Then navigate to the newly created directory i.e. myprojectapp.

# cd /var/www/html/myprojectapp			[On RedHat]

$ cd /var/www/myprojectapp			[On Ubuntu]

Now, start pulling the phabricator and its dependencies from there official git repository.

git clone https://github.com/phacility/libphutil.git
git clone https://github.com/phacility/arcanist.git
git clone https://github.com/phacility/phabricator.git

Download Phabricator

Download Phabricator

Step 3: Configure Apache for Phabricator

On Ubuntu based distributions, you need to enable mod_php, mod_rewrite and mod_ssl modules, during installation most of these modules enabled by default, but we need to confirm.

# sudo a2enmod rewrite
# sudo a2enmod ssl

Enable PHP Modules in Ubuntu

Enable PHP Modules

Once, these modules enabled, next restart the web server to reflect changes.

$ sudo /etc/init.d/apache2 restart		[On Ubuntu]

Next, create a separate Virtualhost in your Apache configuration file.

# vi /etc/httpd/conf/httpd.conf			[On RedHat]

$ sudo nano /etc/apache2/sites-available/phabricator.conf	[On Ubuntu]

Append the following Virtualhost entry at the bottom of the file and change the DocumentRoot path to match exact location of phabricator files.

<VirtualHost *:80>
        ServerAdmin root@phab.tecmintlocal.com
        ServerName phab.tecmintlocal.com
        DocumentRoot /var/www/html/myprojectapp/phabricator/webroot
        RewriteEngine on
        RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
        RewriteRule ^/favicon.ico   -                       [L,QSA]
        RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
<Directory "/var/www/html/myprojectapp/phabricator/webroot">
        Order allow,deny
        Allow from all
</Directory>
</VirtualHost>

On Ubuntu, you need to enable the newly created virtualhost entry using following command. For RedHat based systems, no need to enable anything.

$ sudo a2ensite phabricator.conf

Finally, restart the Apache service to reflect new changes.

# service httpd restart				[On RedHat]

$ sudo /etc/init.d/apache2 restart		[On Ubuntu]

Step 4: Configure MySQL for Phabricator

Now, it’s time to configure MySQL, but before heading up for setup, make sure your MySQL is running and you able to connect to it. So, that you can load the mysql settings into it.

# cd /var/www/html/myprojectapp/phabricator/		[On RedHat]

# cd /var/www/myprojectapp/phabricator/			[On Ubuntu]

# ./bin/config set mysql.host localhost
# ./bin/config set mysql.user root
# ./bin/config set mysql.pass mjackson

Next, run the storage upgrade script to load database schema into it. While processing, it will prompt you to press ‘y‘ to continue, this will take little time to complete the setup for setting-up data schema.

# ./bin/storage upgrade --user root --password mjackson

Configure MySQL for Phabricator

Configure MySQL

Once, scheme added to mysql, restart the service to take new settings.

# service mysql restart

$ sudo service mysql restart

Step 5: Configuring Phabricator Web UI

Now you can access the web UI at the following locations, but we need to create an admin login account.

http://phab.tecmintlocal.com/

OR

http://ipaddress

Phabricator Admin Account

Phabricator Admin Account

If the above admin setup page is not displayed we need to create admin login manually from the terminal. This step only required, if incase we get the error cause admin account was not defined.

# ./bin/accountadmin

Once admin account created, you can login into admin section using same credentials. After login you can see some setup issue in the top left corner, that needs to be resolved before start using it.

Here are some of the steps to get fix, each and every issues can be resolved very easily as they have pointed how to resolve it.

Phabricator Setup Issues

Phabricator Setup Issues

Total, there are 10 setup issue mentioned as shown in the image below.

Open Phabricator Issues

Open Phabricator Issues

Here, I can’t show how to resolve each issue, but will try to show how to resolve one of the issue as mentioned in the error page. Let’s take first issue, MYSQL STRICT_ALL_TABLES Mode Not Set, clicking on the link will get the instructions on how to solve the issue.

So, let’s follow those instructions as described in the page. Open and edit the mysql configuration file.

# /etc/my.cnf		[On RedHat]

# sudo vim /etc/mysql/my.conf	[On Ubuntu]

Next, append the code under the mysqld section of conf file, what we get from while clicked on “MYSQL STRICT_ALL_TABLES Mode Not Set“.

sql_mode	= STRICT_ALL_TABLES
ft_min_word_len	= 3

After resolving each errors, you must restart the MySQL and Apache service to reflect new changes.

------------ On Red Hat Systems  ------------
# service mysqld restart
# service apache restart


------------ On Ubuntu Systems  ------------
$ sudo service mysql restart
$ sudo service apache2 restart

After, solving all issues, you can login into the panel again and check for the status, you will see “Ready to Use” message.

Phabricator Login

Phabricator Login

Check Phabricator Issues

Check Phabricator Issues

Step 6: Browsing Phabricator Features

You can see some of the user available features as shown in the pictures below.

Add Authenticate Provider

Add Authenticate Provider

Phabricator Configuration

Phabricator Configuration

Core Applications

Core Applications

Utilities

Utilities

Phabricator Administration

Administration

For Creating a normal user account, click on top-left corner icon then Scroll down the page, then click on “People“. Now to create a new user we have to Click on “Create New User“.

Step 7: Recover Phabricator Admin Password

If incase, you forget your admin password and you want to recover it, just follow the below command.

# ./bin/auth recover tecmint

Recover Phabricator Admin Password

Recover Admin Password

Next, copy the given access code and access the URL to recover, as shown in the images below.

Authentication Failure

Authentication Failure

Phabricator Account Recovery

Phabricator Account Recovery

That’s all for now, we’ve successfully installed and configured “Phabricator“an open source project management tool without any glitches. I hope you too setup with any errors, if any let me know via comments, I would love to help you out.

http://phabricator.org/

Source

WP2Social Auto Publish Powered By : XYZScripts.com