要在内网搭个IT资产管理系统,选了centos7最新版,在exsi6.0上开始的。
首先安装centos7,最小安装之后安装openssh过程略。
之后putty远程连进centos7,安装apache和php和sqlite。
Apache软件的软件包名称叫做httpd,因此,要安装Apache软件,就使用下述命令:

[root@localhost ~]# yum install httpd

安装完成后,Apache是以httpd服务的形式存在的。因此,要启动Apache并将其设置为开机启动,就使用命令:

[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl enable httpd.service

然后,检查httpd服务状态:

[root@localhost ~]# systemctl status httpd.service

其中,“enabled”表示httpd服务已设为开机启动,“active(running)”则表示httpd服务正在运行中。
这样的话,HTTP协议就已被启动起来了,由于HTTP协议使用到tcp端口80,因此防火墙要放通tcp端口80:

[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙以让更改立刻生效:

[root@localhost ~]# firewall-cmd --reload

使用以下命令检查配置是否成功:

[root@localhost ~]# firewall-cmd --list-all

其中,,tcp端口80已放行通过了。
然后这个时候,就可以在物理机上使用浏览器来访问刚刚搭建的web服务器了。不过,因为这个时候还未创建任何页面,所以它显示的是Apache软件自带的测试页面。
设置Apache配置文件
Apache软件的主配置文件为/etc/httpd/conf/httpd.conf。关于Apache 2.4版软件的详细说明文档,可在网页http://httpd.apache.org/docs/2.4/en/中查阅到。特别是,关于主配置文件httpd.conf中各指令的详细说明,可在网页http://httpd.apache.org/docs/2.4/mod/directives.html中查阅到。
关于Apache 2.4版软件的详细说明文档,也可以将它安装在本地Linux主机上面,使用命令yum install httpd-manual即可安装它。安装完成后,重启httpd服务。在web服务运行正常的情况下,可在本地Linux主机上面使用网址http://localhost/manual/来访问它。在其它设备上面,则使用相应的网址即可,如在本实例中,我可以在物理机上使用网址http://172.31.2.2/manual/来访问它。
另外还需要知道:/etc/httpd/conf.d目录下以.conf结尾的配置文件也会被读取;可加载模块(如PHP)的配置文件应放置在/etc/httpd/conf.modules.d目录下,并且也以.conf结尾。

下面介绍一下httpd.conf这个配置文件的内容(少量配置有修改):

ServerRoot "/etc/httpd"                      //服务器根目录:本配置文件中没有使用绝对路径的地方,都认为是在该目录下              
Listen 80                                    //侦听80端口                                                                                                            
                                                                                                                                                                               
Include conf.modules.d/*.conf                                                                                                                                    
//该设定让/etc/httpd/conf.modules.d目录下以.conf结尾的配置文件也会被读取进来。DSO对象的配置文件应放置在此目录下       
                                                                                                                                                                               
User apache                                                                                                                                                             
Groupapache                                                                                                                                                           
//当你使用浏览器访问web服务器时,会产生相应的httpd进程,该进程所属的用户和组就由这里设定。                                       
                                                                                                                                                                               
//从这里开始,下面的设定适用于“主”服务器,与虚拟主机区别开来。但如果<VirtualHost>部分未设定这些值,也会使用这些值  
                                                                                                                                                                               
ServerAdmin root@localhost                 //系统管理员的邮箱。改成自己的邮箱即可。                                                         
ServerName www.speedsnail.com            //设置主机名。生产环境中,该主机名应该是能被正确解析成这台服务器的IP的。       
                                                                                                                                                                               
<Directory />                                                                                                                                                           
   AllowOverride none                                                                                                                                               
   Require all denied                                                                                                                                                  
</Directory>                                                                                                                                                            
//<Directory 目录路径>和</Directory>:用于设定指定目录(这里是系统根目录)的访问权限。目录路径那里可以使用绝对         
//路径和相对路径,还可以搭配使用通配符和正则表达式。                                                                                                  
//AllowOverride:如果指定目录下(这里是系统根目录)存在一个.htaccess文件,那么AllowOverride设定的是,该文件里面的     
//设置是否能够覆盖<Directory>这部分的设置,或该文件里面的设置可以覆盖的是<Directory>这部分的哪些设置。none表示不    
//允许进行覆盖。                                                                                                                                                        
//Require:设定哪些用户可以访问该目录(这里是系统根目录)。all denied表示不允许访问该目录。                                       
                                                                                                                                                                               
DocumentRoot "/var/www/html"                                                                                                                                 
//设定网页存放目录。比如说,访问http://host/index.html实际上就是访问这个host的/var/www/html/index.html这个文档。         
                                                                                                                                                                                
<Directory "/var/www">                                                                                                                                             
   AllowOverride None                                                                                                                                                
   Require all granted                        //all granted表示可无条件访问该目录。                                                                   
</Directory>                                                                                                                                                             
                                                                                                                                                                                
<Directory"/var/www/html">                                                                                                                                       
   Options FollowSymLinks                                                                                                                                          
   AllowOverride None                                                                                                                                                
   Require all granted                                                                                                                                                 
</Directory>                                                                                                                                                             
//Options:用于设定在该目录中哪些特性可用。FollowSymLinks,让该目录下的符号链接可以生效。默认这里还有个Indexes选     
//项,建议拿掉。它的作用是,当浏览器访问该目录(而非该目录下的某一个档案)时,如果该目录下没有默认网页(如index.html),
//那么此时就会返回该目录下的文件名列表。                                                                                                                    
                                                                                                                                                                                
<IfModule dir_module>                                                                                                                                             
   DirectoryIndex index.html                                                                                                                                        
</IfModule>                                                                                                                                                             
//<IfModule 模块>和</IfModule>:如果Apache有加载这里指定的模块,那么Apache就会对它们之间的语句进行处理。            
//也可以使用<IfModule!模块>和</IfModule>,那么就表示没有加载指定的模块时才进行处理。                                              
//这里的模块可以是模块ID(如rewrite_module),也可以是模块文件名(如mod_rewrite.c)。                                               
//DirectoryIndex:这就是设置默认网页的,即当浏览器访问某一个目录时,会返回该目录下的index.html文件(如果存在的话)。   
//也可以接多个档名,如DirectoryIndexindex.html index.htm index.cgi index.pl,这样就会返回找到的第一个文件。                   
                                                                                                                                                                                
<Files ".ht*">                                                                                                                                                             
   Require all denied                                                                                                                                                   
</Files>                                                                                                                                                                    
//<Files 文件名>和</Files>:对指定文件名的文件应用这里指定的语句。                                                                              
//这里的语句的意思是:任意目录下,文件名符合.ht*的文件都会被禁止访问。                                                                         
                                                                                                                                                                                
ErrorLog "logs/error_log"                           //错误日志所在文档为/etc/httpd/logs/error_log                                             
LogLevel warn                                     //设置日志记录级别                                                                                            
                                                                                                                                                                                
<IfModule log_config_module>                                                                                                                                  
   LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\"" combined                                               
   LogFormat "%h %l %u %t \"%r\" %>s %b" common                                                                                                  
   <IfModule logio_module>                                                                                                                                       
     LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio                               
   </IfModule>                                                                                                                                                          
   CustomLog "logs/access_log" combined        //客户端访问服务器的日志会记在/etc/httpd/logs/access_log                       
</IfModule>                                                                                                                                                             
                                                                                                                                                                                
<IfModule alias_module>                                                                                                                                           
   ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"                                                                                                                   
</IfModule>                                                                                                                                                             
//ScriptAlias会将URL路径映射到指定目录,并且让该目录具有CGI脚本执行权限(因此CGI脚本都可放置在该目录下)。                
//以这里的设定举个例子,假如在浏览器中输入http://example.com/cgi-bin/foo,此时就会执行/var/www/cgi-bin/foo这个         
//CGI脚本。                                                                                                                                                               
                                                                                                                                                                                
<Directory"/var/www/cgi-bin">                                                                                                                                   
   AllowOverride None                                                                                                                                                
   Options None                                                                                                                                                         
   Require all granted                                                                                                                                                 
</Directory>                                                                                                                                                             
                                                                                                                                                                                
<IfModule mime_module>                             //这部分是关于MIME的                                                                            
   TypesConfig /etc/mime.types                                                                                                                                   
   AddType application/x-compress .Z                                                                                                                         
   AddType application/x-gzip .gz .tgz                                                                                                                          
   AddType text/html .shtml                                                                                                                                         
   AddOutputFilter INCLUDES .shtml                                                                                                                             
</IfModule>                                                                                                                                                             
                                                                                                                                                                                
AddDefaultCharset Off                                                                                                                                               
//AddDefaultCharset会强制客户端浏览器使用指定的字符集编码方式。这可能会有问题,所以要将它关闭。实际上,所使用的编     
//码方式在网页里有声明。                                                                                                                                            
                                                                                                                                                                                
<IfModule mime_magic_module>                                                                                                                               
   MIMEMagicFile conf/magic                                                                                                                                     
</IfModule>                                                                                                                                                             
                                                                                                                                                                                
EnableSendfile on                                           //允许Apache使用系统核心支持的sendfile来传送文件给客户端                      
IncludeOptional conf.d/*.conf                          //在/etc/httpd/conf.d目录下以.conf结尾的配置文件也会被读取                      

从上面也可以知道,默认情况下,网页文档可以放置在/var/www/html目录下,CGI脚本可以放置在/var/www/cgi-bin目录下;错误日志在/etc/httpd/logs/error_log,访问日志在/etc/httpd/logs/access_log。

设定好配置文件后,要测试配置文件语法有没有问题,可使用命令:

[root@localhost ~]#apachectl configtest

然后,重启httpd服务:

[root@localhost ~]# systemctl restart httpd

安装PHP
使用以下命令安装PHP软件:

[root@localhost ~]# yum install php

安装完成后,PHP会生成配置文件/etc/httpd/conf.d/php.conf,因为该配置文件在/etc/httpd/conf.d目录下,所以它会被Apache所读取。PHP还会生成配置文件/etc/httpd/conf.modules.d/10-php.conf,该配置文件也会被Apache所读取,它的设定让Apache可以加载PHP模块。不过,PHP软件本身的配置文件其实是/etc/php.ini。

下面介绍一下配置文件/etc/httpd/conf.d/php.conf:
<FilesMatch \.php$>                                                                                                                                       
   SetHandler application/x-httpd-php                                                                                                               
</FilesMatch>                                                                                                                                                
//<FilesMatch 正则表达式>和</FilesMatch>:文件名与正则表达式相匹配的文件,将适用这里设定的语句。                   
//SetHandler:强制所有匹配的文件使用指定handler进行处理。                                                                               
                                                                                                                                                                     
AddType text/html .php                          //设定扩展名为.php的档案的类型为text/html                                            
DirectoryIndex index.php                         //默认网页档名增加index.php                                                               
php_value session.save_handler"files"                                                                                                               
php_value session.save_path    "/var/lib/php/session"                                                                                        
 
下面介绍一下配置文件/etc/httpd/conf.modules.d/10-php.conf:
<IfModule prefork.c>                                                                                                                                     
 LoadModule php5_module modules/libphp5.so                                                                                               
</IfModule>                                                                                                                                                  
//如果Apache使用的多处理模块(MPM)是prefork(默认),那么Apache就会加载LoadModule指定的模块(PHP模块)       
 
最后,来看看配置文件/etc/php.ini。在该文件的开头处,有说明针对生产环境和开发环境,有一些设定值可以进行修改,以提高PHP的效能。假设该web服务器是用于生产环境的,将下面的这些设定值改成这样(或确认这些设定值是这样的):
display_errors = Off                                       //当发生错误时,不将错误信息显示出来(到浏览器上)                          
display_startup_errors = Off                               //不将PHP启动时发生的错误信息显示出来(到浏览器上)                    
error_reporting = E_ALL &~E_DEPRECATED & ~E_STRICT   //这一项设定PHP会告知的错误或信息类型                       
html_errors = On                                         //当PHP显示或记录错误信息时,将该信息格式化成HTML格式                
log_errors = On                                           //这让PHP可以将错误信息日志记录到日志文件里                                 
ignore_repeated_errors = On                              //忽略重复的错误信息                                                               
ignore_repeated_source = On                             //当忽略重复的错误信息时忽略信息源                                          
post_max_size = 25M                                      //PHP所允许的POST数据的最大值。可按照需要进行调整                    
file_uploads = On                                          //允许文件上传,默认为On                                                             
upload_max_filesize = 20M                                 //上传文件所允许的最大值。可按照需要进行调整                            
memory_limit = 128M                                     //PHP可用的最大内存。可按照需要进行调整                                      
 

然后,重启httpd服务:

[root@localhost~]# systemctl restart httpd

为了测试Apache能不能正常调用PHP,在/var/www/html目录下新建一个phpinfo.php文档,内容如下所示:

vi /var/www/html/phpinfo.php
<?php phpinfo(); ?>

其中的<?php ?>是PHP程序的语法,phpinfo ();则是PHP程序提供的一个函式库,该函式库可以显示出你这个web服务器的相关信息。然后,使用浏览器来访问服务器的这个文件,看看页面能不能正常打开。

安装sqlite

yum install sqlite*
yum install php-sqlite*

会自动匹配安装包。
重启一次apache的httpd服务:

systemctl restart httpd.service

完毕。

标签: none

添加新评论