安装后未找到 nginx.service - 我应该使用什么工具/命令来确定问题的根源?

安装后未找到 nginx.service - 我应该使用什么工具/命令来确定问题的根源?

主办:Digital Ocean 上的新 Droplet

操作系统:全新安装 CentOS 7.6.1810

背景: 在生产中使用 Nginx 之前,用 100 种不同的方法在 Centos 上对其进行测试。

问题:我从源代码安装的 Nginx 似乎可以正常工作,但操作系统找不到该服务。我应该从哪里开始测试以找出问题的根源?我可以很好地使用 Linux,但我远不是专家。

背景故事: 使用包管理器安装 Nginx 效果很好。安装过程顺利,服务启动正常。

sudo yum install -y nginx

sudo systemctl start nginx

然而,当我从源代码构建时,Nginx 却不想启动。

安装看似顺利,没有任何问题。

curl nginx.org/download/nginx-1.16.0.tar.gz > nginx-1.16.0.tar.gz

tar -zxvf nginx-1.16.0.tar.gz

cd nginx-1.16.0

sudo ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-http_ssl_module --with-http_v2_module

sudo make

sudo make install

但是当我尝试启动 nginx 时出现错误。

sudo systemctl start nginx

Failed to start nginx.service: Unit not found.

我检查了一下/etc/nginx,发现nginx.conf创建正确。这几乎就像是安装了 nginx,但不知何故它没有与操作系统一起检查。我不是 Centos 或 Linux 专家,我不确定我应该检查哪些内容来确定问题的根源。

答案1

nginx 源代码 tarball 不包含 systemd 单元。如果您坚持要运行自己从源代码构建的副本,则需要自己提供 systemd 单元文件。您可以在 RPM 包中找到一个。

顺便说一句,你不这样做的原因解释得并没有什么意义;几乎每个人都需要你删除的大多数模块,所以尝试通常都是浪费时间。许多真正可选的模块已经是可加载模块,你只需更改 nginx 的配置即可不加载它们。

答案2

我的建议是,不要从源代码构建,而是可以按照他们网站上的 RHEL/CentOS 安装步骤进行操作http://nginx.org/en/linux_packages.html#RHEL-CentOS

您能否提供一些日志以便我们找出您的问题?

相关内容