文章目录
- 一 在SUSE11sp3系统中将openssh从6升级到8
- 一 需求
- 二 系统环境
- 三 部署流程
- 1.上传编译安装的软件包
- 2.安装 gcc编译软件
- 3.安装依赖zlib
- 4.安装依赖openssl
- 5.安装openssh
- 二 在CentOS-6.9配置apache服务(3)---虚拟主机配置
- 一 定义
- 二 系统环境
- 三 基于域名
- 3.1 安装软件
- 3.2 修改主配置文件
- 3.3 编写虚拟主机配置文件
- 3.4 创建站点目录和测试文件
- 3.5 设置防火墙访问策略
- 3.6 编写Linux和Windows的hosts文件
- 3.7 重启服务并测试
- 3.8 报错说明
- 四 基于IP
- 4.1 添加网卡
- 4.2 安装软件
- 4.3 编写主配置文件
- 4.4 编写虚拟主机配置文件
- 4.5 创建站点目录和测试文件
- 4.6 设置防火墙访问策略
- 4.7 重启服务并测试
- 五 基于端口
- 5.1 安装软件
- 5.2 编写主配置文件
- 5.3 编写虚拟主机配置文件
- 5.4 创建站点目录和测试文件
- 5.5 设置防火墙访问策略
- 5.6 重启服务并测试
- 六 基于IP和端口
- 三 Linux进程的三种状态
- 四 在CentOS-6.9下配置apache和php
- 一 系统环境
- 二 编译安装apache
- 2.1 下载和解压软件包
- 2.2 配置软件
- 2.3 编译和安装软件
- 2.4 创建软连接
- 三 编译安装php
- 3.1 下载和解压软件包
- 3.2 配置软件
- 3.3 编译和安装软件
- 3.4 修改配置文件
- 3.5 创建站点目录下的文件
- 3.6 修改防火墙策略
- 3.7 启动apache服务
一 在SUSE11sp3系统中将openssh从6升级到8
一 需求
在 SUSE11sp3 系统中,希望将openssh的版本从6升级到8,通过软件的更新从而漏洞修复,但系统中没有gcc编译器。
二 系统环境
查看原系统的系统版本与SSH版本。
linux-e9r4:~ # cat /etc/SuSE-release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 3
linux-e9r4:~ # ssh -V
OpenSSH_6.2p2, OpenSSL 0.9.8j-fips 07 Jan 2009
三 部署流程
1.上传编译安装的软件包
将安装所需的安装包放入/opt/中,由root用户执行
在 /opt 目录下包含如下包:
openssh-8.5p1.tar.gz openssl-1.1.1b.tar.gz zlib-1.2.1.1.tar.gz
2.安装 gcc编译软件
在SUSE系统使用 zypper 安装的方式(类似于centos系统的yum安装),解决gcc-c++的软件依赖问题。
zypper install gcc-c++
执行命令后,会安装相关依赖软件包,包括gcc gcc43 gcc43-c++ gcc-c++ glibc-devel libstdc++43-devel linux-kernel-headers
执行命令 gcc --version
可以查看gcc的版本
3.安装依赖zlib
先解压软件包,进行软件的配置
linux-e9r4:/opt # tar xf zlib-1.2.1.1.tar.gz
linux-e9r4:/opt # cd zlib-1.2.1.1/
linux-e9r4:/opt/zlib-1.2.1.1 # ./configure --shared
然后进行软件的编译
linux-e9r4:/opt/zlib-1.2.1.1 # make
最后进行软件的安装
linux-e9r4:/opt/zlib-1.2.1.1 # make install
4.安装依赖openssl
首先查看openssl软件版本
linux-e9r4:/opt # openssl version -a
接着解压软件包,进行软件的配置
linux-e9r4:/opt # tar xf openssl-1.1.1b.tar.gz
linux-e9r4:/opt # cd openssl-1.1.1b/
linux-e9r4:/opt/openssl-1.1.1b # ./config shared
然后进行软件的编译
linux-e9r4:/opt/openssl-1.1.1b # make
接着进行软件的安装
linux-e9r4:/opt/openssl-1.1.1b # make install
再备份旧的openssl二进制文件,并创建软链接
linux-e9r4:/opt/openssl-1.1.1b # mv /usr/bin/openssl /usr/bin/openssl.old
linux-e9r4:/opt/openssl-1.1.1b # ln -s /usr/local/bin/openssl /usr/bin/openssl
linux-e9r4:/opt/openssl-1.1.1b # ln -s /usr/local/include/openssl /usr/include/openssl
linux-e9r4:/opt/openssl-1.1.1b # echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
linux-e9r4:/opt/openssl-1.1.1b # /sbin/ldconfig -v
查看openssl软件版本
linux-e9r4:/opt/openssl-1.1.1b # openssl version -a
5.安装openssh
先解压软件包,然后进行配置。
在进行软件配置的过程中,由于当前zlib的版本较低,所以使用参数 --without-zlib-version-check
跳过该项配置检查,继续向下完成其他配置部署。
linux-e9r4:/opt # tar xf openssh-8.5p1.tar.gz
linux-e9r4:/opt # ls
openssh-8.5p1 openssh-8.5p1.tar.gz openssl-1.1.1b openssl-1.1.1b.tar.gz zlib-1.2.1.1 zlib-1.2.1.1.tar.gz
linux-e9r4:/opt # cd openssh-8.5p1/
linux-e9r4:/opt/openssh-8.5p1 # ./configure --prefix=/usr/ --sysconfdir=/etc/ssh -with-zlib -with-ssl-dir=/usr/local/ssl -with-md5-passwords mandir=/usr/share/man --without-zlib-version-check
接着进行软件的编译和安装
linux-e9r4:/opt/openssh-8.5p1 # make
linux-e9r4:/opt/openssh-8.5p1 # make install
然后备份旧的sshd文件,用新的文件覆盖
linux-e9r4:/opt/openssh-8.5p1 # cp sshd_config /etc/ssh/
linux-e9r4:/opt/openssh-8.5p1 # mv /usr/sbin/sshd{,.old}
linux-e9r4:/opt/openssh-8.5p1 # mv /usr/bin/ssh{,.old}
linux-e9r4:/opt/openssh-8.5p1 # cp sshd /usr/sbin/sshd
linux-e9r4:/opt/openssh-8.5p1 # cp ssh /usr/bin/ssh
允许root用户远程登录
linux-e9r4:/opt/openssh-8.5p1 # echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
重启sshd服务,并查看ssh版本
linux-e9r4:/opt/openssh-8.5p1 # service sshd restart
linux-e9r4:/opt/openssh-8.5p1 # ssh -V
二 在CentOS-6.9配置apache服务(3)—虚拟主机配置
文章目录
- 一 在SUSE11sp3系统中将openssh从6升级到8
- 一 需求
- 二 系统环境
- 三 部署流程
- 1.上传编译安装的软件包
- 2.安装 gcc编译软件
- 3.安装依赖zlib
- 4.安装依赖openssl
- 5.安装openssh
- 二 在CentOS-6.9配置apache服务(3)---虚拟主机配置
- 一 定义
- 二 系统环境
- 三 基于域名
- 3.1 安装软件
- 3.2 修改主配置文件
- 3.3 编写虚拟主机配置文件
- 3.4 创建站点目录和测试文件
- 3.5 设置防火墙访问策略
- 3.6 编写Linux和Windows的hosts文件
- 3.7 重启服务并测试
- 3.8 报错说明
- 四 基于IP
- 4.1 添加网卡
- 4.2 安装软件
- 4.3 编写主配置文件
- 4.4 编写虚拟主机配置文件
- 4.5 创建站点目录和测试文件
- 4.6 设置防火墙访问策略
- 4.7 重启服务并测试
- 五 基于端口
- 5.1 安装软件
- 5.2 编写主配置文件
- 5.3 编写虚拟主机配置文件
- 5.4 创建站点目录和测试文件
- 5.5 设置防火墙访问策略
- 5.6 重启服务并测试
- 六 基于IP和端口
- 三 Linux进程的三种状态
- 四 在CentOS-6.9下配置apache和php
- 一 系统环境
- 二 编译安装apache
- 2.1 下载和解压软件包
- 2.2 配置软件
- 2.3 编译和安装软件
- 2.4 创建软连接
- 三 编译安装php
- 3.1 下载和解压软件包
- 3.2 配置软件
- 3.3 编译和安装软件
- 3.4 修改配置文件
- 3.5 创建站点目录下的文件
- 3.6 修改防火墙策略
- 3.7 启动apache服务
一 定义
虚拟主机是指在一台WWW服务器上为多个单独的域名提供web服务,产生不同的web界面。每个域名都有特定的目录和配置,相当于将一台主机分为多台主机。它满足了对主机数量不足而又想为不同用户提供独立web服务的需求。
二 系统环境
参数 | 值 |
---|---|
主机IP | 10.0.0.100 |
安装的apache版本 | Apache/2.2.15 (Unix) |
操作系统版本 | CentOS release 6.9 (Final) |
操作系统内核 | 2.6.32-696.el6.x86_64 |
三 基于域名
在一个主机创建多个网站,采用多个域名进行访问,其中域名对应的IP是同一个。
3.1 安装软件
yum安装apache服务
yum install -y httpd
安装完成后,会有2个依赖软件包一同被安装。
3.2 修改主配置文件
通过yum安装得到的主配置文件是 /etc/httpd/conf/httpd.conf
在对其修改前,首先进行源文件备份。
[root@test ~]# cd /etc/httpd/conf
[root@test conf]# cp httpd.conf httpd.conf.bak
我们对 httpd.conf
进行修改,这是apache最终生效的主配置文件。
将 ServerName
后面的IP改成本主机网卡绑定的IP地址。
将 NameVirtualHost
前面的注释符号去掉,使其生效。
(检查Include这一步在 四
和 五
中同样检查,不再赘述)
检查 Include conf.d/*.conf
没有注释符号,需要生效。
3.3 编写虚拟主机配置文件
首先进入 /etc/httpd/conf.d/
目录下,创建 vhost.conf
cd /etc/httpd/conf.d/
touch vhost.conf
配置的域名分别为 www.test1.com
和 www.test2.com
,站点目录分别为 /var/www/html/test1
和 /var/www/html/test2
。
[root@test conf.d]# cat vhost.conf
<VirtualHost *:80>
ServerName www.test1.com
DocumentRoot "/var/www/html/test1"
ErrorLog logs/test1.err
CustomLog logs/test1.access common
</VirtualHost>
<VirtualHost *:80>
ServerName www.test2.com
DocumentRoot "/var/www/html/test2"
ErrorLog logs/test2.err
CustomLog logs/test2.access common
</VirtualHost>
修改配置文件后,使用 httpd -t
检查httpd服务的配置文件语法是否有错。
3.4 创建站点目录和测试文件
mkdir -p /var/www/html/test{1,2}
echo "www.test1.com" > /var/www/html/test1/index.html
echo "www.test2.com" > /var/www/html/test2/index.html
3.5 设置防火墙访问策略
允许80端口的服务。
添加一行下列内容。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
3.6 编写Linux和Windows的hosts文件
在Linux中,编写 /etc/hosts
文件,使域名和IP产生映射关系。
在Windows,编写 C:\Windows\System32\drivers\etc\hosts
文件。
3.7 重启服务并测试
首先重启防火墙和httpd服务。
service iptables restart
service httpd restart
其次先在Linux测试,页面内容可以正常显示。
接着在Windows浏览器测试,也可以正常显示。
由此可知,基于域名的虚拟主机配置成功。
3.8 报错说明
(1)如果在日志文件中发现,服务器出现下列错误提示:
configuration error: couldn't perform authentication. AuthType not set!: /
此处的500错误需要检查是否存在 Require all granted
。
如果出现,删除 Require all granted
即可。
(2)出现下列错误,将所有配置文件中多余的NameVirtualHost *:80
参数删除掉即可,只保留我们配置的那部分内容。
[warn] NameVirtualHost *:80 has no VirtualHosts
(3)出现下列错误,去掉主配置文件的 ServerName
参数前面的注释,使其生效即可。
httpd: apr_sockaddr_info_get() failed for test
四 基于IP
在一个服务器上配置多个IP地址,每个IP地址提供不同的web界面,每个IP地址都有特定的目录和配置。
4.1 添加网卡
由于本机只有一个网卡,IP是10.0.0.100,因此需要添加一个网卡,IP是10.0.0.101
然后编写 eth1 网卡的配置文件 /etc/sysconfig/network-scripts/ifcfg-eth1
将网卡名eth0改为eth1,将IP地址改成新的10.0.0.101,并修改mac地址。
得到mac地址,输入命令 ip a
最后重启网卡服务即可。
4.2 安装软件
yum安装apache服务
yum install -y httpd
安装完成后,会有2个依赖软件包一同被安装。
4.3 编写主配置文件
去掉 ServerName 的注释,使其生效。
其他内容不需要改变。
4.4 编写虚拟主机配置文件
[root@test conf.d]# cat vhost.conf
<VirtualHost 10.0.0.100:80>
ServerName 10.0.0.100
DocumentRoot "/var/www/html/test1"
ErrorLog logs/test1.err
CustomLog logs/test1.access common
</VirtualHost>
<VirtualHost 10.0.0.101:80>
ServerName 10.0.0.101
DocumentRoot "/var/www/html/test2"
ErrorLog logs/test2.err
CustomLog logs/test2.access common
</VirtualHost>
编写配置文件后,使用 httpd -t
检查语法格式。
4.5 创建站点目录和测试文件
mkdir -p /var/www/html/test{1,2}
echo "10.0.0.100" > /var/www/html/test1/index.html
echo "10.0.0.101" > /var/www/html/test2/index.html
4.6 设置防火墙访问策略
允许80端口的服务。
添加一行下列内容。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
4.7 重启服务并测试
首先重启防火墙和httpd服务。
service iptables restart
service httpd restart
其次先在Linux测试,页面内容可以正常显示。
接着在Windows浏览器参数,页面也可以正常显示。
综上所述,基于IP的虚拟主机配置成功。
五 基于端口
向外网用户提供多个端口的HTTP服务器。
5.1 安装软件
yum安装apache服务
yum install -y httpd
安装完成后,会有2个依赖软件包一同被安装。
5.2 编写主配置文件
去掉 ServerName 的注释,使其生效。
增加端口号,81和82.
其他内容不需要改变。
5.3 编写虚拟主机配置文件
[root@test conf.d]# cat vhost.conf
<VirtualHost *:81>
ServerName www.test1.com
DocumentRoot "/var/www/html/test1"
ErrorLog logs/test1.err
CustomLog logs/test1.access common
</VirtualHost>
<VirtualHost *:82>
ServerName www.test2.com
DocumentRoot "/var/www/html/test2"
ErrorLog logs/test2.err
CustomLog logs/test2.access common
</VirtualHost>
编写后,使用 httpd -t
检测,配置文件格式正确。
5.4 创建站点目录和测试文件
mkdir -p /var/www/html/test{1,2}
echo "10.0.0.100:81" > /var/www/html/test1/index.html
echo "10.0.0.100:82" > /var/www/html/test2/index.html
5.5 设置防火墙访问策略
允许80端口的服务。
添加一行下列内容。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 82 -j ACCEPT
5.6 重启服务并测试
首先重启防火墙和httpd服务。
service iptables restart
service httpd restart
其次先在Linux测试,页面内容可以正常显示。
接着在Windows浏览器参数,页面也可以正常显示。
综上所述,基于端口的虚拟主机配置成功。
六 基于IP和端口
配置好第二块网卡后,在 五
配置的基础上,只将虚拟主机配置文件进行修改成下列格式
就可以配置基于IP和端口的虚拟主机。
测试结果如下:
三 Linux进程的三种状态
(1)运行态(running):进程占有处理器正在运行。
(2)就绪态(ready):进程具备运行条件,等待系统分配处理器以便运行。
(3)等待态(wait):又称为阻塞态(blocked)或睡眠态(sleep),指进程不具备运行条件,正在等待某个事件的完成。
总结:
进程创建后,如果不具备运行条件,就是等待态;
如果具备运行条件,需要在CPU的调度下,分别执行。正在执行的就是运行态,等待调度的是就绪态。
四 在CentOS-6.9下配置apache和php
一 系统环境
主机IP:10.0.0.100
系统版本:CentOS-6.9
二 编译安装apache
2.1 下载和解压软件包
进入/opt目录下,下载源码包。
cd /opt
wget https://archive.apache.org/dist/httpd/httpd-2.2.10.tar.gz
接着使用tar命令进行解压。
tar zxvf https://archive.apache.org/dist/httpd/httpd-2.2.10.tar.gz
2.2 配置软件
进入解压后的目录
cd httpd-2.2.10
设置参数,配置apache软件的服务
./configure --prefix=/usr/local/apache2 --enable-so --enable-modules=most --bindir=/usr/bin --sysconfdir=/etc
参数 --prefix
表示将安装后的apache服务的文件都放在这个目录下
参数 --enable-so
表示打开模块支持功能,so模块是提供DSO支持的apache核心模块。
参数 --enable-modules=most
都表示启用绝大多数的模块。
参数 --bindir=/usr/bin
表示服务执行文件的目录。
参数 --sysconfdir=/etc
表示服务配置文件的目录。
2.3 编译和安装软件
使用命令先对软件进行编译。
make
然后进行编译安装。
make install
2.4 创建软连接
ln -s /usr/local/apache2 /apache2
三 编译安装php
3.1 下载和解压软件包
进入/opt目录下,下载源码包。
cd /opt
wget https://museum.php.net/php5/php-5.2.0.tar.gz
接着使用tar命令进行解压。
tar xf php-5.2.0.tar.gz
cd php-5.2.0
接着提前上传,并安装在编译时需要的依赖软件包。
rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm
rpm -ivh libxml2-devel-2.7.6-21.el6_8.1.x86_64.rpm
rpm -ivh libpng-1.2.49-2.el6_7.x86_64.rpm
rpm -ivh libpng-devel-1.2.49-2.el6_7.x86_64.rpm
rpm -ivh libpng-static-1.2.49-2.el6_7.x86_64.rpm
rpm -ivh libjpeg-6b-46.el6.x86_64.rpm libjpeg-devel-6b-46.el6.x86_64.rpm --force
再使用 rpm -ql libjpeg
找到该文件的文件路径/usr/lib64/libjpeg.so.62
,创建在/usr/lib
下的软链接文件
ln -s /usr/lib64/libjpeg.so.62 /usr/lib/libjpeg.so
同理,创建 libpng 的软链接文件。
ln -s /usr/lib64/libpng.so.3 /usr/lib/libpng.so
3.2 配置软件
接着进行软件的配置,并与apache服务进行整合。
./configure --prefix=/usr/local/apache --enable-force-cgi-redirect --with-freetype=dir=/usr --with-gd --enable-gd-native-ttf --with-ttf --with-gettext --with-iconv --with-zlib --with-xml --enable-calendar --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/lib/libjpeg.so --with-png-dir=/usr/lib/libpng.so
参数 --prefix=/usr/local/apache 指定PHP的安装目录。
参数 --with-apxs2=/usr/local/apache2/bin/apxs 整合到apache2的服务中。
参数 --with-xml 支持XML语言。
3.3 编译和安装软件
make
make install
3.4 修改配置文件
修改apache主配置文件 /etc/httpd.conf
启用 ServerName 选项,并在配置文件底部添加下列内容。
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
然后将 /opt 下的 php安装目录复制到 /usr/local 下,并创建 php.ini 文件。
cp -rp /opt/php-5.2.0 /usr/local/
mkdir -p /usr/local/php-5.2.0/lib/
cp /usr/local/php-5.2.0/php.ini-dist /usr/local/php-5.2.0/lib/php.ini
并设置 /usr/local/php-5.2.0/lib/php.ini
文件中的下列参数
register_globals = On
3.5 创建站点目录下的文件
在 /apache2/htdocs 目录下,创建index.php 文件。
[root@test htdocs]# pwd
/apache2/htdocs
[root@test htdocs]# cat index.php
<?
phpinfo();
?>
3.6 修改防火墙策略
允许80端口。
然后重启服务。
/etc/init.d/iptables restart
3.7 启动apache服务
/apache2/bin/apachectl start