tl;dr Edit /usr/syno/etc/synoservice.d/httpd-user.cfg
to look like:
{
"init_job_map":{"upstart":["httpd-user"]},
"user_controllable":"no",
"mtu_sensitive":"yes",
"auto_start":"no"
}
Then edit the stop on runlevel
to be [0123456]
in /etc/init/httpd-user.conf
:
Syno-Server> cat /etc/init/httpd-user.conf
description "start httpd-user daemon"
author "Development Infrastructure Team"
console log
reload signal SIGUSR1
start on syno.share.ready and syno.network.ready
stop on runlevel [0123456]
...
... then reboot.
Background infrormation
The answer given by Backslash36 is not the easiest solution and it may also be more difficult to maintain. Here, I give a solution that also doesn't involve starting webstation
, which most other solutions demand. Note, for updated documentation see here, which gives a lot of info in general about the synology systems.
It is important to note that the new DSM (> 5.x) use upstart
now, so much of the previous documentation is not correct. There are two httpd
jobs which run by default on the synology machines:
httpd-sys
: serves the administration page(s) and is located on 5000
/5001
by default.
httpd-user
: this, somewhat confusingly, always runs even if the webstation
program is not enabled.
If webstation
:
- is enabled: then this program serves the user webpages.
- is not enabled: then this program sets
/usr/syno/synoman/phpsrc/web
as its DocumentRoot
(/usr/syno/synoman/phpsrc/web/index.cgi -> /usr/syno/synoman/webman/index.cgi
), meaning that a call to http://address.of.my.dsm
will call the index.cgi
file. This cgi
file is what drives the redirect to 5000
(or whatever you have set the admin_port
to be).
From the command line, you can check what the [secure_]admin_port
is set to:
Syno-Server> get_key_value /etc/synoinfo.conf admin_port
5184
Syno-Server> get_key_value /etc/synoinfo.conf secure_admin_port
5185
where I have set mine differently.
Ok, now to the solution. The best solution is simply to stop the httpd-user
daemon from starting. This is presumably what you want anyways (e.g. to start another server like `nginx' in a docker). To do this, edit the relevant upstart configuration file:
Syno-Server> cat /usr/syno/etc/synoservice.d/httpd-user.cfg
{
"init_job_map":{"upstart":["httpd-user"]},
"user_controllable":"no",
"mtu_sensitive":"yes",
"auto_start":"no"
}
so that the "auto_start"
entry is "no"
(as it is above). It will presumably be "yes"
on your machine and by default. Then edit the stop on runlevel
to be [0123456]
in /etc/init/httpd-user.conf
:
Syno-Server> cat /etc/init/httpd-user.conf
description "start httpd-user daemon"
author "Development Infrastructure Team"
console log
reload signal SIGUSR1
start on syno.share.ready and syno.network.ready
stop on runlevel [0123456]
...
This last step is to ensure that the httpd-user
service does actually start, but then automatically stops. This is because there are otherwise a number of services that depend upon it actually starting. Reboot your machine and you will now see that nothing is listening (or forwarding) on Port 80.
httpd-user
service stops right after starting ? Services that depend on it may actually need it to be up to do business on their own – Lubet