15.1 Apache via remote

Hello all,

Briefly, I love Linux and OpenSuse. There are many reason I choose this instead of other distros.
I do not post often, usually can find someway to fix things. I also tend to not word things very well.
I am an instructor in 11 & 12 grade - information technology lab in Ohio USA
We do hardware and software, web design with html, php, js and MySQL/Maria ( we sneak in a little phpmyadmin ) in Kate/Kwrite, c/c++ with SDL/SDL2 in Kate/Kwrite, networking, graphics with Gimp and Blender, Basic Information Tech. We used to do plc controls and electronics but, times change.
I have used Suse in the lab and for my network since before I bought the Enterprise 9.0.
I put together the network that took care of our building for a number of years, knowing little of networking before I started.
I have a BSEET but at heart I am a farm boy.

Switching from 42.3 to 15.0 gave a couple of problems, some re-installs. I thought 15.1 seemed a little more settled but I am having a weird issue.
I have my student each using Apache for their web design portion and to make a portfolio.
On trying to install, we had 14 drives ( only since using different drives worked ) that it would not install on. It would crash at the partition, expert settings when we would try to delete all. A blue screen with red box telling an error and options.

Now with new drives and all systems installed, accessing each systems website remotely, via other machines in lab is not working.
Locally, on any machine, the site works fine: html, JS, Php, links, folders, etc.
Remotely, you can mainly, only get the sites main document ( index.html or php ) but nothing or very little else. It looks as though you might have been quickly redirected back to the root document ( htdocs/index.xxxx ) when you try to go into another folder although some folder are accessible though broken in various ways.

These systems all have the same hardware with the exception that some have nvidia 750 ti and the rest 1050 ti.
There have been a total of 25 installs all acting the same. ( on 14 different machines. We have drive trays so they can store / use their drives. 3 classes use the lab, my juniors -AM, seniors PM and an adult class - evening [they use windose])
these machine were in upgraded and in use all of last year and part of the previous.
Plasma desktop. USB - with live network install.

Each system can view the Internet with no issues.
Each system can view my system with no problems ( still 42.3 Apache 5.x.x as I have been too busy to upgrade yet myself )
From my 42.3 system, their sites are broken as well.

all ownership of htdocs ( -R ) is wwwrun:www ( their machines are behind my firewall and not Internet accessible, I am not concerned about intense security )
all permissions are ( 775 htdocs -R )
there is no firewall on any internal machines.
I have looked in the Apache error and access logs, there are no errors with debug level turned on.
The access log shows: get [path/] file name(s) 200 and the proper file size, the requesting IP, …
it simply does not show up in the requesting remote browser.
we primarily use Firefox ( 68.0.2 ) but neither chrome ( latest install ) or konquoror work.

You can maybe fill a thimble with the knowledge I have.
I have compared files and folders with ones that kind of work with ones that do not - nothing I can see.
I have resaved, renamed, all files in root ( no folders for images, etc ) - nothing.
If I find the way to do it, I want to down grade apache from 7.x.x back to what 15.0 would have had.
I plan on trying the “bad” drives with 15.0 since I used a live version and gparted to format some of those drives. ( some really do seem bad - hard to say how )
With 15.0 installed, I will see if the drive is alright and if Apache works well from there.
I have installed so many times over time, there are occasional things but not like this across the whole lab.

I do have a server installed at home with 15.1 minimal and Apache 7.2.5 but different hardware and Apache seems to work fine on it. ( I am going to do more testing on it too )
However my personal machine I did upgrade to 15.1 over the summer and Apache is “broken” on it also. If I look at my machine with my wife’s computer or with a phone or tablet, the site is there, partly, but broken.

The one exception so far has been a server install vs KDE Plasma, I really can’t see this being an issue either.
Since both these machines are at home, I plan to start looking for some difference.

Has anyone had anything similar?
something I can try / test / look for?

thanks in advance for your time and trouble.

mike

When you test for connectivity to a website (Apache is no exception),

You need to understand and describe how your websites are identified… Are you configuring each website bound to its own IP address? Or, are you using Host Headers and sharing an IP address?

Related to above, you have to be clear how you access the website, particularly from the same machine… By IP address? By Host Header? If by IP address, be sure you’re using a network address and not a localhost (127.x.y.z) address.

The above are defined in the Apache configuration, but generally on openSUSE if your setup is relatively simple (from your description maybe doesn’t apply to you), we recommend setting up using the YaST http server module, for awhile that wasn’t installed by default but I think it’s now installed automatically when you install the LAMP pattern.

Finally,
And only after you’ve set up the above correctly, you will need to open the necessary ports in your firewall. If you’re new to LEAP 15.1, then the firewall configuration is different than LEAP 42.3 and earlier… there is a new firewall configuration tool.

Depending on what you find you need to fix and if you have problems, post again.

TSU

