基于三台主机部署phpwind
PHPWind(简称:PW)的使命是让网站更具价值,让更多人从网络中享受便利,以提升生活品质。
phpwind是一个基于PHP和MySQL的开源社区程序,是国内最受欢迎的通用型论坛程序之一。phpwind第一个版本ofstar发布于2004年。截止2013年12月phpwind项目品牌由阿里云计算有限公司拥有,软件全面开源免费。
特点
1. 非凡的访问速度
PHPWind 论坛系统一直坚持高效、安全、稳定、易用的原则,采用独创的模板和数据库体系以及专业的代码设计保证了PHPWind论坛系统的持续高效和稳定,让更多的用户体验互联网的最新理念,也让您的站点在互联网时代脱颖而出。
2. 卓越的负载能力
论坛核心参数的合理配置,专业的web 、数据库、附件和图片链的负载均衡处理,保证了站点在繁忙的服务器环境下快速而稳定的运行,极大地提升站点形象
3. 友好的界面和人性化的功能设计
以功能个性化和人性化为基础,PHPWind论坛系统独创所见即所得发贴编辑器,完善的用户自身信息浏览和管理、对论坛浏览和操作更加方面的快捷链接等。
4. 完美的技术架构和扩展性
标准化的插件接口、可持续开发的完美技术架构,实现了PHPWind论坛系统的可持续扩展性。
注:以上内容来自百度
说明:
三台主机通过fast-cgi部署LAMP,实现phpwind
httpd主机:192.168.29.110
php主机:192.168.29.120
MariaDB主机:192.168.29.130
1 三台主机安装各自需要的软件
(1)httpd主机:安装httpd
[root@CentOS7 ~]# yum install -y httpd
(2)PHP主机:安装php-fpm组件和php-mysql组件
[root@CentOS7 ~]# yum install php-fpm php php-mysql php-xml php-mcrypt
(3)MariaDB主机:安装MariaDB提供数据库服务
[root@CentOS7 ~]# yum install mariadb-server
2 配置PHP主机
(1)修改php-fpm配置文件/etc/php-fpm.d/www.conf
12行 listen = 192.169.29.120:9000 #修改服务所监听在本地的那个地址和端口上,如果为空则表示本地所有地址。
24行 listen.allowed_clients = 192.168.29.110 #允许那台主机作为客户端连接到本地的PHP服务器
225行 php_value[session.save_path] = /var/lib/php/session #为PHP的会话session路径,默认次路径不存在,需要创建。
39行 user = apache #默认进程运行用户
41 行 group = apache #默认进程运行组
(2)创建PHP session路径,并设置路径属主属组为apache
[root@CentOS7 ~]# mkdir -pv /var/lib/php/session
[root@CentOS7 ~]# chown apache:apache /var/lib/php/session
(3)启动php-fpm服务
[root@CentOS7 ~]# systemctl start php-fpm
3 配置httpd主机
(1)新建虚拟主机配置文件
[root@CentOS7 ~]# vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
Directoryindex index.php
DocumentRoot /data/www/html
ServerName www.myphpwind.com
ProxyRequests Off ##关闭正向代理
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.29.120:9000/data/www/html/$1 ##表示当有后缀为.php的动态资源请求的时候转发到192.168.29.120的主机进行处理。
<Directory /data/www/html >
Options FollowSymLinks ##让连接文件生效
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
(2)确保httpd已经加载了proxy_fcgi_module (shared)模块
[root@CentOS7 ~]# httpd -M |grep proxy_fcgi_module
proxy_fcgi_module (shared)
4 在httpd配置phpwind
(1)把phpwind压缩包复制到指定的DocumentRoot (/data/www/html)目录下
[root@CentOS7 ~]# mkdir -pv /data/www/html/
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/www’
mkdir: created directory ‘/data/www/html/’
[root@CentOS7 ~]# cd /data/www/html/
[root@CentOS7 /data/www/html]# rz
[root@CentOS7 /data/www/html]# unzip phpwind_v9.0.2_utf8.zip
(2)把phpwind路径中的upload创建软链接
[root@CentOS7 /data/www/html]# ln -s /data/www/html/phpwind_v9.0.2_utf8/phpwind_v9.0.2_utf8_20170401/upload/ /data/www/html/phpwind
(3)修改属主为apache用户
[root@CentOS7 ~]# chown -R apache:apache /data/www/html/phpwind/*
5 在php主机上配置phpwind
由于phpwind既有动态资源也要静态资源,静态资源通过httpd服务器提供,动态资源通过PHP主机提供,所有两台主机都需要配置phpwind文件。配置方法和httpd上相同
(1)把phpwind压缩包复制到指定的DocumentRoot (/data/www/html)目录下
[root@CentOS7 ~]# mkdir -pv /data/www/html/
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/www’
mkdir: created directory ‘/data/www/html/’
[root@CentOS7 ~]# cd /data/www/html/
[root@CentOS7 /data/www/html]# rz
[root@CentOS7 /data/www/html]# unzip phpwind_v9.0.2_utf8.zip
(2)把phpwind路径中的upload创建软链接
[root@CentOS7 /data/www/html]# ln -s /data/www/html/phpwind_v9.0.2_utf8/phpwind_v9.0.2_utf8_20170401/upload/ /data/www/html/phpwind
(3)修改属主为apache用户
[root@CentOS7 ~]# chown -R apache:apache /data/www/html/phpwind/*
6 通过浏览器访问192.168.29.110/phpwind
可以看到如下页面

