CentOS 7 LAMP搭建---RPM安装

 

1、简单安装Apache,实现基于主机名虚拟主机功能

2Apache+PHP+MariaDB,搭建LAMP

3、搭建phpmyadmin实现数据库图形化管理:

4、为pma.stux.com提供https服务

5、搭建wordpress论坛

6、搭建discuz论坛

 

 

 

虚拟机相关信息--

[root@localhost ~]# uname –r         //查看内核版本
3.10.0-229.el7.x86_64
[root@localhost ~]# cat /etc/redhat-release        //查看系统发行版
CentOS Linux release 7.1.1503 (Core)
[root@localhost ~]# ip add |awk -F '[ /]+''/inet\>/&&!/127.0.0.1/ {print $3}'        //本机的IP地址
172.16.113.52
[root@localhost httpd]# systemctl stop firewalld.service      //关闭系统防火墙
[root@localhost httpd]# setenforce 0    //关闭selinux
[root@localhost httpd]# sed -i"s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config //永久关闭selinux

 

 

1、简单安装Apache,实现基于主机名虚拟主机功能

 

实现基于主机名的虚拟主机

pma.stux.com

wp.stux.com

dz.stux.com

 

需要的软件包:

httpd.x86_64

 

  • 安装软件包:

[root@localhost ~]# yum install -y httpd         //需事先配置好yum源
[root@localhost ~]# rpm -q httpd   //查询软件包是否安装成功
httpd-2.4.6-31.el7.centos.1.x86_64

//hpptd安装完成后,配置文件会安装在/etc/httpd/conf/httpd.conf以及/etc/httpd/conf.d/*.conf结尾的文件都是其配置文件。网页的主目录默认为/var/www/html,但此次实验目的是实现基于主机名的虚拟主机配置,因此,将不会用到默认网站文件路径。另外,httpd2.4将配置文件实行了“分片式管理”,将各个不同的功能分割成多个配置文件,放置在/etc/httpd/conf.modules.d/

 

2)      Apache配置文件的几个重要参数说明:

ServerRoot "/etc/httpd"          //Apache的默认工作路径
Listen 80           //服务器监听的端口,格式为IP:PORT,IP省略时,表示监听本机的所有地址
DocumentRoot "/var/www/html"  //网页文件的根目录;比如说在服务器的/var/www/html下有个a.txt,若想是用URL访问,则URL路径为:http://172.16.113.52/a.txt,cichu 此处的/a.txt就是服务器的/var/www/html
<Directory>      //相当于一个容器,限定某一范围的指令,作用于指定的文件系统目录及其所有子目录,容器的结尾用</Directory>将内容封装起来
<Location>       //相当于一个容器,限定某一个网页,只对某一网页进行规则限定,容器结尾用</Location>封装起来


 

 

3)      编辑配置文件,禁用中心主机:

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

#DocumentRoot "/var/www/html"         //Apache的配置中,尽量不要使用中心主机与虚拟主机共存,避免产生冲突,故,此处注释中心主机的网站根目录

 

4)      创建虚拟主机的配置文件:

[root@localhost ~]# cd /etc/httpd/        
[root@localhost httpd]# vim conf.d/vhosts.conf    //配置文件要以.conf结尾
<VirtualHost 172.16.113.52:80>     //固定格式
       Servername pma.stux.com     //定义虚拟主机主机名
       DocumentRoot "/web/vhosts/pma"       //此虚拟主机的网页文件目录
       ErrorLog "logs/error_pma.log"       //定义错误日志路径,此路径相对于主配置文件中的“ServerRoot”项
       CustomLog "logs/access_pma.log" combined        //定义访问日志的路径,combined为主文件中LogFormat定义的日志格式
 </VirtualHost>
 
 
<VirtualHost 172.16.113.52:80>
       Servername wp.stux.com
       DocumentRoot "/web/vhosts/wp"
       ErrorLog "logs/error_wp.log"
       CustomLog "logs/access_wp.log" combined
</VirtualHost>
 
 
<VirtualHost 172.16.113.52:80>
       Servername dz.stux.com
       DocumentRoot "/web/vhosts/dz"
       ErrorLog "logs/error_dz.log"
       CustomLog "logs/access_dz.log" combined
</VirtualHost>
 
<Directory "/web/vhosts">
        AllowOverRide none
        require all granted
</Directory>


需要特别注意一下:httpd2.4版本需要对每个网站文件目录授权,若不做授权操作,客户端是无法正常访问网页的。其之前版本不需要

 

 

        

5)      为虚拟主机创建网页文件目录:

[root@localhost httpd]# mkdir -pv /web/vhosts/{pma,wp,dz}
mkdir: created directory ‘/web’
mkdir: created directory ‘/web/vhosts’
mkdir: created directory ‘/web/vhosts/pma’
mkdir: created directory ‘/web/vhosts/wp’
mkdir: created directory ‘/web/vhosts/dz’

 