Thanks for looking and the reply.
This is around my 14th year of doing this same set up for approx 20 students each year. It has always worked, until this time.
Apache is installed using LAMP.
Your right that you have to install yast2-httpd-server before you can launch Apache, under Network Services. I use Yast to launch Apache, the only changes are to: start now and start on boot.
There is no firewall active on any machine. ( verified by iptables -L and in Yast )
Permissions are set to 775 on the entire htdocs folder.
It does not seem to matter who or what group owns the folder.
Apache is set to listen on 127.x.x.x and on the machine’s ip. This IP is assigned by mac to each machine through DHCP.
Local: We can connect on each machine via 127.0.0.1 or localhost with seemly everything functioning correctly.
Remote: We can connect to each machine remotely via their private IP 192.168.x.y.
Remote: If there is an index.html or index.php present, the document will open. We can edit / alter - save the index page then re-fresh on remote machine to see the changes made in the document.
Remote: If index is not present, we get the error that the server is unavailable or that there is no index page. ( not an exact quote )
Remote: If we try to bring up a file that does not exist: blah.xyz, we get an error stating it is not present. ( not an exact quote )
Remote: images are broken. You are not able to enter most folders, however the odd one or more may open and with it’s index page, for no reason I can find. Permissions are the same on working and non-working alike.

Presently the only changes I can see is OpenSuse 15.1 from 15.0. Apache seems to be v 2.4.33 in both OpenSuse 15.0 and 15.1 repositories.
The hardware is the same from last year.
None seem very likely possibilities.
This is not a normal problem.
While I am not an expert, a normal set-up is not beyond me.
If it were not for being a problem across the entire lab, I’d think it was a joke.

mike

Correct me if I misunderstand your class setup…

Each student has his own workstation, running openSUSE.
Each workstation is assigned its own IP by DHCP an configured with an IP address by Reserved Lease (which detects the MAC address of the machine and then assigns the IP address associated with that MAC address).
Each machine is configured the following way…
The LAMP pattern is installed
yast2-http-server (The YaST webserver management tool) is installed
Only one website will be configured on each machine, and you intend to access the website by its IP address, not by name.

Interesting, in my test machine, the YaST HTTP server module doesn’t seem to work with Network Manager configured for managing networking… It only configured localhost (127.0.0.1). I had to switch over to Wicked network management, the the HTTP Server module appears to be fully functional.

The YaST HTTP server module Listen Ports and Addresses" tab should say that the webserver will Listen on “All Addresses”
Below that on the screen you will need to check the box “Open Port in Firewall” and once that has been done below that should display “Firewall port is open on all interfaces”

The above should enable basic HTML pages to be seen both locally and from a remote machine.
If you can’t see the default HTML test page, by connecting to that machine’s IP address, describe the address you’re connecting to in the web browser.

Once the above connectivity is working,
Back in the HTTP Server module you can click on the “Server Modules” tab and enable what you need, ie PHP, and anything else you need for the website you intend to serve.

TSU

Make sure you can ping addresses, such as 127.0.0.1, 192.168.178.2, and host names, such as localhost, erlangen, erlangen.fritz.box. Apache2 running on my machine works with any of these:

erlangen:~ # systemctl status apache2.service 
● apache2.service - The Apache Webserver
   Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-09-01 19:49:10 CEST; 1 day 18h ago
 Main PID: 870 (httpd-prefork)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
    Tasks: 10
   Memory: 25.1M
   CGroup: /system.slice/apache2.service
           ├─ 870 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>
           ├─ 932 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>
           ├─ 933 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>
           ├─ 935 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>
           ├─ 936 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>
           ├─ 937 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>
           ├─3308 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>
           ├─3345 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>
           ├─3360 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>
           └─3361 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2>

Sep 01 19:49:10 erlangen systemd[1]: Starting The Apache Webserver...
Sep 01 19:49:10 erlangen systemd[1]: Started The Apache Webserver.
erlangen:~ # 

You need to configure indexes:

erlangen:~ # cat /etc/apache2/conf.d/Albums.conf

# location of local albums
Alias "/Albums" "/home/Albums/jAlbums/"

# grant access 
<Directory "/home/Albums/jAlbums/">
    Require all granted
**     Options Indexes FollowSymLinks**
</Directory>
erlangen:~ #

TSU - your summery is basically correct and nearly a repeat of what I posted, I thought.
You are right that the network manager does cause issues and I did switch to Wicked.
I am certain, however, that connectivity is not the problem.
I can connect both locally and remotely to each of the lab machines, getting the default index.html page installed by Apache and any subsequent page created and saved as index.html by any of the users. So user permissions are not a problem since they can edit, save, create and delete in their htdocs folder.
Permissions are set as 775 which allows the index page to be see remotely as well as a php page to be executed remotely.

I just finished a installation with 15.0, setting up Apache and it works both locally and remotely like it should.

I am going to set up another minimal / server installation with 15.1 to make for certain that it works.
From there, if it works, I think I will do a very minimal KDE installation then slowly add the other packages we normally use and see if something breaks it.
I just can’t imagine what it could be.

mike

After I installed 15.0 server with LAMP and yast2-http-server - result: site works
I installed 15.1 server with LAMP and yast2-http-server - result: site broken
I installed 15.1 KDE with LAMP and yast2-http-server - result: site broken
I installed 15.0 KDE with LAMP and yast2-http-server - result: site works

( More explanation on works vs broken in previous posts )

I can ping, telnet and ssh into the machines.

I do not think it has anything to do with the hardware or the network.
It seems to be the same version of Apache according to the repos.
It could be something in 15.1 that does not like the hardware or network in some fashion.
It really feels more like permissions.

Still working to break it down.