Все перепробовал, не могу решить. Ошибка появляется в случайные моменты времени, когда клиентские браузеры обращаются к различным сценариям PHP, также в моей собственной программе иногда возникает исключение, когда я пытался извлечь содержимое из сценариев PHP. Иногда это работает хорошо, иногда нет.
Еще несколько месяцев назад все работало нормально.
Может ли добрая душа медленно провести меня через список шагов отладки? Я новичок в Linux.
Скриншот htop не показывает ничего необычного сейчас:
1 [| 0.2%] 5 [ 0.0%]
2 [ 0.0%] 6 [ 0.0%]
3 [ 0.0%] 7 [ 0.0%]
4 [|| 0.5%] 8 [|| 0.7%]
Mem[|||||||||||||||||||||||||5363/32087MB] Tasks: 57, 27 thr; 1 running
Swp[|| 632/16375MB] Load average: 0.04 0.07 0.13
Uptime: 57 days, 22:41:20
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
468 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 0:06.91 /usr/sbin/mysqld
3742 root 20 0 26020 2368 1444 R 0.2 0.0 0:00.09 htop
1235 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 104h /usr/sbin/mysqld
3745 root 20 0 101M 3968 2900 S 0.2 0.0 0:00.03 sshd: [accepted]
851 root 20 0 545M 291M 7936 S 0.0 0.9 1:56.57 php /home/***/fr/fetcher.php
1 root 20 0 34032 2188 1084 S 0.0 0.0 0:47.96 /sbin/init
996 syslog 20 0 250M 22444 820 S 0.0 0.1 2:27.11 rsyslogd
1402 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 4:11.39 /usr/sbin/mysqld
430 root 20 0 20004 492 492 S 0.0 0.0 0:00.13 upstart-udev-bridge --daemon
440 root 20 0 51344 712 712 S 0.0 0.0 0:00.03 /lib/systemd/systemd-udevd --dae
608 root 20 0 15260 368 368 S 0.0 0.0 0:00.08 upstart-socket-bridge --daemon
849 root 20 0 59640 1444 1088 S 0.0 0.0 0:00.00 CRON
850 root 20 0 4444 648 548 S 0.0 0.0 0:00.00 /bin/sh -c php /home/***/fr/fe
856 root 20 0 59640 1044 1040 S 0.0 0.0 0:00.00 CRON
858 root 20 0 4444 460 456 S 0.0 0.0 0:00.00 /bin/sh -c php /home/***/updat
860 root 20 0 341M 5676 3580 S 0.0 0.0 1:43.45 php /home/***/updater/index.ph
931 root 20 0 15276 376 376 S 0.0 0.0 0:00.06 upstart-file-bridge --daemon
965 messagebu 20 0 39216 1000 808 S 0.0 0.0 0:00.47 dbus-daemon --system --fork
997 syslog 20 0 250M 22444 820 S 0.0 0.1 0:00.02 rsyslogd
998 syslog 20 0 250M 22444 820 S 0.0 0.1 2:06.88 rsyslogd
995 syslog 20 0 250M 22444 820 S 0.0 0.1 4:34.06 rsyslogd
1014 root 20 0 43452 1408 1232 S 0.0 0.0 0:00.60 /lib/systemd/systemd-logind
1043 root 20 0 15820 676 672 S 0.0 0.0 0:00.00 /sbin/getty -8 38400 tty4
1045 root 20 0 15820 676 672 S 0.0 0.0 0:00.00 /sbin/getty -8 38400 tty5
1054 root 20 0 15820 676 672 S 0.0 0.0 0:00.00 /sbin/getty -8 38400 tty2
1055 root 20 0 15820 676 672 S 0.0 0.0 0:00.00 /sbin/getty -8 38400 tty3
1058 root 20 0 15820 676 672 S 0.0 0.0 0:00.00 /sbin/getty -8 38400 tty6
1074 root 20 0 4368 388 388 S 0.0 0.0 0:00.02 acpid -c /etc/acpi/events -s /va
1160 root 20 0 23656 724 640 S 0.0 0.0 0:14.16 cron
1161 daemon 20 0 19140 172 172 S 0.0 0.0 0:00.03 atd
1313 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 2:37.18 /usr/sbin/mysqld
1314 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 2:35.50 /usr/sbin/mysqld
1315 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 2:37.36 /usr/sbin/mysqld
1316 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 2:37.77 /usr/sbin/mysqld
1317 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 2:37.93 /usr/sbin/mysqld
1318 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 2:37.12 /usr/sbin/mysqld
1319 mysql 20 0 8626M 4065M 4896 S 0.0 12.7 2:37.22 /usr/sbin/mysqld
F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit
Содержимое /etc/apache2/apache2.conf. В этом каталоге есть много других файлов * .conf.
Mutex file:${APACHE_LOCK_DIR} default
#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
# Include phpmyadmin
Include /etc/phpmyadmin/apache.conf
ServerName localhost
<VirtualHost *:80>
ServerAdmin info@***.com
DocumentRoot "/var/www/html"
ServerName ***.***.com
ServerAlias ***.***.com
ErrorLog "logs/***/error_log"
CustomLog "logs/***/access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin info@***.com
DocumentRoot "/var/www/***"
ServerName ***.com
ServerAlias www.***.com
ErrorLog "logs/***/error_log"
CustomLog "logs/***/access_log" common
</VirtualHost>
Похоже, что вашему серверу время от времени не хватает ресурсов, и поэтому он не может ответить.
Простой способ проверить, так ли это, - установить (sudo apt-get install htop
) и запустите программу Linux под названием htop
.
Он покажет вам вверху, сколько ЦП и ОЗУ используется, а затем перечислит открытые процессы (программы). Вы можете отсортировать список по различным столбцам, чтобы увидеть, какие из них занимают ресурсы.
Кстати, это хороший способ проверить, какие программы вы используете, например, если вы видите что-нибудь под command
называется httpd
или /usr/sbin/httpd
или что-то подобное, вы знаете, что используете Apache в качестве веб-сервера.
А поскольку htop - это программа только для чтения, вы ничего не сломаете, используя ее.
У меня есть веские основания полагать, что проблема не связана с моим сервером, а связана с подключением к Интернету, которое я использовал на своем личном ноутбуке для доступа к серверу. Я подключаюсь к Интернету с помощью мобильного устройства Wi-Fi, предоставленного Vodafone (преобразует 4G в WiFi). Серверы Vodafone каким-то образом отправляют это сообщение об ошибке даже до того, как что-либо на моем сервере истечет. Они делают то же самое и для других серверов. Другие люди, использующие другие интернет-соединения, не получают ошибку тайм-аута шлюза при работе с моим сервером.