CentOS 7 LAMP搭建---RPM安装
1、简单安装Apache,实现基于主机名虚拟主机功能
2、Apache+PHP+MariaDB,搭建LAMP
3、搭建phpmyadmin实现数据库图形化管理:
4、为pma.stux.com提供https服务
5、搭建wordpress论坛
6、搭建discuz论坛
虚拟机相关信息--
[root@localhost ~]# uname �Cr //查看内核版本 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文件(Windows:C:\WINDOWS\system32\drivers\etc\hosts)添加如下内容,并保存
浏览器访问测试:
虚拟主机已生效
2、Apache+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
注:需使用httpd的prefork模型搭建lamp,修改httpd的MPM,编辑/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) 在测试机的浏览器上输入url:http://pma.stux.com/index.php,若显示如下信息,则说明httpd、php、mariadb三者结合成功。
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/)的程序包下载地址,wget为linux上的下载命令,若无此命令需yuminstall �Cy 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 | xargs S2MHMTvCfwT44BCYIw2OS3xrDFKcAt //生成一段随机数
5) 重启httpd服务,并做测试:
[root@localhost dbadmin]# systemctl restart httpd.service
6) 测试:
测试成功;
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测试连接:输入用户名密码后:
测试成功
4、为pma.stux.com提供https服务
此实验环境以上述基于主机名的虚拟主机为基础搭建:
Openssl自建CA实现证书签发,完成https服务实现。
需要安装mod_ssl模块。让服务器支持https服务
1、自建立CA,CA的IP为
[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自签证书时用
2、WEB服务器(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)
3、WEB服务器(172.16.113.52)生成证书申请请求
4、将证书申请请求发送给CA服务器
[root@localhost httpd]# scp ssl/pam.stux.com.csr [email protected]:/tmp/ //此命令意为将本地ssl目录下的文件以root(对方服务器管理员)身份传递到172.16.113.33服务器 的tmp目录下
5、CA服务器(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 [email protected]:/etc/httpd/ssl //将签发的证书传输到web服务器端
6、WEB服务器(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 �Ct //检查配置文件是否存在问题,若无问题,重新启动httpd [root@localhost httpd]# systemctl restar thttpd.service //重启htpd
7、将CA服务器证书导出到测试主机,并添加浏览器信任,进行测试(使用sftp工具)
将其改名为.crt为后缀,其会自动变为证书样式(前提系统没有隐藏文件的后缀名显示),如下:
将证书导入浏览器(Firefox为例),操作如下:
导入证书:
选择信任使用此CA打钩
使用https协议访问网站:https://pma.stux.com/dbadmin
实验成功
5、搭建wordpress论坛
此实验环境以上述基于主机名的虚拟主机为基础搭建:
下载程序包:https://cn.wordpress.org/
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、将解压出来的文件全部copy到wp.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官网:http://www.discuz.net/forum-64-1.html
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:http://dz.stux.com进行安装:
此处出现报错,因为文件及目录的权限不够所致
4、为节省时间,更改网站文件目录下的所有文件权限为777,并刷新浏览器页面:
[root@localhost dz]# chmod 777 -R ../dz/
填写数据库相关信息,点击下一步:
网页右下方出现安装成功字样:
搭建完成。