HTTP & Samba Server
by:- Manoj kumar
IT Final year
INTRODUCTION OF LINUX
1.1 WHAT IS LINUX?
Linux is, in simplest terms, an operating system. It is the software on a computer that
enables applications and the computer operator to access the devices on the computer to perform desired
functions. The operating system (OS) relays instructions from an application to, for instance, the
computer's processor. The processor performs the instructed task, and then sends the results back to the
application via the operating system.
Explained in these terms, Linux is very similar to other operating systems, such as Windows and OS X.But
something sets Linux apart from these operating systems. The Linux operating system represented a $25
billion ecosystem in 2008. Since its inception in 1991, Linux has grown to become a force in computing,
powering everything from the New York Stock Exchange to mobile phones to supercomputers to
As an open operating system, Linux is developed collaboratively, meaning no one company is solely
responsible for its development or ongoing support. Companies participating in the Linux economy share
research and development costs with their partners and competitors. This spreading of development
burden amongst individuals and companies has resulted in a large and efficient ecosystem and
unheralded software innovation.
Over 1,000 developers, from at least 100 different companies, contribute to every kernel release. In the
past two years alone, over 3,200 developers from 200 companies have contributed to the kernel--which is
just one small piece of a Linux distribution.
Operating systems are computer programs. An operating system is the first piece of software that the
computer executes when you turn the machine on. The operating system loads itself into memory and
begins managing the resources available on the computer. It then provides those resources to other
applications that the user wants to execute.
in short words linux is the best open source & world without windows or from it’s one of the
Linux has provided us some of the best servers to share every possible transactions. One of them
is linux samba server and http server.
We will now discuss both here in detail.
LINUX SAMBA SERVER
Samba is a strong network service for file and print sharing that
works on the majority of operating systems available today. When well implemented by the
administrator, it's faster and more secure than the native file sharing services available on Microsoft
Samba is a suite of programs that gives your Linux box the ability to speak SMB (Server Message
Block). SMB is the protocol used to implement file sharing and printer services between computers
running OS/2, Windows NT, Windows 95 and Windows for Workgroups. The protocol is analogous
to a combination of NFS (Network File System), lpd (the standard UNIX printer server) and a
distributed authentication framework such as NIS or Kerberos. If you are familiar with Netatalk,
Samba does for Windows what Netatalk does for the Macintosh. While running the Samba server
programs, your Linux box appears in the “Network Neighborhood” as if it were just another
Windows machine. Users of Windows machines can “log into” your Linux server and, depending on
the rights they are granted, copy files to and from parts of the UNIX file system, submit print jobs
and even send you Win Popup messages. If you use your Linux box in an environment that consists
almost completely of Windows NT and Windows 95 machines, Samba is an invaluable tool.
Samba is the protocol by which a lot of PC-related machines share files and printers, and other
information, such as lists of available files and printers. Operating systems that support this natively
include Windows 95/98/NT, OS/2, and Linux, and add on packages that achieve the similar thing
are available for DOS, Windows, VMS, Unix of all kinds, MVS, and more.
Apple Macs and some Web Browsers can speak this protocol as well. Alternatives to SMB include
Netware, NFS, AppleTalk, Banyan Vines, and Decnet etc. Many of these have advantages but none
are public specifications and widely implemented in desktop machines by default. Samba software
includes an SMB server, to provide Windows NT and LAN Manager-style file and print services
to SMB clients such as Windows 95, Warp Server, smbfs and others, a BIOS, rfc1001/1002 name
server, which amongst other things gives browsing support, an ftp-like SMB client so that you can
access PC resources; disks and printers from Unix, Netware and other operating systems, and finally,
a tar extension to the client for backing up PCs.
HOW TO CONNECT LINUX TO WINDOW
Step 1st. First we check there is samba server package is installed or not. We find
package samba* not installed. Then we install samba* package with help of yum
Here samba server is installing
Step 2nd. We have to create a DIRECTORY on / which one has to be shared.
Then we create a valid user who has been shared the directories.
Directory (/manoz) and valid (AARAV) user has been created.
Step 3rd. Now we get the knowledge of our system’s IP address and who has been made by us is being connecting or not.
Now we got system’s IP address. But there is error in connection. Now we
have to troubleshoot this connection error for this valid user.
Step 4th. In the next step we open the samba server configuration file.
Command: vim /etc/samba/conf/smb.conf
This is configuration file.
Step 5th. Last page of configuration file we make some changes here.
After saving changes safely we came out from this configuration file.
Step 6th. Now we check the context of directory (/manoz).
Command: ls –lZ /manoz
Context of the directory is default now we make it samba because directory is shared by particular Samba server.
Step 7th. For changing the context of the directory we have to set boolians of the samba server.
Using getsebool command we can turn on the Booleans of samba.
Step 8th. Now we set context of directory as samba.
Command: chcon –R –t samba_etc_t /manoz
Context changed of directory successfully.
Step 9th. Now we try to connect the user.
Command: smbclient //192.168.0.12/manoz –U AARAV
Connection is successfully done.
Step 10th. Check the shared directory.
Shared directory is there.
The primary function of a web server is to deliver web pages on the request to clients. This means delivery of
HTML documents and any additional content that may be included by a document, such as images, style sheets and scripts.
A client, commonly a web browser or web crawler, initiates communication by making a request for a specific resource using
HTTP and the server responds with the content of that resource or an error message if unable to do so. The resource is
typically a real file on the server's secondary memory, but this is not necessarily the case and depends on how the web server
While the primary function is to serve content, a full implementation of HTTP also includes ways of receiving content from
clients. This feature is used for submitting web forms, including uploading of files.
Many generic web servers also support server-side scripting, e.g., Apache HTTP Server and PHP. This means that the behavior
of the web server can be scripted in separate files, while the actual server software remains unchanged. Usually, this function
is used to create HTML documents "on-the-fly" as opposed to returning fixed documents. This is referred to as dynamic and
static content respectively. The former is primarily used for retrieving and/or modifying information from databases. The
latter is, however, typically much faster and more easily cached.
Web servers are not always used for serving the World Wide Web. They can also be found embedded in devices such as
printers, routers, webcams and serving only a local network. The web server may then be used as a part of a system for
monitoring and/or administrating the device in question. This usually means that no additional software has to be installed
on the client computer; since only a web browser is required (which now is included with most operating systems).
The HTTP Server API only binds to an IP address and port once a user registers a URL. By default, the HTTP
Server API binds to the port in the URL for all of the IP addresses of the machine. A conflict arises if an application
that does not use the HTTP Server API has previously bound to that combination of IP address and port. The IP
Listen List allows WCF services to
coexist with applications that use a port for some of the IP addresses of the machine. If the IP Listen List contains any entries, the
HTTP Server API only binds to those IP addresses that the list specifies. Modifying the IP Listen List requires administrative
1. Virtual hosting to serve many Web sites using one IP address.
2. Large file support to be able to serve files whose size is greater than 2 GB on 32 bit OS.
3. Bandwidth throttling to limit the speed of responses in order to not saturate the network and to be able to serve more clients.
4. Server-side scripting to generate dynamic Web pages, still keeping web server.
8.2 WORKING ON HTTP SERVER
Step 1st. First we check the http server is installing or not.
Http server installed already so no need to install it.
Step 2nd. Then we open the configuration file of http server.
Command: vim /etc/httpd/conf/httpd.conf
2.2 This is httpd server configuration file.
This is also Httpd server configuration file.
Step 3rd. Now we have to do some changes in the last page of configuration file.
We give our system IP address.
1. Change the Document Root.
2. In server name we give system’s hostname.
3. Now save this file and came out.
Step 4th. Now we create a html file using vim command on the path of /var/www/html/index.html.
Command: vim //var/www/html/index.html
2.5 Html file created successfully.
Step 5th. Now we restart service httpd.
Service httpd restarted successfully.
Step 6th. Now for running our html file we use elinks command.
Command: elinks //:localhost.localdomain
Working on the project was good experience. I understand the importance of Planning and designing as a part
of Linux server. But it’s very difficult to complete the program for single person. I complete this project with
Developing the project has helped us some experience on real-time development Procedures and the Linux