Я не могу способный перезапустить apache2 сервис. Я выполняю эту команду apache2ctl configtest
и это ниже ошибки это показывает:
apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/php7.0.load: Cannot load /usr/lib/apache2/modules/libphp7.0.so into server: /usr/lib/apache2/modules/libphp7.0.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
когда я выполняюсь, apache2 сервис запускают команду, которую он показывает этому ниже ошибки:
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: failed (Result: exit-code) since Sat 2018-10-27 21:39:15 IST; 14s ago
Process: 24290 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
Main PID: 19188 (code=exited, status=0/SUCCESS)
Oct 27 21:39:15 abc systemd[1]: Starting The Apache HTTP Server...
Oct 27 21:39:15 abc apachectl[24290]: apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error
Oct 27 21:39:15 abc apachectl[24290]: Action 'start' failed.
Oct 27 21:39:15 abc apachectl[24290]: The Apache error log may have more information.
Oct 27 21:39:15 abc systemd[1]: apache2.service: Control process exited, code=exited status=1
Oct 27 21:39:15 abc systemd[1]: apache2.service: Failed with result 'exit-code'.
Oct 27 21:39:15 abc systemd[1]: Failed to start The Apache HTTP Server.
Как решить эту ошибку и выполнить apache2 успешно?
Пожалуйста, помогите мне.
Спасибо.
Извинения за то, что не были спрошены специфические особенности перед рукой, но комментарием к этому и я могу попытаться обновить этот ответ, чтобы быть более конкретным.
Ошибка довольно очевидна. Apache имеет структуру для загрузки модулей, присоединенных к сервису. На Ubuntu существует 3 важных файла для каждого модуля. Давайте посмотрим на mpm_prefork модуль, который Вы должны, вероятно, иметь из поля. В/etc/apache2/mods-enabled/Вы найдете mpm_prefork.load и mpm_prefork.conf файл.
Считайте тех, которые имеют vi или нано как так nano /etc/apache2/mods-enabled/mpm_prefork.load
В здесь, Вы будете видеть, что это ищет сопутствующий названный двоичный файл /usr/lib/apache2/modules/mod_mpm_prefork.so
. Заметьте, как путь кажется подобным ошибке, которую Вы получаете?
Таким образом в Вашем случае у Вас, кажется, есть php7.0.load файл, который ищет /usr/lib/apache2/modules/libphp7.0.so
. Необходимо надеяться видеть, что файл действительно там или не путем списка того каталога с ls /usr/lib/apache2/modules/
Это там?
В противном случае затем я рекомендую пытаться переустановить php, который не был бы худшей идеей, так как php7.0 будет устаревшим скоро так или иначе (3 декабря 2018, чтобы быть точным).
Так выполняет следующее:
dpkg --get-selections | grep php* // list all php packages installed
sudo apt remove php7.0 // but replace php7.0 with whatever you installed
sudo apt update
sudo apt install php libapache2-mod-php
В моем случае это произошло из-за обновления php, но провело задним числом конфигурацию. Попробуйте следующие команды
a2dismod php7.0
mv /etc/apache2/mods-available/php7.0.conf /etc/apache2/mods-available/php7.2.conf
mv /etc/apache2/mods-available/php7.0.load /etc/apache2/mods-available/php7.2.load
vim /etc/apache2/mods-available/php7.2.load
a2enmod php7.2
service apache2 start
измените содержание с php7.2. Проверьте свою php версию и замену правильно. Команды перемещения не важны, но хороши для синхронизации с именем версии.