![图片[1]-503服务不可用的故障排除解决办法-搬主题](https://cdn.banzhuti.com/2024/10/20241002110645728.png)
很多时候,会发现您的网站Web服务器有时候返回“503 服务不可用”HTTP 响应,造成这个问题的原因有很多,其中大多数实际上根本不是 Web 服务器的问题!如果使用LiteSpeed系统或者OpenLiteSpeed,让我们先看看 503 错误的可能原因,看看哪些错误您可以轻松自行解决。
什么是 503 错误?
当 Web 浏览器向您的 Web 服务器发送请求时,服务器会响应所请求的资源(如果适用)和状态代码。该代码由 3 位数字组成,表示请求成功或失败。
5xx 系列中的任何响应代码都表示服务器端错误。特别是 503,表示服务不可用。不幸的是,它不会告诉您请求的服务失败的原因。
排除服务器问题
首先,让我们确保您没有遇到与 LiteSpeed Web 服务器相关的问题。
最简单的方法是暂时将服务器切换到 Apache。切换后,尝试在 Apache 运行时复制 503 错误。
如果 Apache 运行时仍然出现 503 错误,则这不是服务器问题。切换回 LiteSpeed,并继续阅读下面的故障排除建议。
如果 Apache 运行时 503 错误消失,那么是时候联系 LiteSpeed 支持了。您可以从客户区开具一张票。请务必提供尽可能多的详细信息,以帮助支持团队重现问题!
如果您已经排除了服务器问题,那么是时候找出问题的真正原因了。503 错误通常是由 PHP 崩溃、内存问题或两者兼而有之引起的。您可以从 PHP 信息页面中了解到很多信息。如果您没有,您可以创建一个。
检查 phpinfo 页面
PHP 信息页面为您提供了有关 PHP 安装的大量详细信息。即使您的系统在使用 PHP 时出现问题,它也应该能够处理这个非常基本的页面。除其他信息外,PHP 信息页面还为您提供了有关扩展、内存限制和执行时间的有用信息。
![图片[2]-503服务不可用的故障排除解决办法-搬主题](https://cdn.banzhuti.com/2024/10/20241002110651928.png)
通过这些信息,您可以查看OPCache是否启用、内存限制是多少以及加载了哪些扩展,这些都是寻找 503 错误原因时有用的信息。
您还可以使用此页面比较 Apache 和 LiteSpeed 的 PHP 实现之间的差异。
提示:如果 Apache 和 LSWS PHP 信息页面不同,请开具支持票,以便我们查看。
检查日志文件
有许多不同的日志文件可以帮助您确定 503 错误的原因。请尝试按以下顺序检查这些日志:
- 标准错误日志
- Web 服务器错误日志
- 系统日志
- PHP 错误日志
标准错误日志 stderr.log
该stderr.log文件包含 PHP 运行时生成的标准错误。您通常可以在/var/log/apache2/或/usr/local/lsws/logs/目录中找到它。此日志通常最有帮助。
在此标准错误日志的示例输出中,您可以看到您正在处理内存问题:
[STDERR] fork() failed, please increase process limit: Cannot allocate memoryWeb 服务器错误日志
此错误日志由 Web 服务器生成。您通常可以在/var/log/apache2/或/usr/local/lsws/logs/目录中找到它。如果 Web 服务器在导致 PHP 失败方面发挥了一定作用,您应该可以从此日志中获得一些有用的提示。
来自 Web 服务器错误日志的此示例输出表明您打开的文件过多:
[INFO] [319934] [1.1.1.1:49873-1#APVH:lsapi] connection to [uds://tmp/lshttpd/APVH-php56.sock] on request #0, confirmed, 0, associated process: 0, running: 0, error: Too many open files!另一个值得尝试的好方法是:搜索/etc/apache2/logs/error_log术语oops:
grep oops /etc/apache2/logs/error_log如果您查看时间戳,这将让您了解自上次尝试修复以来已生成了多少 503 错误。不幸的是,它不太可能告诉您错误发生的原因,但它可以让您了解错误发生的时间以及涉及哪些域。
系统日志
此错误日志由操作系统生成。您通常可以找到它作为/var/log/messages或/var/log/syslog。如果 PHP 受到操作系统的影响,此日志会很有帮助。
在此系统日志的示例输出中,您可以看到该lsphp进程已被 LFD 防火墙安全功能终止:
lfd[18304]: *User Processing* PID:18264 Kill:1 User:xxxxx VM:538(MB) EXE:/usr/local/lsws/fcgi-bin/lsphp-5.4.42 CMD:lsphp5您可以通过从 LFD 中排除来解决此问题lsphp。
PHP 错误日志
此错误日志在 中定义php.ini,您可以检查phpinfo.php文件位置。默认情况下,cPanel 会将其设置为error_log。根据您在 PHP 中设置的日志记录级别,当 PHP 检测到错误或警告时,它将被更新。它通常在 PHP 脚本运行的同一文件夹中生成。
PHP 错误日志的此示例输出显示应用程序内存在致命错误test.php:
Fatal error: Call to undefined function my_function() in /home/mysite/public_html/test.php on line 2解决这些类型的错误的最佳方法是将它们转发给出现故障的 PHP 应用程序的开发人员。
禁用Opcode缓存
Opcode将字节码存储在共享内存中,因此 PHP 不需要一遍又一遍地处理相同的调用,但有时会导致问题。
例如,此错误指向Opcode缓存问题:
[STDERR] zend_mm_heap corrupted这些是您在排除故障时应考虑禁用的一些常见操作码缓存扩展:
- OPCache
- APC/u
- XCache
- eAccelerator
禁用不安全的 PHP 扩展
除了Opcode缓存扩展之外,还有其他已知会导致问题的 PHP 扩展,尤其是在它们过时的情况下。这些包括:
- Imunify360
- ZendGuardLoader
- Suhosin
- ionCube
我们建议您定期检查这些扩展程序的更新。如果您已经在使用最新版本,请尝试禁用它们并查看问题是否仍然存在。
如果您禁用这些插件但仍然收到“503 服务不可用”响应,请禁用所有其他扩展,然后再次检查。
检查磁盘空间
PHP 有时会将文件存储在您的服务器上以便正常运行。如果您的磁盘已满,尤其是存放 的分区/tmp/,则可能是导致 503 错误的原因。
要检查磁盘空间使用情况,请运行以下命令:
sudo df-h
输出应如下所示:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 901M 0 901M 0% /dev
tmpfs 915M 96K 915M 1% /dev/shm
tmpfs 915M 89M 827M 10% /run
tmpfs 915M 0 915M 0% /sys/fs/cgroup
/dev/mapper/cl_centos 29G 4.2G 25G 15% /
/dev/vda1 976M 184M 726M 21% /boot
tmpfs 183M 0 183M 0% /run/user/0如果磁盘已满,请清理它们。删除所有不必要的文件。这应该可以解决 503 错误。
检查 CloudLinux 限制
如果您正在运行 CloudLinux 和轻量级虚拟环境 (LVE),则可能会达到 LVE 限制。要调整它们,请按照CloudLinux 的指南进行操作。
检查内存限制
如果您确认运行在 LVE 限制范围内,请尝试调整 PHP 内存限制。PHP 信息页面会告诉您php.ini文件所在的位置。编辑文件并增加memory_limit值。
有时脚本可能会附加.htaccess覆盖 PHP 设置的行。这可以取代 php.ini 文件中的设置。memory_limit其中的条目.htaccess看起来如下所示:
php_value memory_limit 100M.htaccess您可以根据需要在文件中添加、删除或修改此行。
如果以上均无影响,则 LSPHP 可能需要增加其虚拟内存。为此,请导航至WebAdmin 控制台 > 配置 > 服务器 > PHP,然后单击PHP 处理程序默认值的编辑。
更改以下设置,然后单击“保存”:
- 内存软限制:
4097M - 内存硬限制:
4098M
导航到操作并按下重新启动分离的 PHP 进程旁边的图标。然后应用更改/优雅重启。
自动修复 503
您可能已经注意到 LiteSpeed Web Server 具有自动修复 503 错误设置。此功能不会永久修复 503 错误。它会正常重启服务器,这通常可以暂时解决问题。
![图片[3]-503服务不可用的故障排除解决办法-搬主题](https://cdn.banzhuti.com/2024/10/20241002110658857.png)
自动修复 503 错误默认启用。这意味着只要 30 秒内 503 错误的数量超过 30 个,服务器就会自动重启。您不应依赖此功能来修复重复出现的 503 错误。始终建议按照上述步骤找到永久修复方法。
提示:如果您想禁用此功能,请导航至WebAdmin 控制台 > 服务器 > 常规并将自动修复 503 错误设置为No。
结论
这些信息应该可以帮助您找到大多数 503 错误的原因,以上就是搬主题分享的故障排除方法。






















暂无评论内容