Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Apache2 404

2 views
Skip to first unread message

ldmk...@yahoo.com

unread,
May 20, 2022, 12:50:05 PM5/20/22
to
I am having a problem with Apache2.  I have set a new configuration and have three html pages defined.  The inital html (index.html) displays fine on my laptop on my home network; however, when I attemp to go to the second page I get 404 not found on this server.  If I use localhost on my linux machine the second page diplays in firefox as "file:///. . .
I have done the appropriate a2ensite and a2dissite commands.  I am new at Linux so any advice is appreciated.  If there are other files that you need to look at, let me know.

Thanks,     Larry

This is /etc/apache2/apache2.conf
    
# This is the main Apache server configuration file.  It contains theConfiguration file /etc/apache2Configuration file /etc/apache2/sites/available/ldmdomain.info.confConfiguration file /etc/apache2/sites/available/ldmdomain.info.confConfiguration file /etc/apache2/sites/available/ldmdomain.info.conf/sites/available/ldmdomain.info.conf
# configuration directives that give the server its instructions.Configuration file /etc/apache2/sites/Configuration file /etc/apache2/sites/available/ldmdomain.info.confavailable/ldmdomain.info.conf
# See http://httpd.apache.org/docs/2.4/ for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specificConfigurConfiguration file /etc/apache2/sites/available/ldmdomain.info.confConfiguration file /etc/apache2/sites/available/ldmdomain.info.confConfiguration file /etc/apache2/sites/available/ldmdomain.info.confation file /Configuration file /etc/apache2/sites/available/ldmdomain.info.confetc/apache2/sites/available/ldmdomain.info.conf
# hints.
#
#
# Summary of how the Apache 2 configuration works in Debian:
# The Apache 2 web server configuration in Debian is quite different to
# upstream's suggested way to configure the web server. This is because Debian's
# default Apache2 installation attempts to make adding and removing modules,
# virtual hosts, and extra configuration directives as flexible as possible, in
# order to make automating the changes and administering the server as easy as
# possible.

# It is split into several files forming the configuration hierarchy outlined
# below, all located in the /etc/apache2/ directory:
#
#    /etc/apache2/Configuration file /etc/apache2/sites/available/ldmdomain.info.conf
#    |-- apache2.conf
#    |    `--  ports.conf
#    |-- mods-enabled
#    |    |-- *.load
#    |    `-- *.conf
#    |-- conf-enabled
#    |    `-- *.conf
#     `-- sites-enabled
#         `-- *.conf
#
#
# * apache2.conf is the main configuration file (this file). It puts the pieces
#   together by including all remaining configuration files when starting up the
#   web server.
#
# * ports.conf is always included from the main configuration file. It isConfiguration file /etc/apache2/sites/available/ldmdomain.info.conf
#   supposed to determine listening ports for incoming connections which can be
#   customized anytime.
#
# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
#   directories contain particular configuration snippets which manage modules,
#   global configuration fragments, or virtual host configurations,
#   respectively.
#
#   They are activated by symlinking available configuration files from their
#   respective *-available/ counterparts. These should be managed by using our
#   helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See
#   their respective man pages for detailed information.
#
# * The binary is called apache2. Due to the use of environment variables, inConfiguration file /etc/apache2/sites/available/ldmdomain.info.confConfiguration file /etc/apache2/sites/available/ldmdomain.info.conf
#   the default configuration, apache2 needs to be started/stopped with
#   /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
#   work with the default configuration.


# Global configuration
#

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# NOTE!  If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the Mutex documentation (available
# at <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
#
#ServerRoot "/etc/apache2"

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
#Mutex file:${APACHE_LOCK_DIR} default
Configuration file /etc/apache2/sites/available/ldmdomain.info.conf
#
# The directory where shm and other runtime files will be stored.
#

DefaultRuntimeDir ${APACHE_RUN_DIR}

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}

#
# Timeout: The number of secondsConfiguration file /etc/apache2/sites/available/ldmdomain.info.conf before receives and sends time out.
#Configuration file /etc/apache2/sites/available/ldmdomain.info.conf
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5


# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

#
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
#
HostnameLookups Off

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#Configuration file /etc/apache2/sites/available/ldmdomain.info.conf
ErrorLog ${APACHE_LOG_DIR}/error.log

