Thursday, August 10, 2023

INSTALL AND CONFIGURE HTTPD

INSTALL AND CONFIGURE HTTPD, ENABLE PUT METHOD:

 

Here we will see how to install HTTPD(apache server) and enable PUT Method for curl to upload file.

IN this doc we are installing  linux server my server is Linux OEL 7

[root@server ~]# cat /etc/os-release

NOW, we are connecting to root user to install HTTPD

Su - root

yum install httpd ( it will download and install httpd)

systemctl enable httpd (it will enable httpd)

systemctl start httpd (it will start httpd)

check the status of server

 

 

Now check with your  URL http://IP or Hostname

e.g. http://192.168.50.90

 

NOTE : to access the http server from different server we need to enable a port 80

List out the port which are open in my server

firewall-cmd --list-all

First iam adding a port in my server then need to restart firewall for reflect of my port

 

firewall-cmd --add-port=80/tcp –permanent

firewall-cmd –reload

firewall-cmd --list-all  

 

Creating a initial file basic index.html page

When we install httpd it will create html output directory in /var/www/html , iam creating my index.html file under /var/www/html because when apache trying to open page it look under html directory

Just copy paste below index.html file body  and save it.

·       Create index.html file

Cd /var/www/html

Vi index.html

Add entries

<html>

<head>

<title>Welcome to my test site!</title>

</head>

<body>

This site is for testing purposes only

</body>

</html>

 

Now check with your URL it should give a index page which we created

Here we completed the installation of HTTPD ( apache) server,

Now, I am starting to enable put method for curl to upload files in my server

 

Here First iam creating a password file for user apache

·       Create password file

htpasswd -c /home/html/.htpasswd apache

when we run a htpasswd it will ask promt two times for password, please make sure to keep this password save as it require when we upload a file with curl

I am creating my password file I location  /home/html you can create any location but make sure this password file location will b update in httpd configuration file

Which will see in below steps

Here we are  doing changes in httpd configuration file please make according to your environment in below lines

·       Make changes in httpd configuration file –

/etc/httpd/conf

Vi httpd.conf

 

1)       

#

# Deny access to the entirety of your server's filesystem. You must

# explicitly permit access to web content directories in other

# <Directory> blocks below.

#

<Directory />

    AllowOverride none

    Require all denied

</Directory>

 

2)

 

#

# Relax access to content within /var/www.

#

<Directory "/var/www">

    AllowOverride None

    # Allow open access:

    Require all granted

</Directory>

 

3)

Enable DAV

 

    #

    # Controls who can get stuff from this server.

    #

   #Require all granted

        Dav On

        AuthType Basic

        AuthUserFile "/home/html /.htpasswd"

        AuthName "Staging Area"

        Require valid-user

 

</Directory>

 

4)

# The following lines prevent .htaccess and .htpasswd files from being

# viewed by Web clients.

#

<Files ".ht*">

    Require all denied

</Files>

 

5)

 

Add –

    #

    MIMEMagicFile conf/magic

</IfModule>

 

<IfModule mod_dav_fs.c>

    # Location of the WebDAV lock database.

    DAVLockDB /var/lib/dav/lockdb

</IfModule>

 

 

Give apache user permission

 

·       Give permission :

Apache permission to /var/www/html and /var/lib/dav

Chown apache:apache /var/www/html

Chown apache:apache /var/lib/dav

 

Here I am setting  SELINUX to permissive after setting this it will required boot server for reflect this is important if not your see a permission error

·       Make  SELINUX = permissive in /etc/selinux config file

SELINUX=permissive

 

Now restart the httpd and run the curl command

·       Bounce httpd

Systemctl restart httpd

·       Now run curl command

curl --user apache:XXXX  --upload-file filename   http://HOSTIP

note : make sure credential must b correct which create is htpasswd file