共计 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
3. 查看 php 版本, 我的版本是 5.4.16
# php -v
四、配置 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. 测试一下三个虚拟主机:
测试成功!
五、配置 mariaDB
1. 刚安装完 mariaDB 后先初始化安全设置
运行安全初始化脚本
# /usr/bin/mysql_secure_installation
以下给出我自己的选项作为参考
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 将控制机中的安装包直接扔进家目录.
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
将生成的字串加入到上面的参数的引号中. 如图:
保存退出.
访问 pma.linuxidc.com 的时候发现程序报错:
意思是需要 mbstring 模块支持,mbstring 是一个多语言包.
所以要安装这个包
# yum install php-mbstring
重载 httpd 以便配置生效
# systemctl reload httpd
重新访问 pma.linuxidc.com, 页面成功打开
此时可以使用之前配置的 mysql 的 root 用户登陆.
2. 创建所需数据库
为了安装 wordpress 和 Discuz, 可以先使用 phpMyadmin 来为他们创建数据库.
新增 -> 填写数据库名称 -> 选择排序编码 -> 建立
另外我们希望每个网站可以使用单独的数据库用户进行访问, 所以这里为每个数据库创建自己的用户并绑定到对应的数据库.
回到首页 -> 用户 -> 添加用户
为了方便, 我将数据库名与对应的用户名保持一致, 可以按下图来创建
因为已经提前创建数据库, 所以红色下划线的命令会跳过创建数据库的步骤, 后面蓝色下划线的命令会把用户绑定给这个数据库.
3. 配置 wordpress
进入 wp 目录
# cd /web/vhosts/wp
复制一个配置文件并重命名为配置文件的标准名称
# cp wp-config-sample.php wp-config.php
编辑配置文件
# vim /web/vhosts/wp/wp-config.php
修改对应的值.
访问 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
6.6 去浏览器访问格式:
https://pma.linuxidc.com
看见 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