6)      为三个主机分别提供网站默认主页:index.html文件

[root@localhost httpd]# echo "Page atpma" >> /web/vhosts/pma/index.html
[root@localhost httpd]# echo "Page atdz" >> /web/vhosts/dz/index.html   
[root@localhost httpd]# echo "Page atwp" >> /web/vhosts/wp/index.html

 

7)      检验配置文件是否有误,若无误则启动httpd

[root@localhost httpd]# httpd -t   //若出现set ServerName之类的错误,可忽略
Syntax OK
[root@localhost httpd]# systemctl start httpd.service//CentOS7上服务管理命令
[root@localhost httpd]# ss -tan | grep 80      //查看服务是否已启动,80端口已处于监听状态
LISTEN    0      128                      :::80                      :::*

 

8)      设置开机自动启动httpd服务

[root@localhost httpd]# systemctl enable httpd  //设置开机自启动
[root@localhost httpd]# systemctl list-unit-files | grep httpd        //查看设置是否生效
httpd.service                               enabled

 

 

 

9)      测试修改测试机的hosts文件(WindowsC:\WINDOWS\system32\drivers\etc\hosts)添加如下内容,并保存

wKiom1X9GADCRyZcAALo6hbcrnk678.jpg

浏览器访问测试:

wKiom1X9GBXAV3jVAACjN8qYe4o935.jpg

wKioL1X9Gl7SMNAZAABgSD7DwVM267.jpg

wKiom1X9GCyDemqEAABzO4dDXM0938.jpg

 

虚拟主机已生效

 

 

2Apache+PHP+MariaDB,搭建LAMP

此实验环境以上述基于主机名的虚拟主机为基础搭建:

需要的软件包:

php.x86_64

php-mysql.x86_64     ---php支持mariadb的驱动

mariadb-server.x86_64

 

1)      安装软件包:

[root@localhost httpd]# yum install -y mariadb-server php php-mysql

注:需使用httpdprefork模型搭建lamp,修改httpdMPM,编辑/etc/httpd/conf.modules.d/00-mpm.conf,将对应的模块开启,其他模块注释掉即可

 

2)      启动mariadb,并设置开机自动启动:并重启httpd

[root@localhost httpd]# systemctl start mariadb
[root@localhost httpd]# systemctl list-unit-files | grep mariadb
mariadb.service                             enabled
[root@localhost httpd]# systemctl restart httpd

 

3)      编写php以及mariadb的测试网页:

在网站文件目录下,例如在pma网站目录(/web/vhosts/pma)创建并编写index.php文件,内容如下

<?php
       $link=mysql_connect('localhost','root','');
       if ($link)
                echo "OK";
       else
                echo "Faulse";
 
       phpinfo();
?>

 

4)      在测试机的浏览器上输入urlhttp://pma.stux.com/index.php,若显示如下信息,则说明httpdphpmariadb三者结合成功。

wKioL1X9GnGhhvMLAANzTWHeTEw660.jpg

 

 

3、搭建phpmyadmin实现数据库图形化管理:

 

此实验环境以上述基于主机名的虚拟主机为基础搭建:

 

1)      下载phpMyadmin软件包

[root@localhost src]# cd /usr/local/src/

[root@localhostsrc]#wget https://files.phpmyadmin.net/phpMyAdmin/4.4.14.1/phpMyAdmin-4.4.14.1-all-languages.zip

//此链接为官网(http://www.phpmyadmin.net/)的程序包下载地址,wgetlinux上的下载命令,若无此命令需yuminstall –y wget 或者,在其他环境下下载到程序包,通过软件传递至主机即可

 

2)      解压文件,并拷贝到网站文件目录下

[root@localhost src]# unzip phpMyAdmin-4.4.14.1-all-languages.zip
//此软件包为zip压缩格式,所以用unzip解压(若无unzip命令,自行yum安装)
[root@localhost src]# rm -rf /web/vhosts/pma/*           //清空网站目录下的文件
[root@localhost src]# cp -r phpMyAdmin-4.4.14.1-all-languages /web/vhosts/pma/dbadmin
  //程序包拷贝到网站文件目录下,名为dbadmin

 

3)      phpMyadmin需要依赖于php-mbstring.x86_64,若不安装则会出现以下提示:

wKiom1X9GD_SJh9GAADd1oVqlJk833.jpg

[root@localhost conf.modules.d]# yum install -y php-mbstring     //安装


 

 

4)      配置phpMyadmin

a创建配置文件

[root@localhost~]# cd /web/vhosts/pma/dbadmin
[root@localhostdbadmin]# cp config.sample.inc.php config.inc.php

