httpd安装和设置开机启动

本文详细介绍了在Linux环境下从源码安装httpd Web服务器的全过程,包括apr、apr-util和pcre等依赖库的安装,以及httpd的启动、停止、重启命令和开机自启设置。特别注意的是,需正确配置编译路径而非安装路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

httpd安装的所有程序

[root@localhost soft]# cd apr-1.5.2

[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr

[root@localhost apr-1.5.2]# make

[root@localhost apr-1.5.2]# make install

 

[root@localhost apr-1.5.2]# cd ../apr-util-1.5.4

[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config

[root@localhost apr-util-1.5.4]# make

[root@localhost apr-util-1.5.4]# make install

 

[root@localhost apr-util-1.5.4]# cd ../pcre-8.38

[root@localhost pcre-8.38]# ./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr/bin/apr-1-config

[root@localhost pcre-8.38]# make

[root@localhost pcre-8.38]# make install

 

[root@localhost pcre-8.38]# cd ../httpd-2.4.18

[root@localhost httpd-2.4.18]# ./configure --prefix=/usr/local/httpd --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

----apr、apr-util和pcre 的路径是编译路径不是安装路径

[root@localhost httpd-2.4.18]# make

[root@localhost httpd-2.4.18]# make install

启动命令:

[root@localhost bin]# ./apachectl start

[root@localhost bin]# ./apachectl stop

[root@localhost bin]# ./apachectl restart

开机启动设置:

将链接apachectl 复制到系统启动目录下并命名为httpd

[root@localhost bin]# cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd

到此,其实已经可以使用service httpd start等命令,但在linux服务列表还没有注册

使用chkconfig来注册apache服务,并其可以在linux的服务列表中看到(chkconfig –list)

在init.d的httpd链接文件中第2行添加如下注释,并wq保存退出

[root@localhost bin]#  vim /etc/rc.d/init.d/httpd

意义如下

35:在3级别和5级别(级别见文末TIPS)启动httpd

61:启动顺序为61号,S61

61:关闭顺序为61号,K61

当进行chkconfig --add httpd操作时,如果没有指定level那么就会来这个注释中取值

 

此时,就可以在rc.d下的相应的3和5目录下看到S61httpd,并在0、1、2、4、6目录看到K61httpd了

这是2步的手动设置方式,不想看可以跳过。可以手动设置自启动:将链接apachectl放一份软链接到rc3.d目录下(和/或rc*.d目录下)

[root@localhost bin]# ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S61httpd
这样,已经设置了在“有网络多用户命令行模式下”在61顺序自动启动httpd服务了

 

 

httpd not running, trying to start
/usr/local/apache2.4/bin/apachectl: 行 79: 32220 段错误  (吐核)$HTTPD -k $ARGV
(启动apache时报错的原因是因为我的服务器里有两个php,一个是php5一个是php7在这里需要只调用一个php,步骤如下:
[root@chy ~]# vim /usr/local/apache2.4/conf/httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so
#LoadModule php7_module        modules/libphp7.so

 

<think>我们正在处理用户关于设置源码安装的Nginx开机自动启动的问题。根据提供的引用,特别是引用[4]引用[5],我们可以找到两种方法:一种是在Linux系统(如CentOS)下使用systemd服务,另一种是在Windows下使用nginx-service.exe注册为服务。 用户没有明确说明操作系统,但根据引用内容,大部分引用都是关于Linux系统的(如CentOS、openEuler),只有引用[5]提到Windows。因此,我们需要考虑两种情况。但是,用户问题中提到了“源码安装”,通常源码安装在Linux系统中更为常见,所以我们先以Linux为主,同时提供Windows的备选方案。 ### 步骤(针对Linux系统): 根据引用[4]的内容,配置开机启动需要创建一个systemd服务单元文件。 1. **创建服务文件** 使用文本编辑器(如vim)在`/usr/lib/systemd/system/`目录下创建一个名为`nginx.service`的文件,并添加以下内容(注意:需要根据实际安装路径调整`ExecStart`等命令的路径): ``` [Unit] Description=nginx service After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target ``` 这里假设Nginx的安装路径是`/usr/local/nginx`,如果您的安装路径不同,请修改为对应的路径。 2. **重新加载systemd配置** 执行命令: ```bash sudo systemctl daemon-reload ``` 3. **设置开机启动** 执行命令: ```bash sudo systemctl enable nginx ``` 4. **启动Nginx服务** 执行命令: ```bash sudo systemctl start nginx ``` 5. **检查服务状态** 执行命令: ```bash sudo systemctl status nginx ``` ### 步骤(针对Windows系统): 根据引用[5],在Windows下可以通过`nginx-service.exe`将Nginx注册为服务。 1. **下载nginx Windows版本** 注意:源码安装通常是在Linux下,但如果在Windows下源码安装,可能需要使用Cygwin等环境。通常我们直接使用Windows预编译版本。这里假设用户已经安装了Nginx的Windows版本。 2. **使用nginx-service.exe** 在Nginx的安装目录下,以管理员身份运行命令提示符,执行: ``` .\nginx-service.exe install ``` 3. **启动服务** 安装后,可以在服务管理器中启动Nginx服务,并设置为自动启动。 ### 注意事项: - 在Linux下,确保创建的服务文件中的路径正确,特别是Nginx可执行文件的路径。 - 在Linux下,如果编译安装时指定了其他路径,请相应地修改`ExecStart`、`ExecReload`、`ExecStop`的路径。 - 在Linux下,还需要确保Nginx的配置文件路径正确(通常在`/usr/local/nginx/conf/nginx.conf`),否则服务可能无法启动。 ### 引用说明: 我们参考了引用[4]中关于创建systemd服务单元文件的方法,以及引用[5]中关于Windows下设置服务的方法。用户可以根据自己的操作系统选择相应的步骤。 ### 相关问题: 根据用户的问题我们的回答,生成以下相关问题: 1. 如何验证Nginx服务是否成功设置开机启动? 2. 在Linux系统中,如何配置Nginx服务以支持HTTPS? 3. 在Windows系统中,如何管理Nginx服务(启动、停止、重启)? 4. 源码安装Nginx时,如何自定义安装路径? 5. 如果Nginx服务启动失败,如何进行故障排查? 以上问题可以帮助用户进一步深入学习解决可能遇到的问题。</think>### 配置源码安装的Nginx实现开机启动(Linux系统) #### 步骤1:创建systemd服务文件 在`/usr/lib/systemd/system/`目录下创建`nginx.service`文件: ```bash sudo vim /usr/lib/systemd/system/nginx.service ``` 文件内容如下(需根据实际路径调整): ```ini [Unit] Description=nginx service After=network.target # 确保在网络启动后运行[^4] [Service] Type=forking # 修改为你的nginx实际安装路径 ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true Restart=on-failure [Install] WantedBy=multi-user.target # 指定启动级别[^4] ``` #### 步骤2:重新加载systemd配置 ```bash sudo systemctl daemon-reload ``` #### 步骤3:启用开机启动 ```bash sudo systemctl enable nginx ``` 成功提示:`Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service` #### 步骤4:验证服务状态 ```bash # 启动服务 sudo systemctl start nginx # 检查状态 sudo systemctl status nginx ``` 正常状态显示:`Active: active (running)` #### 步骤5:测试重启生效 ```bash sudo reboot # 重启后检查nginx是否自动运行 ps aux | grep nginx ``` #### 关键配置说明 | 配置项 | 作用说明 | |----------------|-------------------------------------------------------------------------| | **Type=forking** | 声明服务以守护进程方式运行(Nginx默认行为) | | **ExecStart** | 指定nginx二进制文件绝对路径(源码安装通常在`/usr/local/nginx/sbin/`) | | **WantedBy** | 定义服务在哪个系统运行级别启动(`multi-user.target`表示多用户命令行模式)[^4] | #### 常见问题解决 1. **路径错误** 如果出现`Failed to start nginx.service: Unit not found`: ```bash # 确认路径正确性 ls -l /usr/local/nginx/sbin/nginx # 更新服务配置 sudo systemctl daemon-reload ``` 2. **端口冲突** 若80端口被占用,需先停止Apache等服务: ```bash sudo systemctl stop httpd ``` 3. **权限问题** 确保nginx有权限访问web目录: ```bash sudo chown -R www-data:www-data /var/www/html/ ``` > **注意**:源码编译时建议添加`--prefix=/usr/local/nginx`指定安装路径[^3],避免文件分散存放导致服务配置困难。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值