在 nginx 上意外安装了 apache

问题描述

我目前使用 WordOps (wordops.net) 运行服务器。使用 WordOps,您可以自动安装 Nginx

今天早上我试图在我的服务器上安装 mautic,我按照复制和粘贴教程进行了操作,但直到最后我才注意到该教程是针对 Apache 的。我的所有站点立即都获得了 HTTP 500 错误状态。于是,我卸载了 Apache 并再次启动了 Nginx,然后一切都恢复了正常。但是,我决定在它之后使用命令“apt-get upgrade -y”,然后 Nginx 停止工作。因此,我尝试完全卸载 Nginx 并使用 WordOps 重新安装。但后来我得到这个错误

[32m2021-03-23 16:56:29,885 (INFO) wo : Initializing WordOps Database[0m
[36m2021-03-23 16:56:29,888 (DEBUG) wo.core.logging : [95mSetting apt_packages variable for Nginx[0m
[36m2021-03-23 16:56:29,888 (DEBUG) wo.core.logging : [95mSetting apt_packages variable for PHP 7.3[0m
[36m2021-03-23 16:56:30,662 (DEBUG) wo.core.logging : [95mPHP 7.3 already installed[0m
[32m2021-03-23 16:56:30,663 (INFO) wo : [94mPHP 7.3 already installed[0m
[36m2021-03-23 16:56:30,663 (DEBUG) wo.core.logging : [95mSetting apt_packages variable for MysqL[0m
[36m2021-03-23 16:56:30,663 (DEBUG) wo.core.logging : [95mRunning command: MysqLadmin ping[0m
[36m2021-03-23 16:56:30,674 (DEBUG) wo.core.logging : [95mCommand Output: MysqLd is alive,Command Error: [0m
[36m2021-03-23 16:56:30,674 (DEBUG) wo.core.logging : [95mMysqL already installed and alive[0m
[32m2021-03-23 16:56:30,674 (INFO) wo : [94mMysqL already installed and alive[0m
[36m2021-03-23 16:56:30,674 (DEBUG) wo.core.logging : [95mSetting packages variable for WP-CLI[0m
[36m2021-03-23 16:56:30,675 (DEBUG) wo.core.logging : [95mWP-CLI is already installed[0m
[32m2021-03-23 16:56:30,675 (INFO) wo : [94mWP-CLI is already installed[0m
[36m2021-03-23 16:56:30,675 (DEBUG) wo.core.logging : [95mSetting apt_packages variable for Fail2ban[0m
[36m2021-03-23 16:56:31,537 (DEBUG) wo.core.logging : [95mFail2ban already installed[0m
[32m2021-03-23 16:56:31,538 (INFO) wo : [94mFail2ban already installed[0m
[36m2021-03-23 16:56:31,538 (DEBUG) wo.core.logging : [95mSetting apt_packages variable for Sendmail[0m
[36m2021-03-23 16:56:33,378 (DEBUG) wo.core.logging : [95mSendmail already installed[0m
[32m2021-03-23 16:56:33,379 (INFO) wo : [94mSendmail already installed[0m
[36m2021-03-23 16:56:33,379 (DEBUG) wo.core.logging : [95mPHPMyAdmin already installed[0m
[32m2021-03-23 16:56:33,379 (INFO) wo : [94mPHPMyAdmin already installed[0m
[36m2021-03-23 16:56:33,379 (DEBUG) wo.core.logging : [95mPHPRedisAdmin already installed[0m
[32m2021-03-23 16:56:33,379 (INFO) wo : [94mPHPRedisAdmin already installed[0m
[36m2021-03-23 16:56:33,379 (DEBUG) wo.core.logging : [95mComposer already installed[0m
[32m2021-03-23 16:56:33,379 (INFO) wo : [94mComposer already installed[0m
[36m2021-03-23 16:56:33,380 (DEBUG) wo.core.logging : [95madminer already installed[0m
[32m2021-03-23 16:56:33,380 (INFO) wo : [94madminer already installed[0m
[36m2021-03-23 16:56:33,380 (DEBUG) wo.core.logging : [95mMysqLtuner already installed[0m
[32m2021-03-23 16:56:33,380 (INFO) wo : [94mMysqLtuner already installed[0m
[36m2021-03-23 16:56:33,380 (DEBUG) wo.core.logging : [95mNetdata already installed[0m
[32m2021-03-23 16:56:33,380 (INFO) wo : [94mNetdata already installed[0m
[36m2021-03-23 16:56:33,380 (DEBUG) wo.core.logging : [95mSetting packages variable for WO-Dashboard[0m
[36m2021-03-23 16:56:33,380 (DEBUG) wo.core.logging : [95meXtplorer is already installed[0m
[32m2021-03-23 16:56:33,380 (INFO) wo : [94meXtplorer is already installed[0m
[36m2021-03-23 16:56:33,380 (DEBUG) wo.core.logging : [95mRunning command: MysqLadmin ping[0m
[36m2021-03-23 16:56:33,405 (DEBUG) wo.core.logging : [95mCommand Output: MysqLd is alive,Command Error: [0m
[36m2021-03-23 16:56:35,235 (DEBUG) wo.core.logging : [95mSetting packages variable for utils[0m
[36m2021-03-23 16:56:35,235 (DEBUG) wo.core.logging : [95mCalling pre_pref[0m
[32m2021-03-23 16:56:35,235 (INFO) wo : [94mAdding repository for Nginx,please wait...[0m
[36m2021-03-23 16:56:35,236 (DEBUG) wo.core.logging : [95mAdding repository for Nginx[0m
[36m2021-03-23 16:56:35,236 (DEBUG) wo.core.logging : [95mRunning command: apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv-keys 188C9FB063F0247A[0m
[36m2021-03-23 16:56:36,359 (DEBUG) wo.core.logging : [95mCommand Output: Executing: /tmp/apt-key-gpghome.JdYbpTDxew/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com --recv-keys 188C9FB063F0247A,Command Error: Warning: apt-key output should not be parsed (stdout is not a terminal)
gpg: key 188C9FB063F0247A: "home:virtuBox OBS Project <home:virtuBox@build.opensuse.org>" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
[0m
[32m2021-03-23 16:56:36,359 (INFO) wo : [94mUpdating apt-cache [0m
[32m2021-03-23 16:56:38,500 (INFO) wo : [94m[91mWhoops,something went wrong...[0m
[31m2021-03-23 16:56:38,500 (ERROR) wo : [91mCheck the WordOps log for more details tail /var/log/wo/wordops.log and please try again...[0m

当我尝试使用 apt-get install Nginx-full 安装 Nginx 时出现此错误

 Nginx: [emerg] unkNown directive "more_set_headers" in /etc/Nginx/Nginx.conf:41

当我使用 apt-get install Nginx-extras 时出现此错误

[emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to [::]:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to [::]:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to [::]:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to [::]:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to [::]:80 Failed (98: Address already in use)
Nginx: [emerg] still Could not bind()

我有点绝望哈哈 任何帮助将不胜感激

解决方法

nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

表示有一个进程已经在使用端口 80,这是 Web 服务器用来提供 http 内容的端口。该进程可能是 apache、nginx 或您正在运行的任何其他服务。

检查 nginx/apache 的状态,如果它停止检查哪个服务正在监听端口 80:

sudo netstat -tupan | grep -i list

您将显示与此类似的输出:

tcp6       0      0 :::22                   :::*                    LISTEN      574/sshd
tcp6       0      0 :::443                  :::*                    LISTEN      12431/apache2
tcp6       0      0 :::111                  :::*                    LISTEN      1/init
tcp6       0      0 :::80                   :::*                    LISTEN      12431/apache2

表示pid为12431的进程正在监听80和443端口。这个进程叫做apache2。 如果没有显示名字,可以用ps查找:

 ps aux | grep 12431

输出将如下所示:

root      12431  0.0  2.3 238408 22796 ?        Ss   Mar10  10:04 /usr/sbin/apache2 -k start

这意味着进程 '/usr/sbin/apache2' 是您正在寻找的进程。

一旦你发现是什么进程阻止了 nginx 启动,你应该用 kill 命令或 systemctl(或你正在使用的任何东西)终止它。

端口被释放后,您可以再次尝试启动 nginx。