Linux.com

Home Linux Community Community Blogs

Community Blogs



Web Application Development in Linux Environment

Web Application Development

This article is presented by Vijay Web Solutions India Pvt. Ltd., a complete mobile and web application development company in India. The article represents the technologies used for developing web applications focused, comparing open source alternative to proprietary supported in Linux, also commenting on performance and development time.

Comparing Alternative Distribution

Currently there is a wave of development / export of most applications for use on the web. It should be emphasized that one should be careful when doing this as it should analyze the real need of it, so the development of web applications is more complex than the development of executable applications.

Solutions such as application delivery are needed in companies that have branches / points distributed over a considerable distance geographically. Citrix Metaframe is one of the tools that is installed on a Windows server with great performance hardware, allows publishing of any program installed on it. It provides user friendly interface to define which users can access each application published and how many instances of this application can run simultaneously according to the number of licenses. It is a great solution because it works with complex software applications made by going to the DOS platform. Greatest obstacle in such a solution is its cost, it can turn into more than $ 20,000.00 just for this tool with a considerable server hardware.

An alternative would be to develop web applications for use in the browser and distributed via a web server. I have always wondered about what would use more network traffic. Both forms are processed on the server, both using a metaframe as using a web application. But think about how it would be to transfer the image generated by the client instance on the server that is to be transferred to the client metaframe, if it would generate more traffic than sending an HTML document.

Greatest attractive to use the second option is you can use the Unix platform and our old known as Apache web server. For such applications there are several free to use database management systems like PostgreSQL, Firebird or even the most popular MySQL, which is widely used for its integration with PHP. Nor would there be problems in integrating an application that was being published by a Linux server with Apache to access databases on a Windows server, for example.

Database

Applications always require Relational Database Management Systems (RDBMS). Currently, there are several alternatives available in the market, being always hottest, the Oracle, currently at version 12c (c stands for cloud) and Microsoft SQL Server at version 2014. These solutions are great, however cost a bit outside the context of many companies on the rise. Alternatively, the DBMSs appeared attractive for situations like this, because despite being free to use, features stable operation and very good consistency.

There is availability of versions available for various distributions of Linux. Among them we can mention the PostgreSQL, which has characteristics and features that do not want to leave it on business. Firebird which is the freeware version of our renowned Interbase, having the same characteristics and is compatible with the same. But, surely you could not miss the MySQL which despite being the least robust of the three above options is the most used. A lot of web application development companies developing commercial applications working with PostgreSQL, to be the most robust among them and implement a best aspects safety. The Firebird still leaves a bit to be desired in this regard. The adoption of tools like these in projects reduces the cost of deploying the systems in customers. This facilitates their financial customer acceptance which might not be achieved only with the use of these free alternatives.

Technologies for Development

For the development of applications, use some CGI tool able to interpret the scripts on the server and return a default output to the user (HTML), to interact and post this information to be processed on the server, etc... There are several tools available on the market, thus as in the database have the paid and free to use. There are still very large number of servers using ASP which is Microsoft proprietary, which can only be installed on a server running Windows.

In return, we have solutions that are platform as JSP (Java Server Pages), PHP, and ColdFusion, which despite to be paid, and support installation on various distributions of Linux. Initially, in response to the use of ASP, PHP, which has spread a lot and gained a lot of fans is the clear language for programming that supports development with the paradigm of object orientation. The reason both has widespread, because there are several packages and documentation available on the Internet for both of these technologies.

Another tool that has been growing very equaling or even surpassing is JSP, because being originated from Sun's Java technology, it presents as a very consistent solution due to the great support that provides the Java language and how big the opponent group .NET from Microsoft. Also it supports the deployment on a Linux server. A proprietary solution that many are unaware that also supports Linux is Adobe ColdFusion currently at version 11. We will briefly discuss about it in the paragraphs below.

It offers the possibility to run on a Linux server with Apache and consult a base in a MS SQL Server on a Windows server. It is a simple and clear language, with advantages and disadvantages over the others. How big advantage is the ability to rapidly develop, because the language has different tags, such as CFINPUTs, which besides having the same attributes of INPUTs defined in HTML, allow the tag itself set the field validation on the client, messages, etc... without the need to write code in Javascript for this, as it would be in the languages mentioned above.