点击“接受”
(1)按照设置向导配置数据库

(2)点击下一步

7 配置MariaDB服务器
(1)关闭数据库的方向解析
[root@CentOS7 ~]# vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve=ON
(2)启动数据库,并登陆
[root@CentOS7 ~]# systemctl start mariadb
[root@CentOS7 ~]# mysql
(3)创建数据库 phpwind
MariaDB [(none)]> create database phpwind;
Query OK, 1 row affected (0.00 sec)
(4)创建用户phpwind并授权
MariaDB [(none)]> grant all on phpwind.* to 'phpwind'@'192.168.%.%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
8 按创建的数据库填写信息

点击“创建数据”


phpwind部署成功
基于三台主机部署phpwind的更多相关文章
- Ubuntu16.04环境下搭建基于三台主机的mysql galera cluster集群(实测有效)
(注意: (1)文中红色字体部分不一定需要操作 (2)由于word文档编辑的原因,实际操作时部分命令需要手动输入!!直接复制粘贴会提示错误!! ) 一 搭建环境: 1 Ubuntu16.04版本(系 ...
- 基于docker 如何部署surging分布式微服务引擎
1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微 ...
- HAProxy详解(三):基于虚拟主机的HAProxy负载均衡系统配置实例【转】
一.基于虚拟主机的HAProxy负载均衡系统配置实例 1.通过HAProxy的ACL规则配置虚拟主机: 下面将通过HAProxy的ACL功能配置一套基于虚拟主机的负载均衡系统.这里操作系统环境为:Ce ...
- Swarm基于多主机容器网络 - overlay networks 梳理
前面介绍了Docker管理工具-Swarm部署记录,下面重点说下Swarm基于多主机容器通信的覆盖网络 在Docker版本1.12之后swarm模式原生支持覆盖网络(overlay networks) ...
- 记基于docker+gunicorn部署sanic项目遇到的很多很多坑
前言: 最近有个项目需要上线,是python中sanic网络异步框架写的,并且要求使用docker+nginx来部署项目实现负载均衡,于是乎百度了sanic项目部署,基本上都是基于docker+gun ...
- Linux环境基于CentOS7 搭建部署Docker容器
1.Docker容器概述 区分Docker容器技术和VM虚拟机技术: evernotecid://394EFE90-9CE0-4D65-A8CD-DFEC0DC8061E/appyinxiangcom ...
- 基于Ambari Server部署HDP集群实战案例
基于Ambari Server部署HDP集群实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署Ambari Server端 博主推荐阅读: https://www.c ...
- Ice系列--基于IceGrid的部署方案
前言 前一篇文章介绍了IceGrid的简单应用.这篇文章来介绍一下它的高端玩法-如何将模板,复制组,知名对象应用于部署方案及其作用. 基于模板的部署方案 之前介绍了xml格式的配置文件通过各种描述符如 ...
- 使用nginx实现一个主机部署多域名指向不同docker项目
1,安装 docker yum install docker 使用Docker 中国加速器 vim /etc/docker/daemon.json 添加下面代码 { "registry-m ...
随机推荐
- java 实例变量的初始化
1.对于实例变量,该类没创建一次实例,就需要为实例变量分配一块内存空间:2.程序通过Person对象来访问eyeNum类变量时,底层依然会转换为通过Person访问eyeNum类变量:3.当Perso ...
- svn命令行便捷代码
在把分支merge回主干的时候,有时候需要只提交自己修改过的文件,但是很多文件其实分支上没动过,但却显示有变化,这个其实是属性发生了变化.svn通过svn:mergeinfo来记录merge的记录.所 ...
- Tp框架获取客户端IP地址
/** * 获取客户端IP地址 * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字 * @return mixed */ function get_cl ...
- 新安装mysql 第三方工具连接不上问题
Mysql从客户端连接服务器连不上的问题 公司要用Mysql做一个测试,开始在自己的本地建一个Mysql数据库自己本地的程序再连上去,没有遇到过连接不上的问题.这次数据库在服务器上,从本地客户端连 ...
- 【LeetCode】66. Plus One
题目: Given a non-negative number represented as an array of digits, plus one to the number. The digit ...
- Java程序设计模式系列之适配器模式
理解适配器设计模式需要从生活中的场景进行联系,在生活当中有那些东西能够称为适配器呢?从字面上理解,"适配"的意思就是让一个东西和另一个东西配对,能够让他们一起工作,比如大家用的笔记 ...
- 把对象列表转化成json数据格式
package JsonTest; import java.util.ArrayList; import java.util.List; public class test { public stat ...
- 最近学习java时的记录
1.java 的变量一共分为三种,类变量,局部变量,成员变量 类变量就是 加static修饰符的变量 2.java 的修饰符可分为两大类,一 可访问修饰符 protected private publ ...
- Java 9 揭秘(8. JDK 9重大改变)
Tips 做一个终身学习的人. 在本章,主要介绍以下内容: 新的JDK版本控制方案是什么 如何使用Runtime.Version类解析JDK版本字符串 JDK JRE 9的新目录布局是什么 JDK 9 ...
- JavaScript第三课 (循环)
循环语句 !如果至少需要执行一次循环体,就用do … while语句,一般情况下用while语句就可以了. while 语法:一直读取循环到条件为假时停止循环. while(条件) { 语 ...