应用举例1、基于用户和组认证的方式访问ftp
1、编辑配置文件/etc/httpd/conf/httpd.conf,并使用httpd -t 检查语法,并systemctl reload httpd
<Directory "/var/www/html/fin"> options None AllowOverride AuthConfig ###使用认证配置,覆盖上面allow,deny配置 AuthType Basic ###使用基本认证 AuthName "Are you kiding me?" ###质询时标题 AuthUserFile /etc/http/conf/.htpasswd ###密码的存放位置 Require valid-user ##(vaild-user所有合法用户都可访问) </Directory>
2、创建站点文档:touch /var/www/html/fin/index.html
3、使用htpasswd命令生成认证库:htpasswd -c -m /etc/http/conf/.htpasswd tom
-c 创建密码,创建第一个用户时使用 -m MD5格式存放 -b 批量模式 -D 删除用户
4、测试访问httpd服务:
5、基于组认证
配置文件中编辑内容如下:
<Directory "/var/www/html/fin"> options None AllowOverride AuthConfig ##使用认证配置 AuthType Basic ##使用基本认证 AuthName "Private Area" ##质询时标题 AuthUserFile /etc/http/conf/.htpasswd ##密码的存放位置 AuthGroupFile /etc/http/conf/.htgroup ##组成员存放位置 Require group admins ###可访问的用户 </Directory>
创建组用户
htpasswd -c -m /etc/httpd/conf/.htpasswd lucy
htpasswd -m /etc/httpd/conf/.htpasswd blair
创建保存组成员文的文件(需要自行手动创建)
vim /etc/http/conf/.htgroup
admin:lucy blair
应用举例2:给指定主机颁发证书,生成https服务
1、创建根CA,生成私钥,有了私钥根CA就可以给自己签名
root@centos7.2 /etc/pki/CA # (umask 077;openssl genrsa -out private/cakey.pem 4096)
2、CA自己给自己签发证书,-key生成请求使用到的私钥文件
root@centos7.2 /etc/pki/CA # openssl req -new -x509 -key private/cakey.pem -out cacert.pem Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:Beijing Locality Name (eg, city) [Default City]:Beijing Organization Name (eg, company) [Default Company Ltd]:Naruto Organizational Unit Name (eg, section) []:op Common Name (eg, your name or your server's hostname) []:www.naruto.com Email Address []:
3、创建CA数据库和版本信息
root@centos7.2 /etc/pki/CA # echo 01 > serial root@centos7.2 /etc/pki/CA # touch index.txt
4、在httpd目录下创建certs,申请CA的用户自己创建私钥
root@centos7.2 /etc/pki/CA/certs # (umask 077;openssl genrsa -out httpd.key 2048)
5、创建申请CA的csr文件
root@centos7.2 /etc/pki/CA/certs # openssl req -new -key httpd.key -out httpd.csr Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:Beijing Locality Name (eg, city) [Default City]:Beijing Organization Name (eg, company) [Default Company Ltd]:Naruto Organizational Unit Name (eg, section) []:op Common Name (eg, your name or your server's hostname) []:www.naruto.com Email Address []:
6、CA颁发证书
root@centos7.2 /etc/pki/CA/certs # openssl ca -in httpd.csr -out httpd.crt
7、配置httpd支持使用SSL,及使用的证书,首先要安装mod_ssl,并配置/etc/httpd/conf.d/ssl.conf,httpd -t,systemctl reload httpd
DocumentRoot "/var/www/html/fin" ServerName www.naruto.com SSLCertificateFile /etc/httpd/certs/httpd.crt ###指明证书路径 SSLCertificateKeyFile /etc/httpd/certs/httpd.key ###指明私钥路径
8、在浏览器中导入证书,并在C:\Windows\System32\drivers\etc\hosts文件中解析:192.168.1.102 www.naruto.com ,然后在浏览器中输入主机名测试:
应用举例3、创建虚拟主机,基于主机名通信
1、首先编辑配置文件/etc/httpd/conf/httpd.conf,注释掉中心主机:#DocumentRoot "/var/www/html"
2、vim /etc/httpd/conf.d/vhosts.conf,内容如下:
NameVirtualHost *:80 ##如果是2.2版本的此处必须要加改行,否则系统会认为是基于端口通信 <VirtualHost *:80> ServerName www1.naruto.com DocumentRoot "/vhosts/www1" ##如果是2.4版本http,则还需要指明目录权限 </VirtualHost> <VirtualHost *:80> ServerName www2.naruto.com DocumentRoot "/vhosts/www2" </VirtualHost
3、创建目录及文件/vhosts/www{1/index.html,2/index.html},并在index.html中创建标识信息,www1,www2
4、在/etc/hosts文件中指明主机名单解析的IP地址
192.168.1.102 www1.naruto.com www2.naruto.com
5、测试
root@cenots6.8 ~ # curl http://www2.naruto.com www2 root@cenots6.8 ~ # curl http://www1.naruto.com www1
注意:配置虚拟主机的时,如需更改DocumentRoot路径,需要关闭selinux策略、
应用举例4、测试httpd与数据库是否连接
1、首先yum install mariadb-server httpd php php-mysql,并启动各个服务
2、通过mysql_secure_installation配置密码等信息
3、在/var/www/html/php-mysql.php编辑如下,主机名,用户,密码,如果是root用户且密码正确,则提示sucess,否则提示failure
应用举例5、安装配置discuzX论坛
1、yum install mariadb-server httpd php php-mysql
systemctl start httpd.service mariadb.service
2、下载安装包,并解压,生成upload文件夹,移动到/var/www/html/目录下重命名为bbs
3、首次安装在浏览器中输入如下信息,即可进入安装向导界面,进行安装;
4、同意安装之后,目录状态处会提示“不可写”等错误标识,是没有给其权限导致。
将这些目录的数组该成apache,由ps aux可以httpd是以apache身份运行的,更改完后刷新页面
下一步选择全新安装
点击下一步出现如下界面,需要创建数据库及其用户名和密码
由于root用户权限过大,此处需要另配置一个用户来专门访问数据库,方法如下
root@centos7.2 ~ # mysql -p654321 MariaDB [(none)]> CREATE DATABASE ultrax; MariaDB [(none)]> GRANT ALL ON ultrax.* TO 'ultraxuser'@'localhost' IDENTIFIED BY '654321'; ##授权ultrax上面的所有库,给ultraxuser用户只允许本地连接,密码为654321 MariaDB [(none)]> FLUSH PRIVILEGES; ##管理员账号及密码,新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问
此时点击右上角的管理中心,重新登录后会出现如下提示,告知删除文件,在指定目录下删除即可;
应用举例6、配置反向代理,将客户的动态请求代理至php-fpm后端。
1、yum php-fpm (端口:9000) httpd (80) mariadb-server (3306) php-mysql php-xcache
mkdir /var/lib/php/session ###php-session存储路径,基于file形式存储 chown -R apache:apache var/lib/php/session #www.conf配置文件中指明 systemctl start php-fpm.service ##此时9000端口已经打开
2、编辑/etc/httpd/conf.d/vhosts.conf,创建虚拟机,此时启动的是fcgi协议,但是浏览器不支持,需要用web服务器请求,此时配置主机连接至web服务器
9行:关闭正向代理。默认反向代理 10行:将phpinfo.php 这个url这个请求反向代理至后端的127这个主机上,且后端主机文件系统路径为/vhost/www/phpinfo.php 11行:Match过滤,将以php结尾的url请求反向代理至后端的127主机上面的路径上,这里$1等同于正则表达式中的\1,表示替代前面第一个左括号匹配到的内容。 12行:status根监控相关 获取详细状态信息,ping检测系统是否工作正常--php-fpm 13行:设置默认主页 注意:如果没有9-12行,则请求会直接交给前端http服务器处理,则请求页面显示的是phpinfo.php的代码,而不是执行结果。
3、创建touch /vhosts/www/phpinfo.php,重新载入httpd服务
<?php phpinfo(); ?>
4、测试在浏览器中输入http://192.168.1.102/phpinfo.php,如果响应结果为phpinfo();执行的结果则正确。
5、 编辑/etc/php-fpm.d/www.conf 文件,启动如下功能:
pm.status_path = /fpm-status ##根监控相关 获取详细状态信息 # 可以打开测试 ping.path = /ping ##监控测试系统是否工作正常 ping.response = pong
6、在浏览器处输入如下信息,也可以在/fpm-status?( html | xml | full )
应用举例7、通用二进制格式mariadb安装
1、首先确认 httpd mariadb-server php包都没有安装,并将压缩包解压到指定路径下
2、将解压后的文件夹设置软连接,便于管理
3、确认安装包的状态
4、确认mysql用户是否存在,如果不存在则 useradd -r mysql
5、此步骤模拟一个单独的存储设备,且有冗余功能,类似于raid10
6、将文件属组设置为mysql
7、二进制安装数据库,指定数据库安装路径,用户,且忽略名称解析
8、support-files/my-innodb-heavy-4G.cnf my-small.cnf 样例的配置文件复制到指定路径中
9、编辑配置文件
10、将unit file文件复制到对应路径中
11、确保mysqld有执行权限
12、启动mysql服务
13、测试
14、将程序路径放到PATH路径中,并重读配置文件
15、也可参考解压后的目录中具体的安装步骤
应用举例8、编译安装httpd
1、安装devel包,解决依赖关系
2、解压程序包,编译安装
./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so(支持模块动态装卸载) --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all(编译成可动态装卸载的) --with-mpm=prefork(指明默认的mpm) --with-pcre(支持pcre正则表达式引擎) --with-zlib --with-apr=/usr(基于apr编译) --with-apr-util=/usr
3、将程序路径加入到PATH中
4、启动服务 :apachectl start,ss -ntl 查看端口是否打开
5、测试就可以在浏览器中输入服务器地址测试
6、对应配置的config选项都在此目录中:/usr/local/apache2/build/config.nice
存放错误页面类似于404:/usr/local/apache2/error/
编译安装默认网页存放位置:/usr/local/apache2/htdocs
配置文件存放路径,额外配置文件存放在:/etc/httpd/extra
7、此时unit file(systemcl start httpd)还不能使用,需要做如下配置
从另一台centos7主机上拷贝httpd.service 到当前主机,然后修改对应路径
8、此时httpd -M | grep systemd 发现systemd模块缺失,因此需要做配置如下操作:
从另一台centos7主机上拷贝mod_systemd.so动态库文件到指定目录中
编辑配置文件加载模块,也可在主配置文件中,incluede是扩展配置,指向一个配置文件,配置文件里添加loadmodule
9、重启系统systemctl start httpd 可以用了。
原创文章,作者:Naruto,如若转载,请注明出处:http://www.178linux.com/53515