首先准备一台和目标机器环境一样的可以连接公网的服务器进行yum源的准备。
安装两个工具vim 和 tree 方便后续服务器管理
yum install vim
yum install tree
安装下载软件源所需工具:
yum install yum-utils -y #这个
- 查看软件源列表
yum repolist
处理一个deltarpm问题
yum provides '*/applydeltarpm'
yum install deltarpm
为避文件全部下载到了默认路径,这里在home分区下新建文件夹,全部下载大概有54G
mkdir /home/yum && mkdir /home/yum/Packages
- 一般来说只用下载base库就够了,当然也可以全部下载下来
reposync -r base
reposync -r base -p /home/yum/Packages
reposync -r extras -p /home/yum/Packages
reposync -r updates -p /home/yum/Packages
合在一起下的命令:
reposync -r base -p /home/yum/Packages && reposync -r extras -p /home/yum/Packages && reposync -r updates -p /home/yum/Packages
包拷贝完成之后需要构建yum使用的数据库,以xml文件形式存在,该数据库会对所有包进行分类建立索引,方便yum程序快速搜索安装包和检查包之间的依赖关系。但创建数据库要用到一个工具包createrepo.noarch.rpm,默认是没有的,先要对它进行安装,在刚刚我们下载的rpm包中就有该包,我们可以直接安装。(安装该包需要相关的依赖包,版本对应自己rpm包的版本)
cd /home/yum/Packages
yum install createrepo
生成repodata信息
createrepo /home/yum/Packages/
- 安装httpd
-
yum install httpd
备份配置文件
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf-bak
修改配置文件
vim /etc/httpd/conf/httpd.conf
权限问题
chown -R apache:apache /home/yum
开启防火墙80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld
- 修改SELinux 文件属性即修改文件的安全上下文参考:SELinux 下网络服务设置:Apache
chcon -R -t httpd_sys_content_t /home/yum/Packages
semanage fcontext -a -t httpd_sys_content_t "/home/yum/Packages(/.*)?"
安装semanage
yum install policycoreutils-python
semanage fcontext -a -t httpd_sys_content_t "/home/yum/Packages(/.*)?"
restorecon -R -v /home/yum/Packages
systemctl restart httpd
本应该是大功告成的,结果如图:
干脆用nginx
这里先干掉apache的开机启动:
systemctl disable httpd
因为ngixn aliyun没有源,没办法用yum安装
这里用源码包
CentOS源码包的一般安装位置在/usr/local/软件名/目录下。
源码包需要手动指定安装位置,并且源码包没有卸载命令,所以管理员一定要知道软件安装位置才可以。源码包的卸载方式就是删除安装目录,因为源码包所有文件都在指定目录下。安装位置的不同带来的结果就是启动方式的不同,rpm包安装可以通过systemctl命令启动软件,但是源码包默认不可以,一般要根据说明找到软件包的启动文件,然后使用命令绝对路径/启动文件
start来启动这个源码包软件。
官网下载稳定版nginxNginx官网
- 安装nginx所需依赖
在搭建好了本地yum源的基础上安装
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
yum -y install pcre pcre-devel
yum -y install gcc gcc-c++ make libtool
#上面四行命令也可合并写作一行
上传、解压、安装Nginx
mkdir /usr/local/nginx #创建nginx安装目录,路径自定义
cd /home/download/nginx-1.24.0 #nginx解压目录
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module #安装配置
make && make install #编译、安装
编辑nginx配置文件
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf #编辑nginx配置文件
安装rz上传文件
yum install lrzsz
- 将nginx加入systemctl管理服务
#按路径创建编辑文件 /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
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
上传文件
cd /usr/lib/systemd/system/
rz
systemctl start nginx.service
systemctl status nginx.service
yum install net-tools
netstat -ntlup
文件内容解释 参考原文链接:https://blog.youkuaiyun.com/baidu_41711780/article/details/124116999
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]:服务运行参数的设置
Type=forking 是后台运行的形式
ExecStart 服务的具体运行命令
ExecReload:重载命令
ExecStop:停止命令
PrivateTmp=true表示给服务分配独立的临时空间
启动、重载、停止命令均要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3*
nginx相关操作扩展内容
systemctl enable nginx.service #设置开机自启
systemctl disable nginx.service #取消开机自启
systemctl start nginx.service #启动nginx服务
systemctl stop nginx.sercice #停止nginx服务
systemctl restart nginx.service #重启nginx服务
systemctl reload nginx.service #重新读取nginx配置(不停止服务而使修改的配置生效)
systemctl status nginx.service #查看nginx服务当前状态
systemctl list-units --type=service #查看所有已启动的服务
#初始启动、停止、重载nginx命令:
./nginx -s stop #强制停止
./nginx -s quit #等待最后一次交互执行完毕后停止
./nginx -s reload #重载
./nginx -V #查看详细版本
./nginx -v #查看版本
./nginx -t #检查配置文件是否有误
#上述初始命令均需至安装路径/sbin/下操作
CentOS7常用命令合集
systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务
启动Nginx并查看端口
systemctl start nginx.service
systemctl status nginx.service
netstat -ntlup
————————————————
编译安装 Nginx 允许你自定义 Nginx 的功能和优化设置,以满足特定的需求。以下是在 Linux 系统上从源代码编译安装 Nginx 的基本步骤:
1. 安装依赖包
首先,你需要安装编译 Nginx 所需的依赖包。这些依赖包可能因不同的 Linux 发行版而有所不同。以下是一些常见的依赖包:
对于基于 Debian 的系统(如 Ubuntu):
bashsudo apt-get update
sudo apt-get install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev
对于基于 Red Hat 的系统(如 CentOS 或 Fedora):
bashsudo yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
2. 下载 Nginx 源代码
从 Nginx 官方网站或其他可信的源下载 Nginx 的最新源代码。
bashwget http://nginx.org/download/nginx-latest.tar.gz
3. 解压源代码
bashtar -zxvf nginx-latest.tar.gz
cd nginx-* # 进入解压后的目录,* 表示版本号
4. 配置和编译
使用 ./configure
脚本配置编译选项。你可以通过运行 ./configure --help
来查看所有可用的配置选项。
bash./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre --with-zlib --with-openssl
上面的命令将 Nginx 安装到 /usr/local/nginx
目录,并启用了 SSL、PCRE、zlib 和 OpenSSL 支持。
接下来,编译源代码:
bashmake
5. 安装
一旦编译完成,使用 make install
命令安装 Nginx:
bashsudo make install
6. 启动、停止和重启 Nginx
安装完成后,你可以使用以下命令来管理 Nginx 服务:
bash# 启动 Nginx
/usr/local/nginx/sbin/nginx
# 停止 Nginx
/usr/local/nginx/sbin/nginx -s stop
# 平滑重启 Nginx(不中断连接)
/usr/local/nginx/sbin/nginx -s reload
# 查看 Nginx 版本
/usr/local/nginx/sbin/nginx -v
或者,你可以将 Nginx 的可执行文件路径添加到系统的 PATH
环境变量中,这样就可以直接运行 nginx
命令了。
7. 设置开机自启动
如果你希望 Nginx 在系统启动时自动运行,你可以创建一个系统服务文件或者使用其他方法来实现。以下是一个简单的示例,展示如何为 Nginx 创建一个 systemd 服务文件:
创建一个新的 systemd 服务文件 /etc/systemd/system/nginx.service
:
ini[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
然后,重新加载 systemd 的配置并启用服务:
bashsudo systemctl daemon-reload
sudo systemctl enable nginx
现在,你可以使用 systemctl
命令来管理 Nginx 服务了:
bash# 启动 Nginx
sudo systemctl start nginx
# 停止 Nginx
sudo systemctl stop nginx
# 重启 Nginx
sudo systemctl restart nginx
# 查看 Nginx 服务状态
sudo systemctl status nginx
完成上述步骤后,你就成功地从源代码编译并安装了 Nginx。记得根据你的需求配置 Nginx 的配置文件 /usr/local/nginx/conf/nginx.conf
,并测试配置文件的正确性。