[1] 安装 httpd. [root@linuxprobe ~]# yum -y install httpd # 删除默认欢迎页面 [root@linuxprobe ~]# rm -f /etc/httpd/conf.d/welcome.conf [2] 配置httpd,将服务器名称替换为您本身的环境 [root@linuxprobe ~]# vi /etc/httpd/conf/httpd.conf # line 86: 改变管理员的邮箱地址 ServerAdmin root@linuxprobe.org # line 95: 改变域名信息 ServerName www.linuxprobe.org:80 # line 151: none变成All AllowOverride All # line 164: 添加只能使用目录名称访问的文件名 DirectoryIndex index.html index.cgi index.php # add follows to the end # server's response header(安全性) ServerTokens Prod # keepalive is ON KeepAlive On [root@linuxprobe ~]# systemctl start httpd [root@linuxprobe ~]# systemctl enable httpd [3] 若是Firewalld正在运行,请容许HTTP服务。,HTTP使用80 / TCP [root@linuxprobe ~]# firewall-cmd --add-service=http --permanent success [root@linuxprobe ~]# firewall-cmd --reload success [4] 建立一个HTML测试页,并使用Web浏览器从客户端PC访问它。若是显示如下页面,是正确的 [root@linuxprobe ~]# vi /var/www/html/index.html <html> <body> <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> Welcome access LinuxProbe.org,This is Test Page! </div> </body> </html>
1 [1] 安装Perl. 2 [root@linuxprobe ~]# yum -y install perl perl-CGI 3 [2] 默认状况下,在“/var/www/cgi-bin”目录下容许CGI。 4 可使用Perl Scripts放在目录下。然而,它下面的全部文件都被处理为CGI。 5 # 下面的设置是CGI的设置 6 [root@linuxprobe ~]# grep -n "^ *ScriptAlias" /etc/httpd/conf/httpd.conf 7 247: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 8 [3] 若是你想容许在其余目录中的CGI,配置以下。 9 例如,在“/var/www/html/cgi-enabled”中容许。 10 [root@linuxprobe ~]# vi /etc/httpd/conf.d/cgi-enabled.conf 11 # create new 12 # processes .cgi and .pl as CGI scripts 13 <Directory "/var/www/html/cgi-enabled"> 14 Options +ExecCGI 15 AddHandler cgi-script .cgi .pl 16 </Directory> 17 [root@linuxprobe ~]# systemctl restart httpd 18 [4] 若是SELinux被启用,而且容许CGI在不是像上面[3]的默认目录下,更改规则以下。 19 [root@linuxprobe ~]# chcon -R -t httpd_sys_script_exec_t /var/linuxprobe/html/cgi-enabled 20 [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi-enabled 21 [5] 建立一个CGI测试页面,并使用Web浏览器从客户端PC访问它。若是显示如下页面,说明配置正确。 22 [root@linuxprobe ~]# vi /var/www/html/cgi-enabled/index.cgi 23 #!/usr/bin/perl 24 print "Content-type: text/html\n\n"; 25 print "<html>\n<body>\n"; 26 print "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">\n"; 27 print "CGI Test Page"; 28 print "\n</div>\n"; 29 print "</body>\n</html>\n"; 30 [root@linuxprobe ~]# chmod 705 /var/www/html/cgi-enabled/index.cgi
1 [1] 安装PHP. 2 [root@linuxprobe ~]# yum -y install php php-mbstring php-pear 3 [root@linuxprobe ~]# vi /etc/php.ini 4 # line 878: 取消注释,设置时区 5 date.timezone = "Asia/Shanghai" 6 [root@linuxprobe ~]# systemctl restart httpd 7 8 [2] 建立一个PHP测试页面,并使用Web浏览器从客户端PC访问它。若是显示如下页面,它是肯定。 9 [root@linuxprobe ~]# vi /var/www/html/index.php 10 <html> 11 <body> 12 <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> 13 <?php 14 print Date("Y/m/d"); 15 ?> 16 </div> 17 </body> 18 </html>
1 [3] 建立phpinfo测试页,确认是都开启php支持 2 [root@linuxprobe ~]# echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
1 [1] 安装Ruby. 2 [root@linuxprobe ~]# yum -y install ruby 3 4 [2] 默认状况下,在“/var/www/cgi-bin”目录下容许CGI。 5 可使用Perl Scripts放在目录下。然而,它下面的全部文件都被处理为CGI。 6 # 下面的设置是CGI的设置 7 [root@linuxprobe ~]# grep -n "^ *ScriptAlias" /etc/httpd/conf/httpd.conf 8 247: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 9 10 [3] 若是你想容许在其余目录中的CGI,配置以下。 11 例如,在“/var/www/html/cgi-enabled”中容许。 12 [root@linuxprobe ~]# vi /etc/httpd/conf.d/cgi-enabled.conf 13 # create new 14 # processes .rb as CGI scripts 15 <Directory "/var/www/html/cgi-enabled"> 16 Options +ExecCGI 17 AddHandler cgi-script .rb 18 </Directory> 19 [root@linuxprobe ~]# systemctl restart httpd 20 21 [4] 若是SELinux被启用,而且容许CGI在不是像上面[3]的默认目录下,更改规则以下。 22 [root@linuxprobe ~]# chcon -R -t httpd_sys_script_exec_t /var/www/html/cgi-enabled 23 24 [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi-enabled 25 26 [5] Create a CGI test page and access to it from client PC with web browser. It's OK if following page is shown. 27 [root@linuxprobe ~]# vi /var/www/html/cgi-enabled/index.rb 28 29 #!/usr/bin/ruby 30 print "Content-type: text/html\n\n" 31 print "<html>\n<body>\n" 32 print "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">\n" 33 print "Ruby Script Test Page" 34 print "\n</div>\n" 35 print "</body>\n</html>\n" 36 [root@linuxprobe ~]# chmod 705 /var/www/html/cgi-enabled/index.rb
1 [1] 安装python. 2 [root@linuxprobe ~]# yum -y install python 3 4 [2] 默认状况下,在“/var/www/cgi-bin”目录下容许CGI。 5 可使用Perl Scripts放在目录下。然而,它下面的全部文件都被处理为CGI。 6 # 下面的设置是CGI的设置 7 [root@linuxprobe ~]# grep -n "^ *ScriptAlias" /etc/httpd/conf/httpd.conf 8 247: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 9 10 [3] 若是你想容许在其余目录中的CGI,配置以下。 11 例如,在“/var/www/html/cgi-enabled”中容许。 12 [root@linuxprobe ~]# vi /etc/httpd/conf.d/cgi-enabled.conf 13 # create new 14 # processes .py as CGI scripts 15 <Directory "/var/www/html/cgi-enabled"> 16 Options +ExecCGI 17 AddHandler cgi-script .py 18 </Directory> 19 [root@linuxprobe ~]# systemctl restart httpd 20 21 [4] 若是SELinux被启用,而且容许CGI在不是像上面[3]的默认目录下,更改规则以下。 22 [root@linuxprobe ~]# chcon -R -t httpd_sys_script_exec_t /var/www/html/cgi-enabled 23 [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi-enabled 24 25 [5] Create a CGI test page and access to it from client PC with web browser. It's OK if following page is shown. 26 [root@linuxprobe ~]# vi /var/www/html/cgi-enabled/index.py 27 28 #!/usr/bin/env python 29 30 print "Content-type: text/html\n\n" 31 print "<html>\n<body>\n" 32 print "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">\n" 33 print "Python Script Test Page" 34 print "\n</div>\n" 35 print "</body>\n</html>\n" 36 37 [root@linuxprobe ~]# chmod 705 /var/www/html/cgi-enabled/index.py
1 [1] 配置 httpd. 2 [root@linuxprobe ~]# vi /etc/httpd/conf.d/userdir.conf 3 # line 17: comment out 4 #UserDir disabled 5 # line 24: uncomment 6 UserDir public_html 7 # line 31 - 35 8 9 <Directory "/home/*/public_html"> 10 AllowOverride All 11 # change 12 13 Options None 14 # change 15 16 Require method GET POST OPTIONS 17 </Directory> 18 [root@linuxprobe ~]# systemctl restart httpd 19 20 [2] 建立一个测试页,使用普通用户经过客户端PC与Web浏览器和访问它,若是显示如下页面,就是正确的 21 [cent@linuxprobe ~]$ mkdir public_html 22 23 [cent@linuxprobe ~]$ chmod 711 /home/cent 24 25 [cent@linuxprobe ~]$ chmod 755 /home/cent/public_html 26 27 [cent@linuxprobe ~]$ vi ./public_html/index.html 28 29 <html> 30 <body> 31 <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> 32 UserDir Test Page 33 </div> 34 </body> 35 </html>
浏览器访问:http://linuxprobe.org/~wang/,出现以下界面 php
1 [1] 配置虚拟主机 2 [root@linuxprobe ~]# vi /etc/httpd/conf.d/vhost.conf 3 # for original domain 4 5 <VirtualHost *:80> 6 DocumentRoot /var/www/html 7 ServerName www.linuxprobe.org 8 </VirtualHost> 9 # for virtual domain 10 11 <VirtualHost *:80> 12 DocumentRoot /home/cent/public_html 13 ServerName www.virtual.host 14 ServerAdmin webmaster@virtual.host 15 ErrorLog logs/virtual.host-error_log 16 CustomLog logs/virtual.host-access_log combined 17 </VirtualHost> 18 [root@linuxprobe ~]# systemctl restart httpd 19 20 [2]建立测试页并使用Web浏览器从客户端计算机访问它。若是显示如下页面,则是正确的: 21 [cent@linuxprobe ~]$ vi ~/public_html/virtual.php 22 <html> 23 <body> 24 <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> 25 Virtual Host Test Page 26 </div> 27 </body> 28 </html> 29 [3]若是访问测试时看不到相应页面,可经过下面命令进行测试: 30 [root@linuxprobe ~]# yum -y install elinks^C 31 [root@linuxprobe ~]# elinks http://www.virtual.host/virtual.php
1 [root@linuxprobe ~]# cd /etc/pki/tls/cert 2 cert.pem certs/ 3 [root@linuxprobe ~]# cd /etc/pki/tls/certs/ 4 [root@linuxprobe certs]# make server.key 5 umask 77 ; \ 6 /usr/bin/openssl genrsa -aes128 2048 > server.key 7 Generating RSA private key, 2048 bit long modulus 8 ...............................................................+++ 9 ....................................................................................................+++ 10 e is 65537 (0x10001) 11 Enter pass phrase: 12 Verifying - Enter pass phrase: 13 [root@linuxprobe certs]# openssl rsa -in server.key -out server.key 14 Enter pass phrase for server.key: 15 writing RSA key 16 [root@linuxprobe certs]# make server.csr 17 umask 77 ; \ 18 /usr/bin/openssl req -utf8 -new -key server.key -out server.csr 19 You are about to be asked to enter information that will be incorporated 20 into your certificate request. 21 What you are about to enter is what is called a Distinguished Name or a DN. 22 There are quite a few fields but you can leave some blank 23 For some fields there will be a default value, 24 If you enter '.', the field will be left blank. 25 ----- 26 Country Name (2 letter code) [XX]:CN #国家后缀 27 State or Province Name (full name) []:Shanghai #省 28 Locality Name (eg, city) [Default City]:Shanghai #市 29 Organization Name (eg, company) [Default Company Ltd]:LinuxProbe #公司 30 Organizational Unit Name (eg, section) []:DevOps #部门 31 Common Name (eg, your name or your server's hostname) []:linuxprobe.org #主机名 32 Email Address []:root@linuxprobe.org #邮箱 33 34 Please enter the following 'extra' attributes 35 to be sent with your certificate request 36 A challenge password []: #默认 37 An optional company name []: #默认 38 # 39 [root@linuxprobe certs]# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 40 Signature ok 41 subject=/C=CN/ST=Shanghai/L=Shanghai/O=LinuxProbe/OU=DevOps/CN=linuxprobe.org/emailAddress=root@linuxprobe.org 42 Getting Private key
1 [1] 配置SSL. 2 [root@linuxprobe ~]# yum -y install mod_ssl 3 [root@linuxprobe ~]# vi /etc/httpd/conf.d/ssl.conf 4 # line 59: 取消注释 5 DocumentRoot "/var/www/html" 6 # line 60: 取消注释,定义域名 7 ServerName linuxprobe.org:443 8 # line 75: 改变SSLProtocol 9 SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2 10 11 # line 100: 改为刚刚建立的server.crt 12 SSLCertificateFile /etc/pki/tls/certs/server.crt 13 # line 107: 改为刚刚建立的server.key 14 SSLCertificateKeyFile /etc/pki/tls/certs/server.key 15 [root@www ~]# systemctl restart httpd 16 17 [2] 若是Firewalld正在运行,请容许HTTPS服务。 HTTPS使用443 / TCP 18 [root@www ~]# firewall-cmd --add-service=https --permanent 19 success 20 [root@www ~]# firewall-cmd --reload 21 success 22 [3] 使用Web浏览器经过HTTPS从客户端计算机访问测试页。下面的示例是Fiorefix。显示如下屏幕,由于证书是本身建立的,但它没有ploblem,继续下一步。
1 [1]例如,在目录[/var/www/html/auth-basic]下设置基自己份验证设置。 2 [root@linuxprobe ~]# vi /etc/httpd/conf.d/auth_basic.conf 3 # 建立新配置文件 4 <Directory /var/www/html/auth-basic> 5 AuthType Basic 6 AuthName "Basic Authentication" 7 AuthUserFile /etc/httpd/conf/.htpasswd 8 require valid-user 9 </Directory> 10 # 添加用户:使用“-c”建立新文件(仅为初始注册添加“-c”选项) 11 [root@linuxprobe ~]# htpasswd -c /etc/httpd/conf/.htpasswd wang 12 13 New password: # set password 14 15 Re-type new password: # confirm 16 17 Adding password for user wang 18 [root@linuxprobe ~]# systemctl restart httpd 19 [root@linuxprobe ~]# mkdir /var/www/html/auth-basic 20 21 [root@linuxprobe ~]# vi /var/www/html/auth-basic/index.html 22 # create a test page 23 24 <html> 25 <body> 26 <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: wanger;"> 27 Test Page for Basic Auth 28 </div> 29 </body> 30 </html> 31 32 [2] 使用Web浏览器从客户端计算机访问测试页。而后须要认证,以下所示做为设置,用在[1]中添加的用户回答
[3] 访问成功 html
1 [1] 建立证书,请参照上文所述。 2 [2] 例如,在[/var/www/html/auth-pam]目录下设置Basic Auth。 3 # install from EPEL 4 [root@linuxprobe ~]# yum --enablerepo=epel -y install mod_authnz_external pwauth 5 [root@linuxprobe ~]# vi /etc/httpd/conf.d/authnz_external.conf 6 # add to the end 7 8 <Directory /var/www/html/auth-pam> 9 SSLRequireSSL 10 AuthType Basic 11 AuthName "PAM Authentication" 12 AuthBasicProvider external 13 AuthExternal pwauth 14 require valid-user 15 </Directory> 16 17 [root@linuxprobe ~]# mkdir /var/www/html/auth-pam 18 19 [root@linuxprobe ~]# vi /var/www/html/auth-pam/index.html 20 # create a test page 21 22 <html> 23 <body> 24 <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> 25 Test Page for PAM Auth 26 </div> 27 </body> 28 </html> 29 30 [root@linuxprobe ~]# systemctl restart httpd 31 [3] 在客户端上使用Web浏览器访问测试页面https://linuxprobe.org/auth-pam/,并与操做系统上的用户进行身份验证。
1 [1] 建立证书,请参照上文所述 2 [2] 例如,建立一个目录[webdav],它使得能够仅经过SSL链接到WebDAV目录。 3 [root@linuxprobe ~]# mkdir /home/webdav 4 [root@linuxprobe ~]# chown apache. /home/webdav 5 [root@linuxprobe ~]# chmod 770 /home/webdav 6 [root@linuxprobe ~]# vi /etc/httpd/conf.d/webdav.conf 7 # create new 8 DavLockDB "/tmp/DavLock" 9 Alias /webdav /home/webdav 10 <Location /webdav> 11 DAV On 12 SSLRequireSSL 13 Options None 14 AuthType Basic 15 AuthName WebDAV 16 AuthUserFile /etc/httpd/conf/.htpasswd 17 <RequireAny> 18 Require method GET POST OPTIONS 19 Require valid-user 20 </RequireAny> 21 </Location> 22 23 # 添加用户:使用“-c”建立新文件(仅为初始注册添加“-c”选项) 24 [root@linuxprobe ~]# htpasswd -c /etc/httpd/conf/.htpasswd wang 25 New password: # set password 26 Re-type new password: 27 Adding password for user wang 28 # **注意:用户wang的htpasswd已经建立过,不须要重复建立** 29 [root@linuxprobe ~]# systemctl restart httpd 30 31 [3] 若是启用了SELinux,请更改如下规则。 32 [root@linuxprobe ~]# chcon -R -t httpd_sys_rw_content_t /home/webdav 33 [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_rw_content_t /home/webdav 34 35 [4] 这是PC上的WebDAV客户端的设置(Windows 10)。 36 下载“CarotDAV”,这是一个免费的WebDAV客户端,从如下网站⇒ http://www.rei.to/carotdav_en.html ,下载后,安装并启动CarotDAV,而后显示如下屏幕,单击“文件”按钮并选择“WebDAV”。
1 [5]在“设置名称”字段中输入任何名称,并在“URI”字段中输入[服务器名称/ webdav目录],并输入用户名和密码
1 [7]配置添加以下,点击它链接到服务器。
1 [8] waring显示以下,它的SSL证书没有安装在您的电脑上,它没有ploblem,点击“忽略”,而后去下一步。
1 [9] 到webdav目录下建立测试目录和文件 2 [root@linuxprobe tmp]# cd /home/webdav/ 3 [root@linuxprobe webdav]# mkdir linuxprobe 4 [root@linuxprobe webdav]# mkdir linuxcool 5 [root@linuxprobe webdav]# touch vdevops.txt 6 [root@linuxprobe webdav]# touch linuxcool.txt
尊重他人劳动成果,看到的原文地址:http://blog.csdn.net/wh211212/article/details/52982917python