ColdFusion automatically generates these codes. Allows integration with Java technology since their codes are compiled and these generated classes in Java are used to send the output to the user. Disadvantages are that the cost for its implementation is necessary to acquire a license to power up Install the server and the CF developer community is very small in relation to the other. For example, to generate a PDF document that in the case of PHP and JSP must be native or using packages and libraries in CF only with proprietary solutions support. Notes on a case study that although it consume a considerable amount of RAM memory and other resources, it has a good performance microprocessor Pentium IV 2.4 MHz, 1GB of RAM and a 800MHz local bus without the need for a dual server.

All this with the Apache web server with SSL support. A detail that is worth noting that in this case study that I have seen, opening a series of doors services the CF, the more interesting it would be to place a firewall even before avoid direct external access.

Conclusion:

With this article, we hope to have contributed to the analysis of its structure helping to choose the path you want to follow. Proprietary solutions can be integrated into the Linux platform bringing benefits and reducing the cost. If the company can invest in a solution based on CF aimed at the rapid development of the projects, this can be achieved in the Linux environment.

 

Web Development Tools for Linux & How to Install Them

Often due to some restrictions by the web development company, most of the web developers are forced to use free open source platforms such as Ubuntu. For such developers, it becomes headache to work without the tools that are mandatory and used for developing a website. However, there are some similar tools available for Linux that can be used in the web development.

In this article, we are going to see a good list of Web Design / Development tools for Linux. Additionally, the installation steps given for each tool are specially for Ubuntu, however it should also work on Debian operating system.

GIMP

GIMP is an open source web designing tool and an alternative for Adobe Photoshop. Personally, I believe that it lacks some of the features as well as needs to be polished, however, once you are familiar with it, it will become a good alternative to Photoshop. This tool can be used for basic image manipulation, also may be decent at the more advanced stuff too, depending on the skills of the web designer.

Gimp

How to install Gimp on Linux

sudo apt-get install gimp

INKSCAPE

Inkscape is an open source vector editor. Though the UI looks ugliest for some people, however I found this tool very powerful and packed with more great features as compare to Adobe Illustrator.

inkscape

How to install Inkscape on Linux

sudo apt-get install inkscape

IMAGEMAGICK

ImageMagick is basically a command line editor, especially useful for resizing, sharpening, adding filters and watermarks on images in bulk. Check the official website of ImageMagick for more instructions.

How to install ImagicMagick on Linux

sudo apt-get install imagemagick

GEDIT

gEdit assists in the tasks of reading, printing and editing of texts, simply and easily. Simple, yet full of features with tools such as copy, cut, paste, undo and redo, settings fonts and colors, the software has all the common features of text editors. This does not mean that Gedit is a basic editor, with several other features. Possessing highlight setting for various programming languages ​​such as C, C + +, Java, HTML, XML, Python, Perl, among others, gEdit can be a good choice as a text editor for programming and development on Linux platform.

gedit

How to install gEdit

sudo apt-get install gedit

SUBLIME TEXT 2

The Sublime Text is a code editor which supports several languages ​​such as HTML5, CSS, PHP, ASP and Python, for example. The software has a very clean interface, and the black background of the screen does not bother reading anything. Two of the best features of it are the Multiple Selections and Command Palette, which allows you to access any menu item or let you open any document in just few key strokes.

Subime

How to install Sublime Text 2 on Linux

Check the installation steps here.

SASS

Sass - another method to write CSS. With Sass, we have more freedom to treat the styles applied concepts of OO programming. It uses the Ruby language to interpret their .scss files / .sass or compilers installed on your system (Mac, Windows, Linux) to transform .scss / .sass on. Css.

How to install Sass on Linux

In order to install Sass on a distribution of Linux, you'll require to install Ruby first. To install Ruby and then Sass, follow the steps given here.

GCOLOR2

Gcolor2 is tool that translates any shade of color, so you can use it in your image editor. It displays the color code in hexadecimal, their levels of saturation, hue, and RGB values ​​and opacity. This software also has feature to save the colors, name and code.

gcolor2

How to install gcolor2 on Linux

