服务器开机,apache无法启动,解决办法

本文介绍了解决Apache启动时报错的方法,特别是当遇到因httpd.pid文件为空而导致的问题时的处理步骤。通过向该文件写入临时PID,可以有效解决无法启动的情况。
正常启动:./startas.sh   发现日志正常,启动正常,但网页打开是:无法显示该网页;
启动报错:(20014)Error string not specified yet: Error retrieving pid file logs/httpd.pid   发现是是因为Apache目录下的 logs 子目录下的 httpd.pid 文件内容是空的。这个文件是记录进程ID的文件。因为这个文件是空的,就无法启动,实在是超雷人。你随便写点数字进去,再启动Apache,就可以成功了。

写入前,查看下 httpd.pid,发现大小是0,证明判断正确;

[root@localhost bin]# echo 1234 > /home/as/apache/logo/httpd.pid

随便写入点东西,在次查看 httpd.pid,发现大小是5,证明写入正确;

[root@localhost bin]# service httpd start
之后统一杀下进程,重启;
[root@localhost bin]# killall -9 java
[root@localhost bin]# killall -9 httpd
重启后正常访问,问题解决~



重启 apache :目录必须是在 /apache/bin/  下,要有httpd文件
[root@localhost bin]# ./httpd -k restart

<think>我们参考引用的信息来解决用户的问题。用户希望在KaliLinux上设置Apache和MySQL(MariaDB)开机启动。根据引用[1]:我们可以使用`systemctl`命令来启动服务并设置开机自启。引用[2]中提到了一键安装包中的命令,但用户的环境是Kali Linux,我们应优先使用系统自带的包管理。引用[3]提到了通过编辑`/etc/rc.local`来设置自启动,但在使用systemd的系统(如Kali Linux)中,推荐使用systemctl。步骤:1.确保Apache和MySQL(MariaDB)已安装。2.使用systemctl命令设置开机自启。注意:KaliLinux默认使用systemd,因此我们可以使用systemctl命令。具体命令如下:启动服务并设置开机自启:sudo systemctl enableapache2#设置Apache开机自启sudosystemctlenable mariadb#设置MariaDB(MySQL)开机自启同时,也可以立即启动服务(如果尚未启动):sudo systemctl startapache2sudosystemctlstart mariadb验证服务状态:sudo systemctl statusapache2sudosystemctlstatus mariadb注意:在KaliLinux中,MySQL通常被MariaDB替代,所以服务名是mariadb。如果用户确实安装了MySQL而不是MariaDB,那么服务名可能是mysql,但Kali默认使用MariaDB。如果用户没有安装,则需要先安装:sudo aptupdatesudoapt installapache2 mariadb-server另外,引用[3]中提到通过编辑`/etc/rc.local`的方法,但这种方法在systemd系统中已经过时,不推荐使用。我们使用systemctl。因此,回答如下:</think>### 如何在 Kali Linux 上设置 Apache 和 MySQL 开机自启 #### 步骤详解: 1. **启动服务并设置自启** 使用 `systemctl` 命令管理服务(Kali Linux 默认使用 MariaDB 替代 MySQL): ```bash sudo systemctl start apache2 # 立即启动Apache sudo systemctl start mariadb # 立即启动MariaDB(MySQL替代品) sudo systemctl enable apache2 # 设置Apache开机自启 sudo systemctl enable mariadb # 设置MariaDB开机自启 ``` 2. **验证服务状态** 检查服务是否正常运行: ```bash sudo systemctl status apache2 # 查看Apache状态(应为active/running) sudo systemctl status mariadb # 查看MariaDB状态(应为active/running) ``` 3. **防火墙配置(可选)** 若需远程访问,开放端口: ```bash sudo ufw allow 80/tcp # 开放Apache的HTTP端口 sudo ufw allow 3306/tcp # 开放MariaDB端口 ``` 4. **测试服务** - Apache:浏览器访问 `http://localhost` 或 `http://<服务器IP>` - MariaDB:终端执行 `mysql -u root -p` #### 注意事项: - Kali Linux 默认使用 **mariadb** 作为 MySQL 替代品,服务名称为 `mariadb` 而非 `mysql`[^1][^3]。 - 若使用非标准安装(如禅道集成包),需通过 `/opt/zbox/zbox start` 启动服务,但标准系统服务推荐 `systemctl`[^2]。 - 若服务启动失败,检查日志: ```bash journalctl -xe -u apache2 # 查看Apache详细日志 journalctl -xe -u mariadb # 查看MariaDB详细日志 ``` #### 自启原理说明: `systemctl enable` 会在 `/etc/systemd/system` 创建符号链接,使系统启动时自动加载服务。此方法比传统 `/etc/rc.local` 更可靠[^1][^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值