#
# LogLevel: Control the severity of messages logged to the error_log.
# Available values: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the log level for particular modules, e.g.
# "LogLevel info ssl:warn"
#
LogLevel warn

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

# Include list of ports to listen on
Include ports.conf


# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<VirtualHost *:80>
DocumentRoot /var/www/ldmdomain.info/html
<Directory /var/www/ldmdomain.info/html>
       Options Indexes FollowSymLinks
       AllowOverride All
       Order deny,Allow
       Allow from all
       Require all granted
</Directory>
</VirtualHost>
   
#<Directory /srv/>
#    Options Indexes FollowSymLinks
#    AllowOverride None
#    Require all granted
#</Directory>




# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#
AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>


#
# The following directives define some format nicknames for use with
# a CustomLog directive.
#
# These deviate from the Common Log Format definitions in that they use %O
# (the actual bytes sent including headers) instead of %b (the size of the
# requested file), because the latter makes it impossible to detect partial
# requests.
#
# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended.
# Use mod_remoteip instead.
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
---------------------------------------------------------------------------------------------

Entry in /etc/apache2/conf-enabled/servername.conf
Configuration file /etc/apache2/sites/available/ldmdomain.info.conf
    ServerName ldmdomain.info
-----------------------------------------------------------------------------------------------
Configuration file /etc/apache2/sites/available/ldmdomain.info.conf

<VirtualHost *:80>
ServerAdmin ad...@ldmdomain.info
ServerName ldmdomain.info
ServerAlias www.ldmdomain.info
DocumentRoot /var/www/ldmdomain.info/html
  <Directory /var/www/ldmdomain.info/html>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
----------------------------------------------------------------------------------------------------

Dan Ritter

unread,
May 20, 2022, 1:40:05 PM5/20/22
to
ldmk...@yahoo.com wrote:
> I am having a problem with Apache2.  I have set a new configuration and have three html pages defined.  The inital html (index.html) displays fine on my laptop on my home network; however, when I attemp to go to the second page I get 404 not found on this server.  If I use localhost on my linux machine the second page diplays in firefox as "file:///. . .I have done the appropriate a2ensite and a2dissite commands.  I am new at Linux so any advice is appreciated.  If there are other files that you need to look at, let me know.
> Thanks,     Larry
>


> <VirtualHost *:80>
> DocumentRoot /var/www/ldmdomain.info/html
> <Directory /var/www/ldmdomain.info/html>
>        Options Indexes FollowSymLinks
>        AllowOverride All
>        Order deny,Allow
>        Allow from all
>        Require all granted
> </Directory>
> </VirtualHost>

This should be in /etc/apache2/sites-available/ something, and
then linked to sites-enabled/

