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>
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 【无效】。
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 : 是为PHP 和MysqL通信提供驱动。
编辑及页面,/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