Я попал в аналогичную ситуацию и не могу найти правильного решения.
Вот мой пример использования:
Каждый сайт, который я размещаю на моем ноутбуке, настраивается с помощью файла с именем 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 запускался при загрузке?
Спасибо!
Я уже пробовал это решение , но безрезультатно. Мне бы очень хотелось сохранить структуру папок такой, какая она есть.
У меня была та же проблема
Ubuntu 20.04 работает с libphp7.4.so, а apache2 работает с libphp7.2.so поэтому, чтобы исправить это, вам нужно изменить конфигурацию apache2, и вот как я это сделал:
1- вы можете проверить эту проблему, протестировав apache и написав: apache2ctl configtest
Выходное сообщение:
apache2: синтаксическая ошибка в строке 146 файла /etc/apache2/apache2.conf: синтаксическая ошибка в строке 3 файла /etc/apache2/mods-enabled/php7.2.load: невозможно загрузить /usr/lib/apache2/modules /libphp7.2.so на сервер: /usr/lib/apache2/modules/libphp7.2.so: невозможно открыть общий объектный файл: нет такого файла или каталога Не удалось выполнить действие «configtest». В журнале ошибок Apache может быть больше информации.
2- открыть файл php7.2.load с помощью gedit /etc/apache2/mods-enabled/php7.2.load
вы можете увидеть
LoadModule php7_module /usr/lib/apache2/modules/libphp7.2.so
3- перейдите в /usr/lib/apache2/modules/
и проверьте версия libphp от ls
, это будет libphp7.4.so
4- вернуться к файлу и изменить версию:
LoadModule php7_module /usr/lib/apache2/modules/libphp7.4.so
сохраните его и перезапустите apache2
systemctl start apache2.service
проверьте статус:
systemctl status apache2.service
Вот и все :)