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
      //相当于一个容器,限定某一范围的指令,作用于指定的文件系统目录及其所有子目录,容器的结尾用
将内容封装起来
       //相当于一个容器,限定某一个网页,只对某一网页进行规则限定,容器结尾用
封装起来

 

 

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结尾
     //固定格式       Servername pma.stux.com     //定义虚拟主机主机名       DocumentRoot "/web/vhosts/pma"       //此虚拟主机的网页文件目录       ErrorLog "logs/error_pma.log"       //定义错误日志路径,此路径相对于主配置文件中的“ServerRoot”项       CustomLog "logs/access_pma.log" combined        //定义访问日志的路径,combined为主文件中LogFormat定义的日志格式   
       Servername wp.stux.com       DocumentRoot "/web/vhosts/wp"       ErrorLog "logs/error_wp.log"       CustomLog "logs/access_wp.log" combined  
       Servername dz.stux.com       DocumentRoot "/web/vhosts/dz"       ErrorLog "logs/error_dz.log"       CustomLog "logs/access_dz.log" combined 
        AllowOverRide none        require all granted

需要特别注意一下: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)添加如下内容,并保存

浏览器访问测试:

 

虚拟主机已生效

 

 

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 mariadbmariadb.service                             enabled[root@localhost httpd]# systemctl restart httpd

 

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

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

 

4)      在测试机的浏览器上输入url,若显示如下信息,则说明httpdphpmariadb三者结合成功。

 

 

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,若不安装则会出现以下提示:

[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 | xargsS2MHMTvCfwT44BCYIw2OS3xrDFKcAt  //生成一段随机数

        

 

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

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

 

6)      测试:

测试成功;

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

[root@localhost dbadmin]# mysqlMariaDB [(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测试连接:输入用户名密码后:

测试成功

 

 

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私钥的路径及名字都必须和此处所示一致,加上括号执行命令是为了直接设置生成的私钥权限为600Generating 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自签证书时用

 

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)         //创建私钥,加上括号是为了直接设置生成的私钥权限为600Generating RSA private key, 2048 bit longmodulus.......+++........................................+++e is 65537 (0x10001)

 

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

 

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                 //这里选择yWrite out database with 1 new entriesData 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将
 --- > 改为 
将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工具)

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

 

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

 

导入证书:

 

选择信任使用此CA打钩

 

使用https协议访问网站:

 

实验成功

 

 

 

 

 

 

 

5、搭建wordpress论坛

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

 

下载程序包:

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

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

保存退出

 

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

 

 

 

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

 

搭建成功

 

 

 

6、搭建discuz论坛

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

 

Discuz官网:

1、解压此压缩包:

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

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

 

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

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

 

3、在测试主机输入URL进行安装:

 

 

 

 

 

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

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

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

 

 

 

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

 

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

 

搭建完成。