基于lamp+fastcgi+https搭建phpMyAdmin和wordpress

前言:

lamp为网站搭建的很基本的一个架构,如果仅仅只是静态的网页文件,我们就可以通过基本的web服务器来处理。当我们需要处理动态内容时,比如把用户数据放在数据库,从数据库取出数据等等,我们就必须借助CGI连接到处理动态请求的应用。FastCGI作为一个常驻型的CGI,可以独立于apache服务,可以实现分布式的部署。接下来我们用一台 主机来搭建phpMyAdmin和wordpress,并且让wordpress实现https。

正文:

部署之前我们先简单介绍下我们用到的架构,不用多说lamp就是我们熟悉的linux系统,apache,mysql(maridb)和php,本次部署过程中我们用到的数据库是maridb,基本上和mysql没多大区别。当我们的web服务器收到一个请求时,如果请求的是静态资源,服务器就返回静态资源,如果请求的是动态资源,服务器本身并不能处理,需要发到可以处理动态请求的程序上。CGI就是http服务器与其他程序交谈的接口。

首先,安装必要的程序,

yum install httpd php php-mysql php-fpm mariadb-server mariadb php-mbstring

其中php-mysql是php连接mysql的,php-fpm就是fastcgi。然后我们就启动这些服务。

systemctl start httpd
systemctl start mariadb
systemctl start php-fpm

然后我们得下载MyAdmin和wordpress,解压后放到/var/www/html目录下,并分别重命名为vhost1和vhost2

mv /var/www/html/{MyAdmin*,vhost1} 
mv /var/www/html/{wordpress*,vhost2}

一台服务器起两个web服务,所以我们就得用到虚拟主机实现,实现方法也特别简单。

修改httpd配置文件,/etc/httpd/conf/httpd.conf找到DocumentRoot注释掉。

vim /etc/httpd/conf/httpd.conf 
#DocumentRoot "/var/www/html"

然后我们就开始建我们第一个虚拟主机vhost1了,在/etc/httpd/conf.d/目录下面,新建一个vhost.conf,以此来记录虚拟主机的相关配置。配置内容:

#/etc/httpd/conf.d/vhost.conf
 DirectoryIndex index.php
<VirtualHost *:80>
        Servername www.a.com
        DocumentRoot /var/www/html/vhost1
        ProxyRequests Off
        ProxyPassMatch ^/(.*\.php) fcgi://127.0.0.1:9000/var/www/html/vhost1/$1
        <Directory "/var/www/html/vhost1">
                Options None
                AllowOverride None
                Require all  granted
        </Directory>
</VirtualHost>

默认当我们输入网址或者ip时,可以自动识别工作目录下的index.html文件为主页,为了也能识别index.php,我们就得配置DirectoryIndex index.php。下面的就是第一个虚拟主机的配置。我们的第一个网站放在/var/www/html/vhost1下,并自动加载index.php。此时我们就可以访问我们的第一个网站了,只用输入ip或域名即可。

两个进程间通信间通信是要靠一个叫做socket的东东,就是ip和端口号,http服务的默认端口为80,当然ip地址还是很难记住的,所以我们用一个可读性更高的域名来标识一个网站。所以当我们想在一台服务器上放好几个站点时,服务器怎么来区分他们呢?

虚拟主机可以通过三种方法构架,分别是基于ip,基于端口,和基于域名。使用的最多的就是基于不同域名实现的.

接下来,我们实现基于httpd的wordpress,一般而言,我们得自行购买证书,放在服务器上,不过既然是自己随便玩玩,也没想着上线,所以我们可以自建CA,下发证书。我们打开另一个linux系统,作为CA服务器。实现一个CA服务器也相当简单,生成一个私钥,然后通过这个私钥来生成一个自签证书。然后http服务器向CA服务器发一个证书 签名的请求,服务签名后再发给http服务器。好了,我们直接来实现把。

#CA服务器端(172.16.254.181)
cd/etc/pki/CA
(umask 077;openssl genrsa -out private/cakey.pem 2048)#生成私钥,让在private目录下
openssl req -new -x509 -key private/cakey.pem -out cacert.pem#通过上面的私钥生成自签证书
touch serial index.txt #生成计数文件
echo 01 > serial #初始话计数。

#http端(172.16.53.183)
cd /etc/httpd   
mkdir ssl   #在httpd的配置文件目录下,新建ssl用来存放私钥和证书
cd ssl
(umask 077;openssl genrsa -out httpd.key 1024)#建立私钥
openssl req -new -key httpd.key -out httpd.csr#建立证书签字请求文件
scp httpd.csr 172.16.253.181:/tmp#发送到CA服务器端。

#服务器端
openssl ca -in /tmp/httpd.csr -out certs/httpd.crt #签字,并把证书放在certs目录下,如果报错,基本上是因为你的CA服务器忘记创建index.txt 或serial里面没序号。
scp certs/httpd.crt 172.16.53.180:/etc/httpd/ssl/#把证书发送到httpd服务器端

使用基于ssl的https时,我们还得用到一个模块,所以我们先安装模块。

yum install mod_ssl

mod_ssl的配置文件为/etc/httpd/conf.d/ssl.conf,我们把虚拟主机的配置都放在/etc/httpd/conf.d/vhost.conf中,所以我们先把ssl的配置复制到vhost.conf中,并把ssl.conf保存为备份。