> # Include the virtual host configurations:
> IncludeOptional sites-enabled/*.conf

This is what allows that.

>Configuration file /etc/apache2/sites/available/ldmdomain.info.conf

It's sites-available and sites-enabled, not sites/available.

> ServerName ldmdomain.info

I can't ping or whois this, so that's a big problem. Register a
domain and get DNS going for it, or this will not work outside
of your own local network.

Inside your local network, you will need an A or AAAA and/or
CNAME record pointing to ldmdomain.info and optionally (but you
should) www.ldmdomain.info

> <VirtualHost *:80>
> ServerAdmin ad...@ldmdomain.info
> ServerName ldmdomain.info
> ServerAlias www.ldmdomain.info
> DocumentRoot /var/www/ldmdomain.info/html
>   <Directory /var/www/ldmdomain.info/html>
>       Options -Indexes +FollowSymLinks
>       AllowOverride All
>   </Directory>
> ErrorLog ${APACHE_LOG_DIR}/error.log
> CustomLog ${APACHE_LOG_DIR}/access.log combined
> </VirtualHost>

That all looks OK.

-dsr-

IL Ka

unread,
May 20, 2022, 9:50:05 PM5/20/22
to
How exactly do you go to the second page? Is it a hyperlink in HTML or what? If so, what is url?
file:// protocol will not bring you to the server.

ldmk...@yahoo.com

unread,
May 21, 2022, 11:10:05 AM5/21/22
to
My link to the second page is via a url  "var/www/ldmdomain.info/html/Picture1.html".

Also, this is intended only for my home network.

And I have no idea what this means:
    
Inside your local network, you will need an A or AAAA and/or
CNAME record pointing to ldmdomain.info and optionally (but you
should) www.ldmdomain.info


IL Ka

unread,
May 21, 2022, 11:20:05 AM5/21/22
to
My link to the second page is via a url  "var/www/ldmdomain.info/html/Picture1.html".

Dan Ritter

unread,
May 21, 2022, 7:40:05 PM5/21/22
to
ldmk...@yahoo.com wrote:
> My link to the second page is via a url  "var/www/ldmdomain.info/html/Picture1.html".
> Also, this is intended only for my home network.
> And I have no idea what this means:    Inside your local network, you will need an A or AAAA and/or
> CNAME record pointing to ldmdomain.info and optionally (but you
> should) www.ldmdomain.info


Computers using TCP/IP find each other by taking a name and
resolving it into an IP address, then making a request over the
network.

The name you keep telling us is www.ldmdomain.info

That name does not exist.

If you want it to exist for the world at large, you need to
lease the right to use it, get a DNS server to supply records,
and make sure that the DNS server knows what IP address to point
to at all times.

If you want to use this inside your home network and nowhere
else, you should not use ldmdomain.info. You should use the name
of your machine, which can be found with

hostname

And make sure that other machines on your network can find that
host; that could involve any of several different approaches.

-dsr-

ldmk...@yahoo.com

unread,
May 24, 2022, 3:30:05 PM5/24/22
to
I am still confused.  I have quadruple checked the .conf files, rechecked to step to create a virtual domain and still I get 404 when trying to access the second page of html. 

The instructions I had said allow web ports through the firewall.  It specifically said ufw which my system does not have.  Is there another firewall that might be running on my Debian 11 / Apache2 system?

Thanks,    Larry

Dan Ritter

unread,
May 24, 2022, 4:00:05 PM5/24/22
to
ldmk...@yahoo.com wrote:
> I am still confused.  I have quadruple checked the .conf files, rechecked to step to create a virtual domain and still I get 404 when trying to access the second page of html. 


Please give the complete URL to both the first and second page.


> The instructions I had said allow web ports through the firewall.  It specifically said ufw which my system does not have.  Is there another firewall that might be running on my Debian 11 / Apache2 system?

You only need to allow web ports through your firewall if you
have a firewall between your web server and your browser.

If there is a firewall installed on your machine, this command:

sudo nft list tables

will either not be installed or come back with a blank, and this
command:

sudo iptables -L -n

will show
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Let us know if you get anything else.


> The name you keep telling us is www.ldmdomain.info
>
> That name does not exist.
>

IL Ka

unread,
May 24, 2022, 4:10:06 PM5/24/22
to
On Tue, May 24, 2022 at 10:27 PM ldmk...@yahoo.com <ldmk...@yahoo.com> wrote:
I am still confused.  I have quadruple checked the .conf files, rechecked to step to create a virtual domain and still I get 404 when trying to access the second page of html. 

1. Which URL do you see in your browser bar exactly?
2. What messages do you see in access.log and error.log in /var/log/apache2/ ?
 


The instructions I had said allow web ports through the firewall.  It specifically said ufw which my system does not have.  Is there another firewall that might be running on my Debian 11 / Apache2 system?

Firewall has nothing to do with 404 in most cases: it either blocks traffic or permits it and it doesn't change error codes.
You either do not have a firewall at all or have nftables or iptables (you can check its state with ``iptables -L -v -n``). But again: this is not a firewall problem.
 
 

ldmk...@yahoo.com

unread,
May 25, 2022, 11:40:05 AM5/25/22
to

The command
    sudo nft list tables
returned a null response

The command
   sudo iptables -L -n
returned reponse was exactly as predicted.

IL Ka

unread,
May 25, 2022, 12:00:06 PM5/25/22
to
What about 

to...@tuxteam.de

unread,
May 25, 2022, 12:10:05 PM5/25/22
to
On Wed, May 25, 2022 at 03:39:18PM +0000, ldmk...@yahoo.com wrote:
>
> The command
>     sudo nft list tablesreturned a null response
> The command   sudo iptables -L -nreturned reponse was exactly as predicted.
> On Tuesday, May 24, 2022, 04:02:12 PM EDT, IL Ka <kazakev...@gmail.com> wrote:

If you are seeing a 404, the firewall isn't the problem.

The 404 is a response from the web server. This means
that the network paths from your browser to the server
and back are fine.

The 404 means that the server can't find a resource
corresponding to the URL that has been requested.

Cheers
--
t
signature.asc

Dan Ritter

unread,
May 25, 2022, 1:10:05 PM5/25/22
to
ldmk...@yahoo.com wrote:
>
> The command
>     sudo nft list tablesreturned a null response
> The command   sudo iptables -L -nreturned reponse was exactly as predicted.

Then there is no firewall operating on your server, and you can
forget about it as a class of problems inside your network.

-dsr-

ldmk...@yahoo.com

unread,
May 25, 2022, 2:30:05 PM5/25/22
to
Thanks for the verification.  However, I still have the 404 problem and I have no clue where to look next.

to...@tuxteam.de

unread,
May 25, 2022, 3:00:05 PM5/25/22
to
On Wed, May 25, 2022 at 06:28:19PM +0000, ldmk...@yahoo.com wrote:
> Thanks for the verification.  However, I still have the 404 problem and I have no clue where to look next.

The firewall is a red herring anyway. It doesn't make
404s (it may make connection timeouts, or something
similar).

You still haven't told us whar URL exactly you are
trying to access when getting the 404 response.

We can't guess that.

Cheers
--
t
signature.asc

Greg Wooledge

unread,
May 25, 2022, 3:20:05 PM5/25/22
to
On Wed, May 25, 2022 at 06:28:19PM +0000, ldmk...@yahoo.com wrote:
> Thanks for the verification.  However, I still have the 404 problem and I have no clue where to look next.

****SIGH****

I am not sure you are helpable. Other people have already tried. I
am going to try *once*, and if that doesn't work, I'll give up.

You need to provide details. At a bare minimum, you should have started
out with the basic details to describe your issue -- what you did, and
what you got as a result. You also need to answer the specific questions
that people ask you.

You have already been asked this question, and I am asking it again
right now. You will answer it, or you will not receive any help, because
it is NOT POSSIBLE to help you without the answer to this question:

==> What is the URL that you used, when you got the 404 error? <==

Beyond that, I would ask you to use some common sense and describe the
basics of your setup.

1) Are the web browser and the Apache web server running on the same
machine?

2) If they're on different machines, how are those two machines connected
to each other? For example, are they both on the same local area
network, with ethernet cables connected to a common router/hub? Or
is one of the machines on the Internet?

3) What operating system and version is the web server's machine running?
What version of Apache is installed on it?

4) Paste the actual virtual machine configuration file that you're using,
and indicate its exact filename. One of the ways to do this is to
open a terminal, and type "cat /etc/apache2/whatever" at the shell
prompt. Then copy that entire terminal session, including the shell
prompt, and the command you typed, and the output of that command,
into the body of your email. Which you are composing in a text editor
in a terminal on a Unix-like system. Not web-mail. Not Windows,

5) What URL did you try to use in the web browser?

6) What error do you see in the web browser?

7) What error(s) do you see in Apache's log files?

That's just basic stuff. Common sense. Nobody should even have to ask
you for that.

Finally, here's one more question that I don't recall seeing asked yet,
but could be important:

8) How does the machine which runs the web browser resolve the domain name
that you used in your URL?

E.g. does the web browser read it from an /etc/hosts file, or the equivalent
on a non-Unix system? Do you have a local DNS nameserver which serves
this domain? Do you have absolutely no idea how it works, but your network
administrator said it would?

What happens if you try to ping the domain name from a command shell on
the web browser's machine?

ldmk...@yahoo.com

unread,
May 26, 2022, 10:50:05 AM5/26/22
to
I appreciate all of the help.  The problem was that I was using
in my href.  I changed this to
Picture1.html
and it works.

Thanks again.................

to...@tuxteam.de

unread,
May 26, 2022, 11:10:06 AM5/26/22
to
On Thu, May 26, 2022 at 02:45:12PM +0000, ldmk...@yahoo.com wrote:
> I appreciate all of the help.  The problem was that I was using
> /var/www/ldmdomain.info/html/Picture1.htmlin my href.  I changed this to
> Picture1.htmland it works.

Great.

So now you know that you Apache is looking at things from whatever
you set up as DocumentRoot in your config.

Things are, of course, much more complicated, with mod_rewrite and
aliases and all that, but you now have a start.

Cheers
--
t
signature.asc
0 new messages