sudo apt-get install gcolor2

FILEZILLA

FileZilla is an application intended for users who want to connect to servers via FTP communication protocol. With it you can upload and download files from the web easily and quickly. It will run on almost anything such as OSX, GNU/Linux and Windows.

filezilla

How to install Filezilla on Linux

sudo apt-get install filezilla

DRUSH

Drush is a simle command line shell and scripting interface developed for Drupal. It allows you to download, enable, disable, uninstall, update modules/themes/profiles/translations via the command line in a very simple way (apt-get style).

How to install Drush on Linux

sudo apt-get install drush

Once you have installed it, simply update it to the latest version using the following command.

sudo drush dl drush --destination='/usr/share'

PHPMYADMIN

PhpMyAdmin is a an excellent set of PHP scripts in a form of browser base interface to manage MySQL Server. It allows you to create, edit, view and delete databases.

phpmyadmin

How to install phpmyadmin on Linux

sudo apt-get install phpmyadmin

TASKSEL

The tasksel is one of the most efficient terminal based application that installs multiple software at once on Linux distributions such as Debian, Ubuntu, Mint, etc...

tasksel

How to install Tasksel on Linux

sudo apt-get install tasksel

VIRTUAL BOX

VirtualBox is a more reputable options for operating systems in virtual machines emulation. With it you can run a system within another, like Ubuntu (or any other Linux distribution) on a Windows PC or Mac, and vice versa.

How to install Virtual Box on Linux

sudo apt-get install virtualbox

APACHE BENCH

The ApacheBench Apache is a software used for testing the performance of web servers, regardless of the server used. This is very useful for comparing the performance of different configurations, but can not always show the reality of the environment.

How to install Apache Bench on Linux

sudo apt-get install apache2-utils

LYNX

Lynx is a terminal-based web browser, used to display text only, ideal for systems based console or with few graphics. It is useless for web designers, but good for developers to test the code after writing.

How to install Lynx on Linux

sudo apt-get install lynx

Hope you find these tools helpful.

 

Setting up VPN on Linux

There is definitely a growing trend of people trying out Linux operating systems. The motivation might be the fact that they are free and generally considered superior to Windows when it comes to security and stability. People who want to give Linux a fair shot generally go with Debian-based forks like, Ubuntu, Linux Mint etc.

Although installing some of the most common software like, Skype, Web browsers, Music players are pretty easy using the software repositories, it could be quite intimidating for a newbie to configure VPN or install a new printer if it doesn't work out-of-box.

A VPN comes very handy to protect one's personal information, gain access to geo-restricted content -- for instance, one can use a US VPN to gain access to services like Spotify and Netflix, to secure their internet connection when using unprotected public networks. However, if one looks for the right tutorial or ask for help in discussion boards, one would realize the fact that setting up things on the popular Debian-based distributions is quite easy. There are 2 types of VPN solutions, OpenVPN and PPTP VPN. Today we are going to see how to setup VPN with PPTP on Ubuntu and its derivatives.

If you know a thing or two about Linux, it would only a few minutes to setup VPN. If you are beginner, stop bitting your nails, you are going to do just fine if you are a good at following instructions.

Server side setup

The server will be responsible to assign IP addresses to all the client machines in the network, be it Linux, Windows or Mac clients.

- 1. The very first thing is to install the PPTP package on your server. One can simply use the standard "apt-get" command to install. It is advisable to update the repositories first. Use the following commands. It will only take a few seconds for the installation to complete.

sudo apt-get update
sudo apt-get install pptdp

- 2. Now you will have to edit the pptd.conf file. The file resides in the following path, "/etc/pptpd.conf"
If you have GUI you can do it with your favorite text editor (e.g. Gedit).

sudo gedit /etc/pptpd.conf

Or you could use "nano" to edit the file right from the terminal.

sudo nano /etc/pptpd.conf

