Configuring Apache on Debian

3 min


Apache

This article can be seen as a guide to setting up Apache on the Debian webserver. We will set up the web server VPS, running a Debian distribution.

Installing Apache

Apache is the software that implements the function of the webserver. To install Apache with the following command:

# apt install apache2

Installing Apache

Installing Apache

In addition to Apache, you need to install web browser because we need to check the work of the webserver:

# apt install w3m

After the installation of the browser, enter the following command:

# w3m 127.0.0.1

You should see the page shown below.

Installing Apache

It works!

To exit the browser, press q and then enter y to confirm the exit.

Setup Debian webserver

After installation of the web server Debian, you can start setting it up. The web server rarely used to host one site. Most likely, sites will a few. Further, it will be shown how to create two virtual hosts example1.com and example2.com. Not to bother with DNS settings (a topic for another article), add to /etc/hosts line:

127.0.0.1 www.example1.com 
27.0.0.1 www.example2.com

Create user hosting, in your home directory which will contain files for both sites:

# adduser hosting

Setup Debian Web Server

Create user

Log in as this user:

# su hosting

In the user’s home directory, create the following structure:

cd ~ 
mkdir www 
mkdir www/example1 
cd example1 
mkdir htdocs 
mkdir cgi-bin 
mkdir logs 
cd ~ 
cp-R www/www example1/example2 
exit

We create a directory of the web server in the subdirectory for each site. Each of them in turn, we create the directories htdocs, cgi-bin, and logs. The first will contain the files from a particular site, the second CGI applications, and the third logs. We now proceed directly to configuring the webserver. Let’s start with the ports.conf:

# nano /etc/apache2/ports.conf

It should look as shown in the illustration below. The Directive NameVirtualHost *:80 is necessary, on the standard port 80, you could use virtual nodes, which we define next.

Port

The file /etc/apache2/ports.conf

Press Ctrl + O and then Ctrl + X to save and exit the editor.

Go to the directory sites-available. It is necessary to create two config configuration for each of our virtual nodes:

# cd /etc/apache2/sites-available
# nano example1.conf 
# nano example2.conf

The following is the configuration for the first node. For the second it will be the same, different is only the path (instead of X enter the node number is 1 or 2):

<VirtualHost *:80> 
ServerAdmin hosting@localhost 
ServerName www.exampleX.com 
ServerAlias exampleX.com 
# The path to the index file 
DirectoryIndex index.html 
DocumentRoot /home/hosting/www/exampleX/htdocs/ 
# Path to CGI 
ScriptAlias /cgi-bin/ /home/hosting/www/exampleX/cgi-bin 
<Location /cgi-bin> 
Options +ExecCGI 
</Location> 
# Path to log files 
ErrorLog /home/hosting/www/exampleX/logs/error.log 
CustomLog /home/hosting/www/exampleX/logs/access.log combined 
</VirtualHost>

Next, you need to create index files for each site to test their performance:

su hosting 
cd /home/hosting/www 
echo "example1.com works" > example1/htdocs/index.html 
echo "example2.com works" > example2/htdocs/index.html 
exit

We have to activate the created virtual nodes and restarted the webserver. To activate the nodes necessary to create the link to config from the directory sites-available in the catalog sites-enabled:

# cd /etc/apache2/sites-available 
# ln-s example1.conf /etc/apache2/sites-enabled/example1.conf 
# ln-s example2.conf /etc/apache2/sites-enabled/example2.conf

Left to restart Apache:

# systemctl restart apache2.service

Connect to the first node:

# w3m www.example1.com

If you did everything correctly, you should see the index file for your first site. Similarly, it should work for the second.

Example

First opened 🙂

That’s about it. Configure Apache virtual host and complete.


Like it? Share with your friends!

What's Your Reaction?

cute cute
240
cute
lol lol
60
lol
love love
30
love
scary scary
240
scary
hate hate
90
hate
geeky geeky
120
geeky
omg omg
270
omg
CmsDaddy

Hello Guys, Here we write about ultimate guides about content management system (CMS) and other software such as WordPress, Joomla, Drupal, Oxwall, Skadate, Prestashop, Magento, CSS, HTML, Linux, CentOS, Ubuntu, Windows, macOS, Android, iOS, iPadOS, etc...

0 Comments

Your email address will not be published. Required fields are marked *

Choose A Format
Story
Formatted Text with Embeds and Visuals
Poll
Voting to make decisions or determine opinions
List
The Classic Internet Listicles
Personality quiz
Series of questions that intends to reveal something about the personality
Trivia quiz
Series of questions with right and wrong answers that intends to check knowledge
Ranked List
Upvote or downvote to decide the best list item
Open List
Submit your own item and vote up for the best submission
Countdown
The Classic Internet Countdowns
Video
Youtube and Vimeo Embeds