阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7 下的LAMP实现及基于https的虚拟主机

430次阅读
没有评论

共计 6951 个字符,预计需要花费 18 分钟才能阅读完成。

系统环境:
CentOS 7
Apache 2.4
php 5.4
MariaDB 5.5

项目需求:
创建 3 个虚拟主机, 分别架设 phpMyadmin,wordpress,Discuz
其中 phpMyadmin 提供 https 服务.

一、使用 yum 安装环境所需组件
httpd,php,php-MySQL,mariadb-server

# yum install httpd php php-mysql mariadb-server

二、关闭 SELINUX 并配置防火墙

1. 为了测试方便, 先关闭 selinux
临时关闭:
setenforce 0

永久关闭:
vim /etc/sysconfig/selinux
SELINUX=disabled

2. 在 CentOS 7 自带防火墙中添加 80,443,3306 端口

查看 firewall 运行状态
# firewall-cmd –state

添加端口
# firewall-cmd –add-port=80/tcp –permanent
# firewall-cmd –add-port=443/tcp –permanent
# firewall-cmd –add-port=3306/tcp –permanent

重载 firewall 配置
# firewall-cmd –reload

查看已有规则
# iptables -L -n

三、测试一下各软件是否正常

1. 启动 httpd 并测试访问:

# systemctl start httpd

没什么意外的话, 此时浏览器访问测试页应该是成功的.

2. 测试数据库
启动 MariaDB
# systemctl start mariadb

能进入 MariaDB 命令行即可
# mysql

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

3. 查看 php 版本, 我的版本是 5.4.16
# php -v

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

四、配置 Apache

1. 新建所需文件夹
在 /web/vhosts 下创建三个虚拟主机分别需要的文件夹 ,pma,wp,dz
# mkdir -p /web/vhosts/{pma,wp,dz}

2. 赋予 Apache 用户对整个 /web 目录的访问权:
# chown -R apache:apache /web

3. 创建测试页面
# vim /web/vhosts/pma/index.php
内容为:
<?php
echo “this is pma”
?>

# vim /web/vhosts/wp/index.php
内容为:
<?php
echo “this is wp”
?>

# vim /web/vhosts/dz/index.php
内容为:
<?php
echo “this is dz”
?>

 4. 取消欢迎页, 否则会有干扰
# mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak

5. 添加三个虚拟主机

创建一个叫 vhosts.conf 配置文件
# vim /etc/httpd/conf.d/vhosts.conf

内容:

<VirtualHost *:80>
DocumentRoot /web/vhosts/pma
ServerName pma.linuxidc.com
ErrorLog logs/pma.err
CustomLog logs/pma.access combined
</VirtualHost>

<Directory “/web/vhosts/pma”>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

<VirtualHost *:80>
DocumentRoot /web/vhosts/wp
ServerName wp.linuxidc.com
ErrorLog logs/wp.err
CustomLog logs/wp.access combined
</VirtualHost>

<Directory “/web/vhosts/wp”>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

<VirtualHost *:80>
DocumentRoot /web/vhosts/dz
ServerName dz.linuxidc.com
ErrorLog logs/dz.err
CustomLog logs/dz.access combined
</VirtualHost>

<Directory “/web/vhosts/dz”>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

6. 重新载入 httpd 配置:
# systemctl reload httpd

7. 测试一下三个虚拟主机:

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

测试成功!

五、配置 mariaDB

1. 刚安装完 mariaDB 后先初始化安全设置

运行安全初始化脚本
# /usr/bin/mysql_secure_installation

以下给出我自己的选项作为参考

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

1)是否设置 root 用户密码? (是)

2)是否删除匿名用户? (是)
3)禁止 root 用户远程登录吗? (否, 但如果生产环境推荐禁止)
4)要删除测试数据库吗? (否, 如果将来有测试需求就保留)
5)重载授权表吗? (是, 刚刚的设置立即生效)

2. 附上 root 用户改密码命令
# mysql
SET PASSWORD FOR ‘root’@’localhost’=PASSWORD(‘123456’);
SET PASSWORD FOR ‘root’@’127.0.0.1’=PASSWORD(‘123456’);

六. 安装程序包
1. 安装 phpmyadmin,Discuz,wordpress
下载安装包到家目录
可以用 wget 或者使用 ftp 工具, 我这里因为用了 Xshell 连接服务器, 所以直接使用了配套的 Xftp 将控制机中的安装包直接扔进家目录.

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

2. 确保已安装必要的压缩 / 解压缩工具

我这里缺少 bzip2,zip 和 unzip, 所以
# yum -y install bzip2 zip unzip

分别解压缩
# unzip Discuz_X3.2_SC_UTF8.zip -d Discuz_X3.2_SC_UTF8
# tar -xf wordpress-4.5.3-zh_CN.tar.gz
# tar -xf phpMyAdmin-4.4.15.8-all-languages.tar.bz2

3. 分别复制到定义好的虚拟主机目录下, 注意只复制需要的文档

# cp -a phpMyAdmin-4.4.15.8-all-languages/* /web/vhosts/pma/
# cp -a wordpress/* /web/vhosts/wp/
# cp -a Discuz_X3.2_SC_UTF8/upload/* /web/vhosts/dz/

七、调试网站
1. 配置 phpmyadmin
#cd /web/vhosts/pma

找到默认配置文件并重命名为标准名称
# cp config.sample.inc.php config.inc.php

编辑配置文件
大概 17 行找到
$cfg[‘blowfish_secret’] = ”;