b配置

phpMyadmin的配置无需作多更改,只需要在$cfg['blowfish_secret'] = ''处填写一个随机数当做随机密码即可:

[root@dns-master-113~]# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs
S2MHMTvCfwT44BCYIw2OS3xrDFKcAt  //生成一段随机数


         wKioL1X9GoKwijYkAACX4dLIzS0120.jpg

 

5)      重启httpd服务,并做测试:

[root@localhost dbadmin]# systemctl restart httpd.service

 

6)      测试:

wKiom1X9GFnBoHjTAAFcNBqBpPQ587.jpg

测试成功;

7)      mariadb数据库为root添加密码测试远程登录:

[root@localhost dbadmin]# mysql
MariaDB [(none)]> GRANT ALL ON *.* TO'root'@'localhost' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> GRANT ALL ON *.* TO'root'@'127.0.0.1' IDENTIFIED BY 'root';        
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

 

8)      使用phpMyadmin测试连接:输入用户名密码后:

wKioL1X9GqLxEJa0AAO-oHo-tIU327.jpg

测试成功

 

 

4、为pma.stux.com提供https服务

此实验环境以上述基于主机名的虚拟主机为基础搭建:

 

 

Openssl自建CA实现证书签发,完成https服务实现。

需要安装mod_ssl模块。让服务器支持https服务

1、自建立CACAIP

[root@localhost ~]# ip add | awk -F'[ /]+' '/inet\>/&&!/127.0.0.1/{print $3}'
172.16.113.33

A、创建CA服务器端所需要的文件

[root@localhost CA]# touch index.txt
[root@localhost CA]# echo 01 > serial

 

b、生成CA服务器(172.16.113.33)的私钥:

[root@localhost CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)
 //此处注意。CA私钥的路径及名字都必须和此处所示一致,加上括号执行命令是为了直接设置生成的私钥权限为600
Generating RSA private key, 2048 bit longmodulus
........................................................................+++
................................................................................................+++
e is 65537 (0x10001)


c   生成CA的自签证书

[root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300
//-x509参数只在CA自签证书时用


wKiom1X9GHKSw6m2AALa7Cs4LrI353.jpg

 

2WEB服务器(172.16.113.52)生成私钥:

[root@localhost dz]# cd /etc/httpd/       //切换至httpd的工作目录
 [root@localhosthttpd]# mkdir ssl         //创建一个专门放置证书的目录
[root@localhost httpd]# (umask 077;openssl genrsa -out ssl/httpd-private.key 2048)         
//创建私钥,加上括号是为了直接设置生成的私钥权限为600
Generating RSA private key, 2048 bit longmodulus
.......+++
........................................+++
e is 65537 (0x10001)

 

3WEB服务器(172.16.113.52)生成证书申请请求

wKioL1X9Gryh78LKAAObAGqryjc716.jpg

 

4、将证书申请请求发送给CA服务器

[root@localhost httpd]# scp ssl/pam.stux.com.csr root@172.16.113.33:/tmp/  
//此命令意为将本地ssl目录下的文件以root(对方服务器管理员)身份传递到172.16.113.33服务器
的tmp目录下


 

5CA服务器(172.16.113.33)WEB服务器签发证书并将证书传送至WEB服务器

[root@localhost CA]# openssl ca -in /tmp/pam.stux.com.csr -out certs/pma.stux.com.crt -days 365
////省略部分信息
Certificate is to be certified until Sep 1806:56:41 2016 GMT (365 days)
Sign the certificate? [y/n]:y               //这里选择y
 
1 out of 1 certificate requests certified,commit? [y/n]y                 //这里选择y
Write out database with 1 new entries
Data Base Updated
[root@localhost CA]# scp certs/pma.stux.com.crt root@172.16.113.52:/etc/httpd/ssl
   //将签发的证书传输到web服务器端


 

6WEB服务器(172.16.113.52)安装mod_ssl模块,并作出相应的配置:

[root@localhost httpd]# yum install -ymod_ssl     //安装mod_ssl模块
//安装完成后,会生成配置文件/etc/httpd/conf.d/ssl.conf,编辑此配置文件
将#DocumentRoot "/var/www/html"  --- >改为 DocumentRoot"/web/vhosts/pma"   
                                                                                                                                              
将#ServerName www.example.com:443 -- >改为 pma.stux.com:443

将<VirtualHost _default_:443> --- > 改为 <VirtualHostpma.stux.com:443>

将SSLCertificateFile /etc/pki/tls/certs/localhost.crt  ---- > 改为 SSLCertificateFile/etc/httpd/ssl/pma.stux.com.crt

将SSLCertificateKeyFile /etc/pki/tls/private/localhost.key    --->改为SSLCertificateKeyFile/etc/httpd/ssl/httpd-private.key
更改完成后,保存退出
[root@localhost httpd]# httpd –t   //检查配置文件是否存在问题,若无问题,重新启动httpd
[root@localhost httpd]# systemctl restar thttpd.service       //重启htpd

 

7、将CA服务器证书导出到测试主机,并添加浏览器信任,进行测试(使用sftp工具)

wKiom1X9GJDRhrrXAACYSgpwSUU735.jpg

将其改名为.crt为后缀,其会自动变为证书样式(前提系统没有隐藏文件的后缀名显示),如下:

wKiom1X9GKTTcS8nAAAdqZs5HG8929.jpg

 

将证书导入浏览器(Firefox为例),操作如下:

wKioL1X9GuuQbnNnAAR9EM7ZdDk785.jpg

wKiom1X9GNnRkZB_AAFxDrtQv8E847.jpg

 

导入证书:

wKioL1X9GyCioySRAAPziyEp-mc507.jpg

 

选择信任使用此CA打钩

wKiom1X9GPPB851nAAFF9AxF8gs202.jpg

 

使用https协议访问网站:https://pma.stux.com/dbadmin

wKioL1X9GzqBEl13AAFJ0M099GI255.jpg

 

实验成功

 

 

 

 

 

 

 

5、搭建wordpress论坛

此实验环境以上述基于主机名的虚拟主机为基础搭建:

 

下载程序包:https://cn.wordpress.org/

wKioL1X9G1uBuNmQAAA-sst5Ukc288.jpg

1、使用sftp工具将软件包传送至服务器:

wKiom1X9GTSC3ru9AABajqBmRGY945.jpg

2、移动程序包到/usr/local/src目录下,并解压

[root@localhost ~]# mv wordpress-4.3.1-zh_CN.zip /usr/local/src/
[root@localhost src]# unzip wordpress-4.3.1-zh_CN.zip

3、将解压出来的文件全部copywp.stux.com的网站文件目录中去

[root@localhost src]# cp -r wordpress/*/web/vhosts/wp/

 

4)      创建配置文件,wp-config-sample.php—此文件为配置文件模板,直接copy一份重命名为wp-config.php