If you have not used nano before, you might as well check out this discussion on Ask Ubuntu [http://askubuntu.com/questions/54221/how-to-edit-files-in-a-terminal-with-nano] for help.

- 3. You need to add the following two lines to "pptpd.conf."

localip 172.20.0.1
remoteip 172.20.0.100-300

What does these lines do? The VPN server will use the localip inside the VPN and an IP with in the range 172.20.0.100 to 300 (e.g., 172.20.0.120, 172.20.0.124, etc.,) will be assinged to the clients that connect to the server.

- 4. The next step is to add new users. You will have to use "nano" or a text editor or Gedit like you did with editing the pptpd.config file above. The file will have all the information about users and is stored in the following file, "/etc/ppp/chap-secrets"

Edit this file to add new users. You will have the enter certain details in the right order for this to work. First you will have to enter the client's name, followed by the server, the password and IP address.

So a couple of new client added to the VPN might look like this.

computer1 pptpd password *
computer2 pptpd password *

You can either use a specific IP address, but it is better to use asterisk, which means that any IP address in the range assigned could be used to login.

- 5. This step is optional, but is advised to assign a DNS server. There are several free DNSs out there, the 2 most popular are, OpenDNS and Google's DNS.

If you want to use OpenDNS, you should use these IP addresses 208.67.222.222 & 208.67.220.220. If you would like to use Google's DNS, you will have to use the IPs 8.8.8.8 and 8.8.4.4. To use OpenDNS you can add these lines to the file.

ms-dns 208.67.222.222
ms-dns 208.67.220.220

- 6. Almost everything on the server side is done. Now it is time to wake the daemon. To start PPTPD, you will have to use the following terminal command.

service pptpd start

- 7. Now you need to setup proper forwarding. This time you will have to edit the file "/etc/systl.conf"
There should be the following line in this file.

net.ipv4.ip_forward = 1

If it doesn't exist, copy paste this into the file and save the file and update it using the command,

"sysctl -p"

- 8. Finally if you wish the clients to communicate with one another, you will have to add the following rules.
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

In the above rule, you will have to replace "eth0" with the internet connection that is used by the server. You can use the commands, iwconfig and ifconfig to figure this out.

# iptables --table nat --append POSTROUTING --out-interface ppp0 -j
# iptables -I INPUT -s 172.20.0.0/20 -i ppp0 -j ACCEPT
# iptables --append FORWARD --in-interface eth0 -j ACCEPT

The above rule also requires you to use the correct internet connection like for the first rule. That's it everything on the server side has been configured and clients could now handshake with the server now.

Client side setup

It really doesn't matter what operating system the clients run. You can find tutorials to configure Windows and Mac OSX on the internet. There are even services like Switch VPN, that can help you connect you Android device to the VPN server quite easily. However, here we are going to see how one can easily setup a Debian-based client for VPN.

- 1. The client should have pptp installed. We have already done this step on the server. You will just have to do this again on your clients with the following terminal commands on Debian-based distros.

sudo apt-get update
sudo apt-get install pptp-linux

- 2. Now you will have to load the ppp_mppe module, which could be triggered with the following command.

modprobe ppp_mppe

- 3. Create client configuration file in the following directory (/etc/ppp/peers/). You can name this file whatever you want. But you will have to remember this file name to connect to the VPN server.

pty "pptp --nolaunchpppd"
name computer1
password password
remotename PPTP
require-mope-128

If you had named this file "vpncomputer1", you should use the following command to connect to the server.

pppd call vpncomputer1

- 4. Finally for proper routing, you will have to execute the following line.

ip route add 172.20.0.0/20 dev ppp0

The above steps can use used several times to add multiple clients to the server.

 

Install EPEL Repo on a CentOS and RHEL 7.x Server

A larger number of packages can be installed from Fedora EPEL repo on a CentOS and Red Hat Enterprise Linux (RHEL) version 7.x. This quick tutorial explains how to enable Fedora EPEL repo on a Red Hat Enterprise Linux server version 7.x or CentOS Linux server version 7.x.

Read more: Install EPEL Repo on a CentOS and RHEL 7.x

 

CentOS and RHEL 7: Install Linux, Apache, MariaDB, PHP (LAMP) Stack

I am new Red Hat Enterprise Linux version 7 user/sysadmin/developer. This version made the big number change for RHEL 7/CentOS 7. How can I install LAMP (Linux, Apache, MariaDB, PHP) stack on a RHEL version 7 or CentOS Linux version 7 using CLI or over ssh based session?

CentOS and RHEL 7: Install Linux, Apache, MariaDB, PHP (LAMP) Stack

 

My first Linux based robot

My Robot

I successfully connected my BeagleBone Black running Angstrom Linux to a Dagu Rover 5 Tracked Chassis using the Rover 5 motor driver board.  I then wrote Python client/server scripts that allowed me to control the robot over a Bluetooth RFComm connection.  The blog posts listed below document the steps I took to create the robot, from start to finish, with videos and images.

 

I just got my BeagleBoard Black, now what?

My first working robot, It’s Alive

My first working robot, It’s Alive – Part 2

My first working robot, It’s Alive – Part 3

 

 

How to disable Ipv6 on Ubuntu, Linux Mint, Debian

Ipv6 Ipv6 is the next version of the addressing scheme Ipv4 that is currently being used to assign numerical address to domain names like google.com over the internet. Ipv6 allows for more addresses than what Ipv4 supports. However it is not yet widely supported and its adoption is still in progress. Does your system support ipv6...
Read more... Comment (0)
 

9 ASCII Games You'll Want to Play Again and Again

Text-based games often receive little coverage in the Linux press. However, there are some real ASCII gems out there waiting to be explored which are immensely addictive and great fun to play.


<A HREF="http://www.linuxlinks.com/article/20140621060017503/9ASCIIGames.html">Read on</A>

 

How to set up KVM Virtualization in RHEL/CentOS 6

Hi Linux fans, I have been using KVM virtualization a lot recently for learning and as a lab set up to try out all my new stuff. I originally started writing articles for KVM in Ubuntu in my Jungle Geek blog. One of my readers wanted to try that out on a CentOS operating system. So I decided to write an article for KVM on CentOS to help him out.

If you are interested in learning about how to setup KVM virtualization on RHEL/CentOS, please visit my blog and the article link is below.

 

Thanks

Venkat Nagappan

 

20 things to do after installing Elementary OS 0.2 Luna

Elementary OS Luna Elementary OS is another very cool linux distro based on Ubuntu. It has an intense focus on visual design and user experience. It comes with its own desktop environment called Pantheon that is designed to resemble mac. In this post we are going to tweak elementary OS right after a fresh installation and also install some essential apps to fully load the desktop for the best experience. 1. Enable all software repositories Launch...
Read more... Comment (0)
 

My Recent Linux Journey

A journey from Windows through doubt, frustration and despair to relief and a finally joy. This journey started on 31 May 2014 the day after the release of Linux Mint 17 “Qiana” Cinnamon and finished on the 17 June 2014. I worked on this continually for 8 or more hours a day over this time can’t work at the moment so I had time on my side.

I was excited at the prospect of the new Mint 17 “Qiana” Cinnamon release I had been waiting for a while I was running Petra with Cinnamon for some time with limited success just minor crashes delays and freezes was busy then so I didn't have the time to spend on it. I have been interested in Linux for some time and on another older PC some years ago ran with Mandrake and also SUSE.

My System

Mainboard Asus P6X58D Premium with 64 bit architecture

BIOS Version/Date American Megatrends Inc. 1501, 10/05/2011

Processor Intel(R) Core(TM) i7 CPU 950 @ 3.07GHz, 3068 Mhz, 4 Core(s), 8 Logical Processor(s)

Socket LGA 1366 with water cooling

Memory 32 G DDR 3 1600MHz Comprising 4x Corsair Vengeance Ver 2.12 1.50 v sticks

Power supply Sea sonic X series Model SS 750 KM Active PFC F3

Display NVIDIA GeForce GTX 560 Ti 1 GB DDR5

On windows 8 this card has diver issues with propriety drivers after the 314.22 desktop driver

Hard Drives Model Seagate ST31000528AS 1TB

Mounted as sda ( Partioned for different storage options movie's Digital Photos etc) this is connected to a 3gb data port on the main drive

Model Western Digital WDC WD1002FAEX-00Y9A0 1TB

Mounted as sdb (this drive held my windows 8 operating system and was partioned to run linux behind it with Root Swap and home partions) the other factor with this drive was it is connected to a 6g Sata port on the mainboard

Model Western Digital WDC WD1002FAEX-00Y9A0 1TB

Mounted as sda ( Partioned for different storage options movie's Digital Photos etc) the other factor with this drive was it is connected to a 6g Sata port on the mainboard

All of this is wrapped up in a nice Lain li allow modular type case. I use Logitech peripherals such as

Wireless (Mouse keyboard headset) and speakers

So with a fresh download of Linux Mint 17 Cinnamon burnt to a live dvd via power iso 5.7

my journey commenced, I partitioned sdb behind the windows partition ( where mint 16 had been ) expecting to be done in no time and happy and excited to explore

the latest version, well how wrong could I be. Things did not go at all well the install was fine but as I started into the system to personalise there were continual freezes lock ups and restarts (hard reboots) I read all I could an could not find any of the same issues except for my NVIDIA driver so I tried using generic one then slowly moved up but the same things continued to happen I could not get 10 minutes use out of the system.

So I re-downloaded the ISO file and re burnt it figuring something had gone wrong in that process but again the same issues raised their heads. I was not feeling at all happy at this point. Liking mint so much I decided to try the mate version after a few more hours of reading. This time I set the partitions up on sdc and download another ISO different desktop so things just might go better for me and they did for a while but then again once I had customised to the way I wanted given just a few crashes and hard restarts along the way mint mate to became unusable.

Not being one to give up and liking the Ubuntu / Mint way of installing packages I then tried several other distros to see if I could get a working Linux system, however to my dismay that was not to be. After using every version of Ubuntu L K I then tried Open suse for sure this would work another download. The system installed but would not boot past x so it just had to be my Graphics card.

I had another one here an older ATI card so I changed that and tried Pclinuxos this came close to working but still the same issue I put my NVIDIA card back in and tried a few more distros like Bodhi no joy there the live dvd would not even work. Onto Magei 4 and through Makulu Mate but no joy by this time it was its easier to forget linux than it is to proceed. I tried one more distro Lxle I set this one up on sda the Seagate drive it configured my NVIDIA card along the way and the distro seemed to work with my system or at least it did for a while, along the way through all this I had to reconfigure my windows boot loader to get the windows system to boot so it was a learning experience. However once again the system was not good.

I remembered that my system was over-clocked so I changed the memory settings and it seemed to work a little better but not much very long lag times and still system freezes. By this Time I am really thinking it will never happen I had used acronis for years to back up windows 8 and it had served me well so I was not really afraid to do anything as as I always had a fail-safe (well I thought so). After hitting the “return the system to default” in the bios I found out my fail-safe no longer worked and I had just crashed my whole system. Despair had set in.

So a day to rebuild my windows system then not to be beaten I tried Lxle again mainly because of the way it installed I had also installed it on my latop and it was the only Distro to pick up the wifi and use it during the installation. So back to it and to my ultimate surprise it installed well and ran even better. Wow this seems great then I went to open some files stored on other drives and to my surprise I could not see either of the two western digital drives sdb sdc on the system. Thinking of what had gone right with the install and why I couldn't see the other drives I read my motherboard manual and figured out I had those two hard drives connected to the 6gb sata connectors was this why I could not see them. A few checks of the bios and a quick change to have the drives recognised as AHCI as opposed to IDE and my whole system opened up.

I have now reinstalled Linux Mint 17 Cinnamon on my Seagate drive sda and the system runs perfectly. So now joy in fact I have written this on LibreOffice Writer. After spend so much time thinking my NVIDIA card was the issue I have solved to problem and I am not sure what exactly it was. I just wanted to share my experience as sometimes it can get frustrating but if you work through the issues you will find as I have a Linux system that works on pair if not better than windows and is far more enjoyable. My laptop remains with Lxle.

 
Page 5 of 142

Upcoming Linux Foundation Courses

  1. LFS230 Linux Network Management
    06 Oct » 09 Oct - Virtual
    Details
  2. LFD331 Developing Linux Device Drivers
    13 Oct » 17 Oct - Virtual
    Details
  3. LFS430 Linux Enterprise Automation
    13 Oct » 16 Oct - Virtual
    Details

View All Upcoming Courses


Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board