我在跑步阿帕奇2 2.4.10
在 debian docker 容器中使用以下 docker-compose 文件:
version: '3.8'
services:
apache2-php:
container_name: apache2-php-container
image: apache2-php-image
build:
context: ./docker/apache2
ports:
- "8082:80"
volumes:
- ./docker/apache2/index.php:/var/www/index.php
与此网站。
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName localhost
ServerAlias localhost
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
它启动并运行良好,但由于某种原因,日志被写入 stdout/stderr,而不是上面指定的文件。我还看到:
$ ls -la /var/log/apache2
total 8
drwxrwxrwx 2 www-data www-data 4096 Dec 29 2018 .
drwxr-xr-x 1 root root 4096 Dec 29 2018 ..
lrwxrwxrwx 1 www-data www-data 11 Dec 29 2018 access.log -> /dev/stdout
lrwxrwxrwx 1 www-data www-data 11 Dec 29 2018 error.log -> /dev/stderr
lrwxrwxrwx 1 www-data www-data 11 Dec 29 2018 other_vhosts_access.log -> /dev/stdout
我是否需要在我的网站中添加一些选项来强制 apache2 写入实际文件而不是 stdout/stderr?
答案1
由于某些原因,这些是指向 stdout 和 stderr 设备文件的符号链接。要使 Apache 写入实际文件,您只需删除符号链接并重新启动 Apache:
sudo rm /var/log/apache2/{access,error,other_vhosts_access}.log
sudo systemctl restart apache2