[root@localhost ~]# cd /web/vhosts/wp/     //切换至网站目录下
[root@localhost wp]# cp wp-config-sample.php wp-config.php     //创建配置文件



5)      因为此程序需要连接数据库,编辑配置文件,填写数据库信息

[root@localhost wp]# vim wp-config.php

wKioL1X9G3nR2KHeAAFWKlLZNB8860.jpg

保存退出

 

6、在测试主机上输入URL---http://wp.stux.com进行配置安装

wKiom1X9GUmigQ_pAAFrk0BDSDc504.jpg

 

wKioL1X9G5LRsJudAAC2XOTLvkQ848.jpg

 

 

点击登录,输入账号密码后便可。

wKioL1X9G6rizYbNAAKsNDrvSqU892.jpg

 

搭建成功

 

 

 

6、搭建discuz论坛

此实验环境以上述基于主机名的虚拟主机为基础搭建:

 

Discuz官网:http://www.discuz.net/forum-64-1.html

wKiom1X9GZHSFAhbAAA-X96s12g004.jpg

1、解压此压缩包:

[root@localhost src]# unzip Discuz_X3.2_SC_UTF8.zip

wKioL1X9G9bQ1u1SAADPZnZu8Ps506.jpg

生成此处三个目录,帮助文档在readme目录下,有个read.text文件,可自行查看

 

2、移动upload目录下所有文件及子目录到dz.stux.com的网站文件目录下:/web/vhosts/dz目录下:

[root@localhost src]# mv -r upload/*/web/vhosts/dz/

 



3、在测试主机输入URLhttp://dz.stux.com进行安装:

 

wKiom1X9GaWTDXxaAAR0TRyMpHM837.jpg

 

 

 

 

此处出现报错,因为文件及目录的权限不够所致

wKiom1X9GbHhpQKBAAIpanOoLMI055.jpg

4、为节省时间,更改网站文件目录下的所有文件权限为777,并刷新浏览器页面:

[root@localhost dz]# chmod 777 -R ../dz/

wKioL1X9G_iizF6AAAMKug2ijes404.jpg

 

wKiom1X9GcmQyU9YAAGIgO6xYi8718.jpg

 

 

填写数据库相关信息,点击下一步:

wKioL1X9HCGxLNJ2AAHR1gHwuuA042.jpg

 

网页右下方出现安装成功字样:

wKioL1X9HCzxaIOoAAItbzd9F1Q135.jpg

 

wKiom1X9Gf_RaA2hAAOaROi3RQ8181.jpg

搭建完成。