apache2: fix service start fail

reproduce steps:
1. boot up target
2. scp apache2-2.4.41-r0.1.aarch64.rpm on target
3. rpm -i apache2-2.4.41-r0.1.aarch64.rpm
4. systemctl status apache2

Error:
httpd[7767]: (2)No such file or directory: AH02291: Cannot access directory '/var/log/apache2/' for main error log

with the old way, /var/log/apache2/ is created by service
systemd-tmpfiles-setup during boot, so only works when apache2
already installed before boot, in above scenario,
/var/log/apache2/ will not created. fix by creating it in the
service file. similar fix for sysV system

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Changqing Li
2020-05-14 16:03:56 +08:00
committed by Khem Raj
parent 3370941670
commit e789c3837c
5 changed files with 9 additions and 13 deletions
@@ -1,2 +0,0 @@
d /var/run/apache2 0755 root root -
d /var/log/apache2 0755 root root -
@@ -5,6 +5,10 @@ After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
Environment=LANG=C
ExecStartPre=mkdir -p /var/log/apache2
ExecStartPre=mkdir -p /var/run/apache2
ExecStartPre=chmod -R 0755 /var/log/apache2
ExecStartPre=chmod -R 0755 /var/run/apache2
ExecStart=@SBINDIR@/httpd -DFOREGROUND -D SSL -D PHP5 -k start
ExecStop=@BASE_BINDIR@/kill -WINCH ${MAINPID}
KillSignal=SIGCONT
@@ -97,6 +97,11 @@ do_start()
return 1
fi
mkdir -p /var/log/apache2
chmod -R 0755 /var/log/apache2
mkdir -p /var/run/apache2
chmod -R 0755 /var/run/apache2
if apache_conftest ; then
$APACHECTL start
apache_wait_start $?
@@ -1,3 +0,0 @@
# <type> <owner> <group> <mode> <path> <linksource>
d root root 0755 /var/run/apache2 none
d root root 0755 /var/log/apache2 none