这里需要加入一个随机字串, 可以在 bash 下用以下命令生成:
# tr -d ‘a-zA-Z0-9’ < /dev/urandom | head -30 | md5sum

比如生成的字串为
e2d8e1132dc737b3dc1f05cd44c0cc9e
将生成的字串加入到上面的参数的引号中. 如图:

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

保存退出.

访问 pma.linuxidc.com 的时候发现程序报错:

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

意思是需要 mbstring 模块支持,mbstring 是一个多语言包.

所以要安装这个包
# yum install php-mbstring

重载 httpd 以便配置生效
# systemctl reload httpd

重新访问 pma.linuxidc.com, 页面成功打开

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

此时可以使用之前配置的 mysql 的 root 用户登陆.

2. 创建所需数据库
为了安装 wordpress 和 Discuz, 可以先使用 phpMyadmin 来为他们创建数据库.
新增 -> 填写数据库名称 -> 选择排序编码 -> 建立

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

 

另外我们希望每个网站可以使用单独的数据库用户进行访问, 所以这里为每个数据库创建自己的用户并绑定到对应的数据库.

回到首页 -> 用户 -> 添加用户

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

 

为了方便, 我将数据库名与对应的用户名保持一致, 可以按下图来创建

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

因为已经提前创建数据库, 所以红色下划线的命令会跳过创建数据库的步骤, 后面蓝色下划线的命令会把用户绑定给这个数据库.

3. 配置 wordpress

进入 wp 目录
# cd /web/vhosts/wp
复制一个配置文件并重命名为配置文件的标准名称
# cp wp-config-sample.php wp-config.php
编辑配置文件
# vim /web/vhosts/wp/wp-config.php

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

 

修改对应的值.

访问 wp.linuxidc.com 和 dz.linuxidc.com, 会显示安装界面. 分别使用之前设定的参数安装即可.

八、给 pma.linuxidc.com 配置 https

1. 确保 OpenSSL 已安装, 因为要使用 OpenSSL 生成自签名证书
# httpd -M | grep ssl
如果没有则安装
# yum install mod_ssl openssl

2. 配置 CA 服务器
我的方法是先配置一台 CA 服务器 (CentOS A), 之后再让当前这台服务器(CentOS B) 向 CentOS A 申请认证.

3. 配置 CA 服务器(CentOS A)

3.1 初始化 CA 服务, 创建所需要的文件
# cd /etc/pki/CA/
# touch index.txt // 创建索引文件
# echo 01 > serial // 创建序列号文件

3.2 CA 自签证书
生成私钥
# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
使用私钥生成签名证书
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem

4. 申请证书(CentOS B):

4.1 创建一个存放证书的目录
# mkdir /etc/httpd/ssl
# cd /etc/httpd/ssl

4.2 生成秘钥
# (umask 007;openssl genrsa -out httpd.key 1024)
4.3 生成请求文件
# openssl req -new -key httpd.key -out httpd.csr

4.4 填表, 按照自己情况写
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:Quintin Ltd
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server’s hostname) []:pma.linuxidc.com
Email Address []:admin@linuxidc.com

4.5 把生成的文件发送到 CA 服务器 CentOS A, 这里我使用 scp 命令:
# scp httpd.csr root@192.168.3.67:/tmp/

4.6 按照提示操作成功之后,httpd.csr 应该已经在 CentOS A 的 /tmp/ 目录中.

5. 签署证书(CentOS A):

5.1 签署, 有效期十年
# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/pma.linuxidc.com.crt -days 3650
5.2 将生成的 crt 传回 CentOS B
# scp /etc/pki/CA/certs/pma.linuxidc.com.crt root@192.168.3.77:/etc/httpd/ssl/
5.3 按照提示操作成功之后,pma.linuxidc.com.crt 应该已经在 CentOS B 的 /etc/httpd/ssl/ 目录中.

6. 配置 ssl(CentOS B):

6.1 事先备份
# cd /etc/httpd/conf.d/
# cp ssl.conf{,.bak}

6.2 编辑 ssl.conf
# vim ssl.conf

以下为修改项
<VirtualHost _default_:443>
=>
<VirtualHost *:443>

基本设置
DocumentRoot “/web/vhosts/pma”
ServerName pma.linuxidc.com:443

证书位置
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
=>
SSLCertificateFile /etc/httpd/ssl/pma.linuxidc.com.crt

私钥位置
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
=>
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

保存退出.

6.3 检查配置文件语法错误:
# httpd -t

6.4 重启 httpd:
# systemctl restart httpd

6.5 查看 443 端口是否已开启:
# ss -tnl

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

 

6.6 去浏览器访问格式:
https://pma.linuxidc.com

看见 https 字样就对了. 但会提示无效, 添加信任即可.

CentOS 7 下的 LAMP 实现及基于 https 的虚拟主机

下面关于 LAMP 相关 的内容你可能也喜欢

LAMP 平台安装 Xcache 和 Memcached 加速网站运行  http://www.linuxidc.com/Linux/2015-06/118835.htm 

CentOS 7 下搭建 LAMP 平台环境  http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

Ubuntu 14.10 下安装 LAMP 服务图文详解  http://www.linuxidc.com/Linux/2014-12/110082.htm

LAMP 结合 NFS 构建小型博客站点  http://www.linuxidc.com/Linux/2015-08/121029.htm

CentOS7 下安装部署 LAMP 环境  http://www.linuxidc.com/Linux/2016-04/130653.htm

Ubuntu 16.04 搭建 LAMP 开发环境 http://www.linuxidc.com/Linux/2016-10/136327.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137209.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6951字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7994774
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...