首页服务器CentOS系统如何安装配置Apache并支持Perl,PHP,Ruby等,并且设置WebDAV?

CentOS系统如何安装配置Apache并支持Perl,PHP,Ruby等,并且设置WebDAV?

时间2024-03-21 19:13:03发布访客分类服务器浏览299
导读:这篇文章分享给大家的内容是关于CentOS系统如何安装配置Apache并支持Perl,PHP,Ruby等,并且设置WebDAV?,本文介绍得很详细,内容有一定的参考价值,能帮助大家进一步学习和理解“CentOS系统如何安装配置Apache并...
这篇文章分享给大家的内容是关于CentOS系统如何安装配置Apache并支持Perl,PHP,Ruby等,并且设置WebDAV?,本文介绍得很详细,内容有一定的参考价值,能帮助大家进一步学习和理解“CentOS系统如何安装配置Apache并支持Perl,PHP,Ruby等,并且设置WebDAV?”,有这方面学习需要的朋友可以看看,接下来就让小编带领大家一起来学习一下吧。


一、Apache简介

  • Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性(尽管不断有新的漏洞被发现,但由于其开放源代码的特点,漏洞总能被很快修补。因此总合来说,其安全性还是相当高的。)。被广泛使用,是最流行的Web服务器软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
  • 软件图标

二、安装Apache httpd

  • 安装httpd以配置Web服务器, HTTP使用80 / TCP
[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>
    

三、支持Perl

  • 启用CGI执行并使用Perl脚本
 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>
    \nbody>
    \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 

四、支持PHP

  • 配置httpd以使用PHP脚本
 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

五、支持Ruby

  • 配置httpd以将Ruby脚本用作CGI
 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>
    \nbody>
    \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 

六、支持Python

  • 启用CGI执行并使用Python脚本
 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>
    \nbody>
    \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

7、支持Userdir

  • 启用userdir,用户可以使用此设置创建网站
 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/,出现如下界面

8、设置虚拟主机

  • 配置虚拟主机以使用多个域名。

    以下示例在域名为[linuxprobe.org],虚拟域名为[virtual.host(根目录[/home/wang/public_html]]的环境中设置。

    必须为此示例设置Userdir的设置
 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

9、创建SSL证书

  • 创建自己的SSL证书。但是,如果您使用您的服务器作为业务,最好购买和使用来自Verisigh的正式证书等。
 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

10、配置SSL

 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,继续下一步。

11、启用基本身份验证

  • 启用基本身份验证以限制特定网页的访问
 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] 访问成功

12、基本Auth + PAM

  • 限制特定网页上的访问,并使用OS用户通过SSL连接进行身份验证
 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/,并与操作系统上的用户进行身份验证。



13、使用WebDAV

  • 下面是使用SSL连接配置WebDAV设置的示例
 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


关于“CentOS系统如何安装配置Apache并支持Perl,PHP,Ruby等,并且设置WebDAV?”的内容就介绍到这,感谢各位的阅读,相信大家对CentOS系统如何安装配置Apache并支持Perl,PHP,Ruby等,并且设置WebDAV?已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS系统如何安装配置Apache并支持Perl,PHP,Ruby等,并且设置WebDAV?
本文地址: https://pptw.com/jishu/649466.html
Centos系统如何yum安装Nginx和502错误怎么解决? CentOS系统如何安装配置redmine项目管理?

游客 回复需填写必要信息