Ubuntu 20.04 - Apache 无法在启动时启动

Ubuntu 20.04 - Apache 无法在启动时启动

我也遇到过类似的情况,但找不到合适的解决办法。

这是我的用例:

我在笔记本电脑上托管的每个网站都使用名为 www-example1.conf 的文件进行配置。此文件的位置是 /etc/apache2/sites-enabled/www-example1.conf

该文件的内容为:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName www-example1
        ServerAlias www.www-example1
        DocumentRoot /home/myuser/www/www-example1/public_html
        ErrorLog /home/myuser/www/www-example1/error.log
        CustomLog /home/myuser/www/www-example1/access.log combined
</VirtualHost>

apache 用户/组是 www-data。www-example1 文件夹归 myuser:www-data 所有。www-example1 文件夹具有 755 权限。此文件夹中有 error.log 和 access.log 文件,每个文件都具有 755 权限,归 myuser:www-data 所有。

问题是 apache 无法在系统启动时启动。

当我使用时sudo systemctl status apache2,结果是:

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2020-06-18 22:58:00 EEST; 12min ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 3044 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)

iun 18 22:58:00 SIA-PC apachectl[3067]: (2)No such file or directory: AH02291: Cannot access directory '/home/myuser/www/www-example1/' for error log of vhost defined at /etc/apache2/sites-enabled/www-example1.conf:1
iun 18 22:58:00 SIA-PC apachectl[3067]: AH00014: Configuration check failed
iun 18 22:58:00 SIA-PC apachectl[3044]: Action 'start' failed.
iun 18 22:58:00 SIA-PC apachectl[3044]: The Apache error log may have more information.
iun 18 22:58:00 SIA-PC systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
iun 18 22:58:00 SIA-PC systemd[1]: apache2.service: Failed with result 'exit-code'.
iun 18 22:58:00 SIA-PC systemd[1]: Failed to start The Apache HTTP Server.

如果我使用手动启动 apache sudo service apache2 start,则一切都正常。

我该怎么做才能使 apache 在启动时启动?

谢谢你!

我已经尝试过了此解决方案,但无济于事。我真的很想保持我的文件夹结构不变。

答案1

我有同样的问题

Ubuntu 20.04 适用于libphp7.4.so和 apache2 一起工作libphp7.2.so 所以要修复它你需要更改 apache2 的配置,这是我的做法:

1-您可以通过测试 apache 并写入来检查此问题:apache2ctl configtest

输出消息:

apache2:/etc/apache2/apache2.conf 第 146 行语法错误:/etc/apache2/mods-enabled/php7.2.load 第 3 行语法错误:无法将 /usr/lib/apache2/modules/libphp7.2.so 加载到服务器:/usr/lib/apache2/modules/libphp7.2.so:无法打开共享对象文件:没有此文件或目录操作“configtest”失败。Apache 错误日志可能包含更多信息。

2-打开文件php7.2.加载gedit /etc/apache2/mods-enabled/php7.2.load 可以看到

加载模块 php7_module /usr/lib/apache2/modules/libphp7.2.so

3- 转到/usr/lib/apache2/modules/并检查 libphp 的版本ls ,它将是libphp7.4.so

4-返回文件并更改版本:

加载模块 php7_module /usr/lib/apache2/modules/libphp7.4.so

保存并重启 apache2

systemctl start apache2.service

检查状态:

systemctl status apache2.service

就这样 :)

相关内容