CentOS 平台,使用 httpd 2.2 和 httpd 2.4 部署 web服务器

1、查看当前的系统

uname -r

cat /etc/redhat-release

2、通过rpm 安装httpd

yum install httpd

a、安装完成后,参看相应的配置文件

/etc/httpd/conf/httpd.conf # 主配置文件

A、修改参数

Listen [IP:]port # 可以出现多次。

ServerName www.njjn.com:80

DoucumentRoot /var/www/html # 文档主目录

NameVirtualHost 192.168.10.16:80 # 配置虚拟机是必须配置的参数,【仅在CentOS 6 可用,CentOS 7 以废除。】

<Directory "/var/www/html"> # 安全的访问控制。

Options None

AllowOverride None

Order allow,deny

Allow from [all | 192.168 | 192.168.0.0/16]

# 基于主机的访问控制

AuthType basic

AuthName "only for root"

AuthUserFile "/etc/httpd/conf.d/.htpasswd"

Require valid-user # 基于用户的访问控制

</Directory>

B、生成用户的密码文件

htpasswd -c -m -b /etc/httpd/conf.d/.htpasswd redhat redhat

-c : 第一次创建时使用

-b : 通过命令行给密码

-m : 密码通过MD5加密。

C、查看当前服务器加载的模块

ps aux # 查看系统运行在哪个MPM模式下

httpd -l # 查看核心模块

-M # 查看所有的模块

-t # 配置文件语法检查。


/etc/httpd/conf.d/ # 辅助配置文件

/etc/sysconfig/httpd # MPM 信息。

b、添加到开机启动。

chkconfig --add httpd

chkconfig httpd on

service httpd start

3、通过浏览器查看

问题:服务器端要关闭防火墙和selinux

iptables -F

setenforce 0 | permissive

4、配置虚拟主机 【based-name】

a、配置主配置文件里面的参数。

/etc/httpd/conf/httpd.conf 添加 NameVirtualHost 192.168.10.15:80

b、在/etc/httpd/conf.d/ 目录里面创建虚拟和主机的配置文件

vi vhost-1.conf

<VirtualHost 192.168.10.15:80> # 要和NameVirtualHost 相同。

ServerName "www.njjn.com"

DocumentRoot "/data/vhosts/www1"

CustomLog "logs/www1-access-log" combined # 相对路径,相对与 ServerRoot ,配置文件的路径。 /etc/httpd/logs 是 目录的软连链接

ErrorLog "logs/www1-error-log"


# 如果在CentOS 7上,需要显示的给予授权。因为它默认是拒绝的。和 6 相反。

<Directory "/data/vhosts/www1"> # 对虚拟的主机设置访问控制

Options None

AllowOverride None

Require [not] ip 192.168 # 仅 192.168.0.0 网段的可以访问。

Require [not] host www.njjn.com # 使用一个就可以。

Requireall granted # 所有人都可以访问

</Directory>

<Location /server-status> # 查看服务器的运行状态的信息。

SetHandler server-status

AuthType basic

AuthName "only for limit user"

AuthUserFile "/etc/httpd/conf.d/.htpasswd"

Require valid-user | user1 user2

</Location> # 仅认证过的账户可以访问,

</VirtualHost>

5、配置 https

a、创建私有的CA

cd /etc/pki/CA

(umask 066; openssl genrsa -out private/cakey.pem 2048) # 私钥必须是600权限,

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

生成自签整数。

openssl x509 -in private/cakey.pem -text # 大约是,查看整数信息。

openssl rsautl -in private/cakey.pem -out capub.pem -pubout

b、给应用程序生成

(umask 066; openssl genrsa -out httpd.key 1024)

openssl req -new -key httpd.key -out httpd.csr -days 3650

scp httpd.csr root@172.16.17.18:/tmp/

d、CA 给予授权

openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 3650

scp 传给客户端。

e、客户端收到后,

mkdir /etc/httpd/ssl

文件放到上面的目录。

f、客户端安装,https 需要的 mod_ssl rpm 包

此包会在,/etc/httpd/conf.d/目录,创建ssl.conf 文件

编辑参数。

ServerName

DocumentRoot

SSLCertificateFile "/etc/httpd/ssl/httpd.crt" # 整数文件, httpd.crt

SSLCertificateKeyFile "/etc/httpd/ssl/httpd.key" # 本机的私钥文件

重启服务:service httpd start

通过浏览器访问,要把私有CA的私钥导入浏览器,不然会提示证书无效。不导入也不影响使用。


6、安装MysqL,mariadb

yum install MysqL-server | mariadb-server

a、配置参数

vi /etc/my.cnf

innodb_file_per_table=ON # 每个表对应一个文件

skip_name_resolve=ON # 跳过名称解析。CentOS 6 【无效】。

7、安装PHP,PHP-zts,PHP-MysqL

yum install PHP

a、会生成,libPHP5.so 库,可以和 prefork 相匹配。

b、libPHP5-zts.so 可以和 worker,event 想匹配,所在包是PHP-zts

这两种都是,httpd的模块的形式工作。

Client request index.PHP -> Server httpd receive,启用,PHP进程,进行处理。

PHP-MysqL : 是为PHPMysqL通信提供驱动。

编辑及页面,/data/vhosts/www1/index.PHP

vi ~~

<?PHP

PHPinfo();

?>

客户成功,锁屏配置成功。


httpd 2.4: 特性

1、DSO: dynamic share object,支持动态的模块编辑,

2、毫秒级的KeepAlive 500ms 持久连接。

3、MPM event 可以在生产中使用。

4、性能提升,节约内存等。


apr: apache portable runtime ,httpd跨平台的基础。

apr

apr-util

apr-iconv

相关文章

有时候CentOS工作在无互联网的环境下,需要在离线环境下安装一些组件,这次实现的是模拟在离线环境下安...
首先参照https://www.cnblogs.com/wdw984/p/13330074.html,来进行如何安装Centos和离线下载rpm包。 离...
有两个.NET CORE3.1网站部署在CentOS7上(内网IP是192.168.2.32),现在想实现访问http://192.168.2.32...
1、yum -y install vsftpd 安装vsftpd 2、配置vsftpd的配置文件(/etc/vsftpd/vsftpd.conf)主要修改以...
首先去mysql官网下载mysql的离线rpm安装包(https://downloads.mysql.com/archives/community/) Mysql...
第一步下载erlang环境并安装: wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_...