11 сентября, 2020 11:58 дп
3 846 views
| Комментариев нет
Centos, Debian, LAMP Stack, RHEL, Ubuntu
Эта серия мануалов поможет вам предотвратить или устранить самые распространенные ошибки, которые возникают при работе с веб-сервером Apache.
Каждый мануал в этой серии включает описание распространенных ошибок Apache, связанных с конфигурацией, сетью, файловой системой или привилегиями.
Сообщение об ошибке «AH00526: Syntax error» возникает, когда в конфигурационных файлах Apache есть опечатки или неверно настроенные параметры. Это общая ошибка, которая может указывать на ряд базовых проблем.
Ошибку можно обнаружить с помощью команды apachectl configtest еще перед загрузкой нерабочей конфигурации. Ее также можно найти с помощью команд systemctl и journalctl. В последних двух случаях Apache не сможет работать из-за ошибки.
Если вы обнаружили ошибку с помощью apachectl, перейдите к разделу, посвященному apachectl, в мануале Устранение общих ошибок Apache. Далее мы расскажем, как использовать systemctl для устранения этой ошибки.
Устранение ошибки с помощью systemctl
Согласно инструкциям по устранению неполадок из мануала Устранение общих ошибок Apache, первым шагом при устранении ошибки AH00526 будет проверка состояния Apache с помощью systemctl. Сейчас нам важно понять, влияет ли ошибка на запущенный процесс и препятствует ли она запуску Apache.
В дистрибутивах Ubuntu и Debian выполните следующую команду, чтобы проверить статус Apache:
sudo systemctl status apache2.service -l --no-pager
В системах CentOS и Fedora для проверки статуса Apache используйте эту команду:
sudo systemctl status httpd.service -l --no-pager
Флаг -l выводит все содержимое строки (то есть содержимое длинных строк не будет заменено многоточием (…)). Флаг –no-pager выводит весь на экран весь лог, не вызывая при этом инструмент less, который показывает только фрагмент содержимого.
Если в файлах действительно обнаружена ошибка AH00526, вы должны получить примерно такой вывод:
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 Wed 2020-07-15 13:45:49 UTC; 1min 37s ago
. . .
Jul 15 13:45:49 f17f01056c5b systemd[1]: Starting The Apache HTTP Server...
Jul 15 13:45:49 f17f01056c5b apachectl[15860]: AH00526: Syntax error on line 2 of /etc/apache2/sites-enabled/000-default.conf:
Jul 15 13:45:49 f17f01056c5b apachectl[15860]: Invalid command 'SSSLCertificateFile', perhaps misspelled or defined by a module not included in the server configuration
Jul 15 13:45:49 f17f01056c5b apachectl[15860]: Action 'start' failed.
Jul 15 13:45:49 f17f01056c5b apachectl[15860]: The Apache error log may have more information.
Jul 15 13:45:49 f17f01056c5b systemd[1]: apache2.service: Control process exited, code=exited status=1
Jul 15 13:45:49 f17f01056c5b systemd[1]: apache2.service: Failed with result 'exit-code'.
Jul 15 13:45:49 f17f01056c5b systemd[1]: Failed to start The Apache HTTP Server.
Такой вывод подтвердит, что Apache не работает из-за синтаксической ошибки. В нашем случае ошибка вызвана лишним символом S в начале строки SSSLCertificateFile в файле /etc/apache2/sites-enabled/000-default.conf. Правильная директива – SSLCertificateFile. Чтобы устранить ошибку, вам нужно отредактировать файл и исправить имя директивы, после чего вы сможете запустить Apache.
Вывод systemctl в этом примере также содержит некоторые строки из лога systemd. Если в ваших выходных данных указывается, что определенная строка в вашем конфигурационном файле генерирует синтаксическую ошибку, вы можете пропустить команды journalctl и apachectl configtest. Вы можете перейти непосредственно к указанному файлу, проверить его и исправить ошибку, чтобы устранить AH00526.
Если ваш вывод не содержит информации о конкретном конфигурационном файле Apache, в котором есть ошибка, вам нужно будет изучить выходные данные journalctl из логов systemd. В следующем разделе мы покажем, как использовать journalctl для устранения ошибки AH00526.
Устранение ошибки с помощью journalctl
Если в выводе systemctl нет сведений о синтаксической ошибке AH00526, вы можете продолжить ее поиски с помощью команды journalctl, которая проверит записи логов systemd на наличие упоминаний Apache.
В системах на основе Ubuntu и Debian выполните следующую команду:
sudo journalctl -u apache2.service --since today --no-pager
В системах типа CentOS, Fedora и RedHat используйте эту команду:
sudo journalctl -u httpd.service --since today --no-pager
Флаг –since today ограничивает вывод записями, зарегистрированными с 00:00:00 текущего дня. Эта опция поможет ограничить объем записей, которые вам понадобится изучить при проверке ошибок.
Если в конфигурации Apache есть ошибка AH00526, в выводе команды journalctl вы найдете такие строки:
-- Logs begin at Tue 2019-11-05 21:26:44 UTC, end at Tue 2020-06-09 15:13:01 UTC. --
. . .
Jun 09 15:12:28 f17f01056c5b apachectl[3157]: AH00526: Syntax error on line 3 of /etc/apache2/sites-enabled/000-default.conf:
Jun 09 15:12:28 f17f01056c5b apachectl[3157]: Invalid command 'SSLCertificateFile', perhaps misspelled or defined by a module not included in the server configuration
. . .
Первая строка вывода – это и есть ошибка AH00526. Она является общей ошибкой, связанной с недопустимой директивой или опечаткой в конфигурации. В следующей строке вывода объясняется, что вызвало такую ошибку. В данном случае это директива SSLCertificateFile: она будет действительна только в том случае, если модуль ssl включен.
Если вы столкнулись с ошибкой AH00526, связанной с недопустимой директивой SSLCertificateFile, вы можете устранить ее, включив модуль ssl, а затем перезапустив Apache.
Для систем Ubuntu и Debian используйте такую команду, чтобы включить модуль:
sudo a2enmod ssl
sudo systemctl restart apache2.service
В системах CentOS и Fedora сначала установите пакет mod_ssl, а затем загрузите модуль, добавив его в каталог Apache /etc/httpd/conf.modules.d:
sudo yum install mod_ssl
echo "LoadModule ssl_module modules/mod_ssl.so" | sudo tee > /etc/httpd/conf.modules.d/00-ssl.conf
sudo systemctl restart httpd.service
После того как Apache обратится к модулю и вы перезапустите его с помощью соответствующей команды в зависимости от дистрибутива Linux, сервер запустится (если в конфигурации больше нет ошибок).
Если же это не единственная ошибка в конфигурации, Apache и systemctl status продолжат сообщать о них и пытаться объяснить, что препятствует запуску сервера.
В системах Ubuntu и Debian systemctl будет выводить такие сообщения об ошибках:
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details
В системах на основе CentOS, Fedora и RedHat вы получите такое сообщение:
Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xe" for details.
Если же Apache по-прежнему не запускается из-за ошибок, команда apachectl configtest может быть наиболее эффективным и действенным способом диагностики в этом случае. В следующем разделе мы расскажем, как использовать эту утилиту для устранения ошибки AH00526.
Устранение ошибки с помощью apachectl
Чтобы устранить ошибку AH00526 с помощью утилиты apachectl, вы можете протестировать конфигурацию Apache с помощью подкоманды configtest. Этот инструмент проанализирует файлы Apache, чтобы определить, допустимо ли их содержимое, и, если нет, найдет неверные настройки в конфигурации.
Команда apachectl configtest полезна для выявления синтаксических ошибок в новой конфигурации веб-сервера перед перезагрузкой. Этот тест поможет вам избежать сбоев в обслуживании в случае неправильных настроек в ваших файлах Apache.
Следующий пример команды вернет сообщение об ошибке синтаксиса AH00526 и объяснит, что вероятная проблема заключается в том, что Apache ссылается на пустой файл SSLCertificateFile:
sudo apachectl configtest
AH00526: Syntax error on line 3 of /etc/apache2/sites-enabled/000-default.conf:
SSLCertificateFile: file '/etc/ssl/certs/example.com.pem' does not exist or is empty
В этом примере файл /etc/ssl/certs/example.com.pem не существует, что и указано в сообщении об ошибке. Чтобы решить проблему, вам нужно добавить сертификат SSL/TLS в файл или удалить эту директиву.
Если в конфигурации нет ошибок, команда apachectl должна показать следующее:
Syntax OK
Заключение
В этом мануале вы узнали, как устранить синтаксическую ошибку Apache AH00526. Первым шагом при исследовании любой ошибки Apache является проверка статуса сервера с помощью команды systemctl status apache2 или systemctl status httpd (в зависимости от вашего дистрибутива Linux). Так вы можете определить, правильно ли работает Apache или он не может запуститься из-за ошибки.
После того, как вы определили состояние Apache, вы можете дополнительно диагностировать его с помощью journalctl и изучить логи system для этого процесса. Затем вы можете использовать команду apachectl configtest, чтобы проверить файлы конфигурации на наличие ошибок.
Tags: Apache, apachectl, journalctl, systemctl
Apache Configuration Error Code ah00526 occurs when there is a typo or misconfigured setting somewhere in its configuration files.
As part of our Server Management Services, we assist our customers with several Apache queries.
Today, let us see how our techs go about this configuration.
Apache Configuration Error Code ah00526
We can detect this error using apachectl configtest before an invalid configuration loads.
We can also find it with the systemctl and journalctl commands.
Moving ahead, let us see how our Support Techs troubleshoot this with different commands.
-
Troubleshooting with systemctl
First and foremost, we need to check Apache’s status with systemctl.
On Ubuntu and Debian derived Linux distributions:
sudo systemctl status apache2.service -l –no-pager
On CentOS and Fedora systems:
sudo systemctl status httpd.service -l –no-pager
Our output will be similar to the following:
● 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 Wed 2020-07-15 13:45:49 UTC; 1min 37s ago . . . Jul 15 13:45:49 f17f01056c5b systemd[1]: Starting The Apache HTTP Server... Jul 15 13:45:49 f17f01056c5b apachectl[15860]: AH00526: Syntax error on line 2 of /etc/apache2/sites-enabled/000-default.conf: Jul 15 13:45:49 f17f01056c5b apachectl[15860]: Invalid command 'SSSLCertificateFile', perhaps misspelled or defined by a module not included in the server configuration Jul 15 13:45:49 f17f01056c5b apachectl[15860]: Action 'start' failed. Jul 15 13:45:49 f17f01056c5b apachectl[15860]: The Apache error log may have more information. Jul 15 13:45:49 f17f01056c5b systemd[1]: apache2.service: Control process exited, code=exited status=1 Jul 15 13:45:49 f17f01056c5b systemd[1]: apache2.service: Failed with result 'exit-code'. Jul 15 13:45:49 f17f01056c5b systemd[1]: Failed to start The Apache HTTP Server.
Here, we can see that Apache is not running because of the syntax error.
This is due to an extra S character at the beginning of the SSSLCertificateFile line in the /etc/apache2/sites-enabled/000-default.conf file.
Hence, editing the file to fix the directive name will resolve the error and allow Apache to start.
-
Troubleshooting with journalctl logs
In case the systemctl output does not include specifics of the error, we go ahead with the journalctl command to examine systemd logs for Apache.
To check this, on Ubuntu and Debian-derived systems, we run:
sudo journalctl -u apache2.service –since today –no-pager
On CentOS, Fedora, and RedHat-derived systems:
sudo journalctl -u httpd.service –since today –no-pager
The –since today flag will help restrict the volume of log entries that we need to examine.
We will receive an output similar to the following:
-- Logs begin at Tue 2019-11-05 21:26:44 UTC, end at Tue 2020-06-09 15:13:01 UTC. -- . . . Jun 09 15:12:28 f17f01056c5b apachectl[3157]: AH00526: Syntax error on line 3 of /etc/apache2/sites-enabled/000-default.conf: Jun 09 15:12:28 f17f01056c5b apachectl[3157]: Invalid command 'SSLCertificateFile', perhaps misspelled or defined by a module not included in the server configuration . . .
The first line of output is the AH00526 error. A general error, it relates to an invalid setting or a typo in a configuration file. And the next line explains what caused the error.
In this case it is the SSLCertificateFile directive, which will only be valid if we enable the ssl module.
Invalid SSLCertificateFile directive
If the AH00526 error relates to an invalid SSLCertificateFile directive, we can resolve it by enabling the ssl module and then restarting Apache.
For Ubuntu and Debian systems:
sudo a2enmod ssl sudo systemctl restart apache2.service
On CentOS and Fedora systems, we ensure that we have the mod_ssl package, and then load the module by adding it to Apache’s /etc/httpd/conf.modules.d directory in a file like this:
sudo yum install mod_ssl echo “LoadModule ssl_module modules/mod_ssl.so” | sudo tee > /etc/httpd/conf.modules.d/00-ssl.conf sudo systemctl restart httpd.service
Once Apache reference the module, we restart it using the command that is appropriate to the Linux distribution. The server will start up if there are no more errors in the configuration.
However, if there are more errors, it will continue to report them and attempt to explain why we can’t start the server.
Ubuntu & Debian Output:
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details
CentOS and Fedora Output:
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
-
Troubleshooting with apachectl
To troubleshoot with Apache’s apachectl utility, we test the Apache configuration using the configtest sub-command.
This tool will parse the Apache files to determine whether it’s valid and, if not, locate incorrect settings in the Apache configuration.
For example, here it explains that the likely problem is that Apache is referencing an empty SSLCertificateFile:
sudo apachectl configtest
Output
AH00526: Syntax error on line 3 of /etc/apache2/sites-enabled/000-default.conf: SSLCertificateFile: file '/etc/ssl/certs/example.com.pem' does not exist or is empty
Here, the /etc/ssl/certs/example.com.pem file does not exist as the error message notes.
We can add an SSL/TLS certificate to the file, or remove the directive to resolve the issue.
A successful apachectl configtest invocation will result:
Syntax OK
[Need help with the troubleshooting? We are here for you]
Conclusion
In short, we saw how our Support Techs troubleshoot an Apache AH00526 syntax error.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
GET STARTED
Hey new to linux here and I just got Centos 7.2 up and running on my pc. I was following along on «The Perfect Server» instructions and got all the way to installing apache and now I’m stuck at configuring ispconfig because my machine returns an error when I run command systemctl restart httpd.service.
It states job for httpd service failed because the control process exited with error code AH00526.
Oct 25 05:37:49 server01.tcforwarding.com httpd[14691]: [Tue Oct 25 05:37:49.091640 2016] [alias:warn] [pid 14691] AH00671: The ScriptAlias directive in /etc/httpd/conf.d/mailman.conf at line 6 will probably never match because it overlaps an earlier ScriptAlias.
Oct 25 05:37:49 server01.tcforwarding.com httpd[14691]: AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf/httpd.conf:356
Oct 25 05:37:49 server01.tcforwarding.com httpd[14691]: AH00526: Syntax error on line 6 of /etc/httpd/conf/sites-enabled/000-ispconfig.vhost:
Oct 25 05:37:49 server01.tcforwarding.com httpd[14691]: Port must be specified
Oct 25 05:37:49 server01.tcforwarding.com systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Oct 25 05:37:49 server01.tcforwarding.com kill[14699]: kill: cannot find process ""
Oct 25 05:37:49 server01.tcforwarding.com systemd[1]: httpd.service: control process exited, code=exited status=1
Oct 25 05:37:49 server01.tcforwarding.com systemd[1]: Failed to start The Apache HTTP Server.
Oct 25 05:37:49 server01.tcforwarding.com systemd[1]: Unit httpd.service entered failed state.
Oct 25 05:37:49 server01.tcforwarding.com systemd[1]: httpd.service failed.
Here’s part of the vhost file itself.
_
__Listen root
NameVirtualHost *:root
_
VirtualHost default:root *:80
_ServerAdmin webmaster@tcforwarding.com
_
__Directory /var/www/ispconfig/
____FilesMatch ".ph(p3?|tml)$"
Let me know if you need anything else!
I am trying to start my Apache server and keep receiving this error:
AH00526: Syntax error on line 261 of C:/Apache24/conf/httpd.conf:
Invalid command ‘Order’, perhaps misspelled or defined by a module not included in the server configuration.
With some research I found a suggestion of enabling the LoadModule authz_host_module but that did not correct the issue.
The code where the error is:
260 <Files ~ "^.ht">
261 Order allow,deny
262 Deny from all
263 Satisfy All
264 </Files>
Any suggestions on how to fix this problem?
asked Feb 10, 2018 at 2:42
In Apache 2.4 you don’t use 2.2 directives.
Remove all «Order/Deny/Allow/Satisfy» directives and just use:
Require
Following your example:
<Files ~ "^.ht">
Require all denied
</Files>
Please see upgrading for further changes regarding 2.4 version.
answered Feb 11, 2018 at 20:07
Daniel FerradalDaniel Ferradal
2,6781 gold badge11 silver badges18 bronze badges
ISSUE:
My Apache/httpd server will not launch. journalctl -xe
reveals:
Feb 27 01:50:12 localhost.localdomain httpd[4398]: AH00526: Syntax error on line 355 of /etc/httpd/conf/httpd.conf:
Feb 27 01:50:12 localhost.localdomain httpd[4398]: Invalid command 'WSGIPythonHome', perhaps misspelled or defined by a module not included in the server configuration
Feb 27 01:50:12 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Feb 27 01:50:13 localhost.localdomain kill[4399]: kill: cannot find process ""
Feb 27 01:50:13 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1
Feb 27 01:50:13 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
httpd -S
reveals:
AH00526: Syntax error on line 355 of /etc/httpd/conf/httpd.conf:
Invalid command 'WSGIPythonHome', perhaps misspelled or defined by a module not included in the server configuration
SPECS
- CentOS 7 (This is a virtual machine running on an Ubuntu 18.10 host)
rh-python36
installedrh-python36-mod_wsgi-4.5.18-1.el7.x86_64
installed- python virtual env created at
/var/www/web-virt-env
httpd.conf:
WSGIPythonHome /var/www/web-virt-env
WSGIPythonPath /var/www/html/somewebsite
<VirtualHost *:80>
ServerName awebsite.com
DocumentRoot /var/www/html/somewebsite
WSGIDaemonProcess somewebsite1 python-home=/var/www/web-virt-env
WSGIProcessGroup somewebsite1
WSGIScriptAlias / /var/www/html/somewebsite/somewebsite/wsgi.py
<Directory /var/www/html/somewebsite/somewebsite>
Require all granted
</Directory>
Alias /static /var/www/html/somewebsite/static
<Directory /var/www/html/somewebsite/static>
Require all granted
</Directory>
</VirtualHost>
Expected output:
I expected that the site would launch when I executed systemctl start httpd
I am suspicious that rh-python36-mod_wsgi-4.5.18-1.el7.x86_64
isn’t being «found,» but I’m not sure how this is working behind the scenes.
What can I do to work around this? Or at least, which steps should I take next to trouble shoot this?
Пользователь 151037 Заглянувший Сообщений: 12 |
#1 07.01.2014 21:48:47 Решил потестить FirstVDS и поставить на нее BitrixVM.
Может кто сталкивался? Куда копать? |
||
Пользователь 151037 Заглянувший Сообщений: 12 |
#2 07.01.2014 22:49:37 Разобрался. PHP не подгружался. Создал в /etc/httpd/bx/custom/php.conf (насколько я понял /etc/httpd/bx/conf/php.conf перезаписывается при обновлении):
Также пришлось закомментировать все параметры push_ … в конфигах ninx: /etc/nginx/bx/ … вопрос не решается Но теперь битрикс mysql не видит… |
||
А что вам мешает установить на FirstVDS чистый CentOS и на него уже штатно поставить BitrixEnv? |
|
Пользователь 151037 Заглянувший Сообщений: 12 |
#4 08.01.2014 17:03:23
Логично. Я накатывал на CentOS с предустановленным ISPManager и прочей фигней. Есть подозрение что его предустановки и подбавили дегтя. |
||
Да все эти апачи и mysql предустанавливает панелька, я говорил именно о чистой системе без всяких наворотов |
|
Да, так все встало весьма шустро и без всяких приключений. В самом начале только CentOS обновил через yum update, а то битриксовский скрипт ругался . Спасибо. |
|
есть стандартное меню bitrixenv позволяющее контролировать основные параметры системы, создавать/удалять доп сайты итд |
|
С этим все понятно, локально с этим игрался. Только не понял как снова эту менюху запустить если вышел уже. |
|
Пользователь 567705 Заглянувший Сообщений: 4 |
#10 10.09.2018 11:43:42
Cначала появилась ошибка Invalid command ‘php_admin_value’, perhaps misspelled bitrix , потом сервер «упал» на 502 Да, действительно по другому вопрос не решается на Bitrix virtual appliance version 7.3.2 решил проблему и избавился от ошибки 502 по найденному решению на этом форуме По завершению получил такой результат
P.S Мне тоже начинает связка Centos 6/7 ISPManager Lite + BitrixEnv не нравиться . Что-то надо предусмотреть) |
||||||
после обновления Ubuntu (apt-get upgrade) апачь перестал корректно работать — виртуальные хосты не работают.
симптомы:
jj@jjpc ~ $ apache2 --version
[Sun Mar 12 23:42:12.653797 2017] [core:warn] [pid 3277] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Sun Mar 12 23:42:12.653854 2017] [core:warn] [pid 3277] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Sun Mar 12 23:42:12.653867 2017] [core:warn] [pid 3277] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Sun Mar 12 23:42:12.653943 2017] [core:warn] [pid 3277] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Sun Mar 12 23:42:12.653957 2017] [core:warn] [pid 3277] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Sun Mar 12 23:42:12.656411 2017] [core:warn] [pid 3277:tid 139859706599296] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Sun Mar 12 23:42:12.656589 2017] [core:warn] [pid 3277:tid 139859706599296] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Sun Mar 12 23:42:12.656601 2017] [core:warn] [pid 3277:tid 139859706599296] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
питался решить при помощи гугла, ничего не помогло
в итоге снес убунту накатил минт (обновив) и поставив апачь.
и все та же ошибка
как победить?