grep ‘^[^#].*‘ /etc/httpd/conf.d/ssl.conf >> /etc/httpd/conf.d/vhost.conf
mv /etc/httpd/conf.d/ssl.conf{,.bak}

然后修改虚拟主机的配置文件。下面只显示修改过的地方。

#/etc/httpd/conf.d/vhost.conf

<VirtualHost *:443>
DocumentRoot /var/www/html/vhost2#此虚拟主机的根目录为wordpress
ServerName www.b.com#此ServerName为我们申请证书的域名,我们的域名必须和证书的域名一致
SSLCertificateFile /etc/httpd/ssl/httpd.crt  #证书文件
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key#私钥文件
ProxyRequests Off
ProxyPassMatch ^/(.*\.php) fcgi://127.0.0.1:9000/var/www/html/vhost2/$1
</VirtualHost>

作为web服务器本身的配置,到这就已经结束了。不过,我们是以不同的域名来区分不同的虚拟主机的,但怎么获取域名和ip的映射呢?最简单的方法肯定是把映射条目写到host文件中,但是博主就喜欢舍近求远。我们来建一个dns把~

时间: 2024-10-22 11:23:57

基于lamp+fastcgi+https搭建phpMyAdmin和wordpress的相关文章

CentOS 7上基于LAMP的形式搭建phpMyAdmin,wordpress和Discuz

基于LAMP php7.1搭建owncloud云盘 与ceph对象存储S3借口整合案例

ownCloud简介:      是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务.当前主要功能包括文件管理(内建文件分享).音乐.日历.联系人等等,可在PC和服务器上运行.     简单来说就是一个基于Php的自建网盘.基本上是私人使用这样,因为直到现在开发版本也没有暴露注册功能.我这里采用基于php7.1的LAMP环境搭建这个owncloud 下一篇将介绍和ceph对象存储整合案例 一.环境准备,这里的owncloud是10版本,所以需要php5.6以上的LAMP环境,否则会

LAMP基础上安装phpMyAdmin及WordPress

所需要的程序包:httpd, php, php-mysql, mysql-server        程序包都安装完成之后启动服务:              service httpd start              service mysqld start 测试                   测试php程序与mysql通信                    在用户的网站程序目录下编辑            # vim /var/www/html/test.php       

centos 7.4 源码安装最新版本的lamp架构及搭建phpMyadmin

所需的压缩包,如下图: 1.安装apache服务[[email protected] ~]# tar xf apr-1.6.2.tar.gz -C /opt/ //apache插件[[email protected] ~]# tar xf apr-util-1.6.0.tar.gz -C /opt/[[email protected] ~]# yum install -y bzip2 //.tar.gz格式是默认的压缩文件格式[[email protected] ~]# tar xf httpd

LAMP架构搭建以及基于LAMP架构的主流论坛和博客搭建过程详解

了解网站架构的朋友都知道,现在很多网站的架构都是采用LAMP(Linux+Apache+Mysql/Mariadb+Php)的,至于LAMP架构本身我们就不做过于深入的探讨了,今天我给大家分享的是关于如何搭建LAMP构架,以及如何基于lamp架构去搭建目前国内比较流行的两大开源论坛(phpwind.discuz)一大开源博客(wordpress),通过这个过程也就能让大家明白我们经常上的论坛以及博客,包括包括我们访问的各个网站到底是如何工作起来的. 注意:为了方便给大家展示实验效果,我们就直接关

如何实现基于lamp搭建https服务

如何实现基于lamp搭建https服务 lamp:服务架构 httpd:接收用户的web请求:静态资源则直接响应:动态资源为php脚本,对此类资源的请求将交由php来运行: php:运行php程序: MariaDB:数据管理系统: (一):  安装其相关服务 CentOS 6: httpd, php, mysql-server, php-mysql # service httpd  start # service  mysqld  start CentOS 7: httpd, php, php-

LAMP之phpMyAdmin、WordPress、Discuz的搭建

基于LAMP的phpMyadmin,WordPress,Discuz的搭建,首先我们要搭建一个LAMP环境,然后在这个环境的基础上搭建这些服务,首先让我们来搭建一个LAMP环境吧,我们这次搭建的环境是基于CeontOS7的. 一.安装所需要的包 yum install httpd php php-mysql mariadb-server###安装所需要的包   [[email protected] ~]# getenforce Permissive              #######查看s

4-源码方式基于LAMP架构搭建BBS论坛或者博客

目录 一.项目简介 二.环境准备 三.编译安装MySQL 四.编译安装Apache 五.编译安装PHP 六.后续配置 七.启动相关服务 八.源码编译软件经验总结 九.部署web应用 排错1: 排错2: 排错3: 大功告成! 课程目标 使用源码方式基于LAMP架构搭建BBS论坛或者博客 本文成功搭建2个网站,一个个人博客,一个是web界面管理mysql数据库的应用 请耐心阅读,细心操作,你也会成功! 思考:yum工具搭建lamp环境和源码包搭建的区别 rpm版本 安装方便,升级.卸载都很灵活,很难

基于CentOS7的服务器搭建(LAMP环境)

基于CentOS7的服务器环境搭建(LAMP环境) 一.安装MySQL组件 1.由于在CentOS7中,默认yum安装库中不含有mysql,我们可以下载mysql的分支MariaDB,如果必须要下mysql,可以通过下载mysql官方的yum库,再利用yum install *进行mysql的安装 yum -y install mariadb-server 2.启动服务 service mysqld restart systemctl restart mysqld.service 3.修改mys