CentOS 7   基于fastcgi 的lamp

实验环境  CentOS 7, lamp (php-fpm)





要求:(1) 三者分离于三台主机;

(2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;

(3) xcache

规划  172.18.105.110 上运行http服务器

172.18.250.157 运行数据库

172.18.253.26 运行php-fpm程序

我提前做好了DNS 两台A记录172.18.105.110 对应的FQDN 为www1.stu05.com  www2.stu05.com

也提前做好了一个CA服务器

centos7搭建http默认就是2.4

1.在172.18.105.110上yum install httpd -y 注:此时php是作为程序独立程序运行

在172.18.250.157 yum install mariadb.server -y  安装数据库

在172.18.253.26  yum install php-fpm  php-mysql php-mbstring -y

systemctl start httpd

扩展:2.4的http支持fastcgi,如果要使用把php替换成php-fpm

2.在172.18.105.110上 关闭中心主机的vim /etc/httpd/conf/httpd.conf  #DocumentRoot "/var/www/html"

3.在172.18.105.110上和172.18.253.26配置http端虚拟主机站点目录,和后端php动态数据站点目录,以便转发请求

mkdir -pv /web/vhosts/www1

mkdir -pv /web/vhosts/www2

4.在172.18.105.110上配置基于FQDN的虚拟主机 vim /etc/httpd/conf.d/vhosts

DirectoryIndex index.php--------------定义php运行的默认主页面

http2.4基于FQND的虚拟主机省了NameVirtualHost命令

<VirtualHost 172.18.105.110:80>

ServerName www1.stu05.com

DocumentRoot  "/web/vhosts/www1"

ProxyRequests Off    关闭正向代理

ProxyPassMatch  ^/(.*\.php)$  fcgi://172.18.253.26:9000/web/vhosts/www1/$1  注:http服务器通过方向代理把cgi的请求转发给 172.18.253.26的PHP程序

<Directory "/web/vhosts/www1">      http2.4需要对根目录做访问控制

AllowOverride None

Options None

Require all granted

</Directory>

</VirtualHost>

<VirtualHost 172.18.105.110:80>

ServerName www2.stu05.com

DocumentRoot  "/web/vhosts/www2"     ------因为wordpress程序会自动从www2里找到index.php

ProxyRequests Off

ProxyPassMatch  ^/(.*\.php)$  fcgi://172.18.105.110:9000/web/vhosts/www2/wordpress/$1

<Directory "/web/vhosts/www2">              注:转发给PHP的时候使用访问的绝对路径

AllowOverride None

Options None

</VirtualHost>

5.在172.18.253.26上 vim /etc/php-fpm.d/www.conf

listen = 172.18.253.26:9000    php服务程序需要监听在能够被外部访问的sokcet

listen.allowed_clients = 172.18.105.110    允许哪个前端http访问

6.  在172.18.253.26上 创建session目录,并确保运行php-fpm进程的用户对此目录有读写权限;

# mkdir  /var/lib/php/session

# chown apache.apache /var/lib/php/session

7.测试php是否正常 vim /web/vhosts/www1 和 /web/vhosts/www1

vim index.php

php测试代码

<?php

phpinfo();

?>

浏览器  http://www1.stu05.com   http://www2.stu05.com

7.测试php与mysql-server的连接是否正常

172.18.250.157上 以管理员登录mysql,并授权远程登录用户

CREATE DATABASE wpdb;   创建数据库

(1) GRANT ALL ON testdb.* TO [email protected]‘172.18.%.%‘ IDENTIFIED BY ‘testpass‘;

注:GRANT授权 在172.16.0.0/16网段的主机通过testuser远程访问testdb的所有表

(2) FLUSH PRIVILEGES 刷新立即生效

可查看用户:SELECT USER();

(3)关闭mysql登录时候用户名的反解

vim /etc/my.cnf 配置文件中[mysqld]后面加入skip_name_resolve = ON

然后重载service mysqld reload

172.18.105.110中 vim /web/vhosts/www1 和 /web/vhosts/www1

放在index.php中后,运行 http://172.18.105.110

<?php

$conn = mysql_connect(‘172.16.100.67‘,‘testuser‘,‘testpass‘);

if ($conn)

echo "OK";

else

echo "Failure";

?>

lamp环境就成功了。

总结:

任何开源程序需要连接到数据库的,在测试lamp连接数据库ok的情况下,如果是远程连接,则需要创建一个得到授权的远程连接的用户,而workdpress不仅需要创建一个数据库,还需要一个得到授权的远程连接的用户。

远程主机登录数据库 define(‘DB_HOST‘, ‘172.18.250.157‘);   本地主机登录数据库define(‘DB_HOST‘, ‘127.0.0.1‘);

本地数据库root登录如果有密码  mysql -uroot  -pxwj4611

如果本地数据库root没有密码mysql

8.第一个虚拟主机运行wordpress

cp  wordpress-4.3.1-zh_CN.zip /web/vhosts/www1/

unzip wordpress-4.3.1-zh_CN.zip

ln -sv wordpress-4.3.1-zh_CN  wordpress 然后cd /wordpress

1、cp wp-config-sample.php   wp-config.php

2、执行mysql或者如果本地root已经设定密码mysql -uroot -pxwj4611 ------CREATE DATABASE wpdb;创建数据库   大多数开源的程序会自动创建数据库

3、GRANT ALL ON wpdb.* TO [email protected]‘172.18.%.%‘ IDENTIFIED BY ‘wppress‘

注:给这个软件授权一个用户可以远程连接数据库,如果是本地连接127.0.0.1

4、vim vp-config.php 编辑配置文件

/** WordPress数据库的名称 */

define(‘DB_NAME‘, ‘wpdb‘);

/** MySQL数据库用户名 */

define(‘DB_USER‘, ‘wpuser‘);

/** MySQL数据库密码 */

define(‘DB_PASSWORD‘, ‘wppasswd‘);

/** MySQL主机 */

define(‘DB_HOST‘, ‘172.18.105.110‘);    如果是本地连接loaclhost 或者127.0.0.1

测试:www1.stu05.com/wordpress   压力测试 ab -n 1000 -c 100 http://www2.stu05.com/wordpress/index.php  -c模拟的并发数 -n模拟的总请求数

本地测试的没有考虑带宽,服务器可能没有跑满带宽跑满了。Requests per second:    8.85 [#/sec] (mean) 每秒钟处理的请求数

9.第二个虚拟主机运行phpMyAdmin

准备工作:  cp  phpMyAdmin-4.4.14.1-all-languages.zip /web/vhosts/www1/

unzip phpMyAdmin-4.4.14.1-all-languages.zip

ln -sv phpMyAdmin-4.4.14.1-all-languages pma   注:方便回滚

我需要事先为其连接到数据库后准备一个授权的远程链接的用户:以遍可以登录

(1)、执行mysql或者如果本地root已经设定密码mysql -uroot -pxwj4611

(2)、GRANT ALL ON wpdb.* TO [email protected]‘172.18.%.%‘ IDENTIFIED BY ‘myuser‘

1、cp config.sample.inc.php  config.inc.php

2、openssl ran -base64 15

3、vim   config.inc.php

$cfg[‘blowfish_secret‘] = ‘46aJFLiLxmqO0qrdGqwx‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ -------随机数贴里面

$cfg[‘Servers‘][$i][‘host‘] = ‘172.18.250.157‘;     远程连接指向数据库的主机

测试:www1.stu05.com/pma

压力测试 ab -n 1000 -c 100 http://www1.stu05.com/pma/index.php   -c模拟的并发数 -n模拟的总请求数

10、编译安装xcache

# yum install php-devel

# cd  xcache-3.2.0

# phpize

# ./configure --enable-xcache  --with-php-config=/usr/bin/php-config

# make && make install

# cp  xcache.ini  /etc/php.d/

重新启动systemctl restart php-fpm

11、 为phpMyAdmin提供https虚拟主机;

DirectoryIndex index.php

<VirtualHost 172.18.105.110:443>

ServerName www1.stu05.com

DocumentRoot  "/web/vhosts/www1/myadmin"

ProxyRequests Off

ProxyPassMatch  ^/(.*\.php)$  fcgi://172.18.105.110:9000/web/vhosts/www1/myadmin/$1

SSLEngine on

SSLCertificateFile /etc/httpd/ssl/httpd.crt--------------指向证书的位置

SSLCertificateKeyFile /etc/httpd/ssl/httpd.key------------指向公钥的位置

<Directory "/web/vhosts/www1/myadmin">

AllowOverride None

Options FollowSymLinks-----------------------------允许访问链接文件的源文件

Require all granted

</Directory>

</VirtualHost>

时间: 2024-08-25 11:51:41

CentOS 7   基于fastcgi 的lamp的相关文章

基于fastcgi部署Lamp

部署要求:(1)CentOS 7 httpd,php-fpm,mariadb三者分离于三台主机: web主机:192.168.11.101 部署httpd服务: fcgi主机:192.168.11.227 部署php-fpm服务: mariadb主机:192.168.11.241 部署mariadb服务: (2)一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress: 部署过程: 一.为各主机安装相关服务并启动服务,此处为yum安装. 1.在web主机上安装httpd

LAMP ----- 编译实现基于FASTCGI的LAMP的WordPress

1 准备环境,两台主机: 一台: httpd, php 192.168.21.104 安装包存放路径: /data apr-1.6.5.tar.bz2 httpd.apache.org #wget http://mirror.bit.edu.cn/apache//apr/apr-1.6.5.tar.bz2 apr-util-1.6.1.tar.bz2 httpd.apache.org #wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.6.

编译实现基于FASTCGI的LAMP的wordpress

准备环境,两台主机,100做httpd+php,150做mariadb1.将安装包rz到主机:[root@100 ~]#lshttpd-2.4.37.tar.bz2 apr-1.6.5.tar.bz2 mariadb-10.2.15-linux-x86_64.tar.gz apr-util-1.6.1.tar.bz2 php-7.3.2.tar.xz wordpress-5.0-zh_CN.zip[root@100 ~]#tar xf apr-1.6.5.tar.bz2[root@100 ~]#

生产环境LAMP搭建 - 基于 fastcgi

生产环境LAMP搭建 - 基于 fastcgi 由于在module模式,php只是已http的模块形式存在,无形中加重了http的服务负载,通常在企业架构中,使用fastcgi的模式,将所有的服务都设置为不同的独立服务,独立进程的形式存在,并部署在不同的设备上.是用的比较多的. php 进程 默认使用9000端口 默认 php-fpm 只监听127.0.0.1 的 9000 端口 配置php的连接方式,有静态和动态两种模式 pm = static|dynamic static:固定数量的子进程:

部署环境:基于fastcgi的主机服务分离的LAMP

一.FastCgi与PHP-fpm 参考: http://www.mike.org.cn/articles/what-is-cgi-fastcgi-php-fpm-spawn-fcgi/ 二.LAMP分离架构 资源规划: 静态层:172.16.1.1,httpd服务器 动态层:172.16.1.2,PHP服务器,启动php-fpm 数据层:172.16.1.3, mysql服务器,lvm 三.数据库服务器搭建 略,参考上一篇:部署环境:LAMP+Xcache 四.httpd服务器的搭建 略,参考

基于Centos 6.5 配置分离式LAMP平台环境的一次扩展实现多PHP Apache和自建DNS来提升LAMP的负载

要达到的目的双Apache+PHP能正常的被DNS轮询解析到Apache 1 2 服务器能正常访问NFS上的静态资源PHP 1 2 服务器能正常访问NFS上的PHP资源Apache 1 2 和PHP 1 2服务器都能和MariaDB数据库服务器通信最终实现低价格提高网站负载的方案 由于这里使用了7台服务器所以下文区别服务器的方法请看命令行的[[email protected] ~]这个字段 服务器编号 服务器IP 服务器安装的服务 服务器系统 LookBack163 172.16.41.163

Centos 6.5 配置分离式LAMP平台环境 多服务器编译安装Apache2.4.x PHP5.4.x MariaDB5.5.x

这次LAMP环境才去多服务器方式,apache部署在一台服务器上 PHP部署在一台服务器上 MariaDB部署在一台服务器上. 测试OS:Centos 6.5 x86_64 软件版本:apache 2.4.x php5.4.x MariaDB 5.5.x 网络环境: [[email protected] ~]# ifconfig eth0 | awk -F'[ :]+' '/inet addr/{print$4}' 172.16.41.163 ###httpd服务器 [[email protec

在同一主机上基于编译实现lamp并构建虚拟机使用pma和discuz

在同一主机上基于编译实现lamp并构建虚拟机使用pma和discuz 目的: ①通过手动编译方式,在linux系统上安装apache http2.4,mariadb,php构建lamp;其中php与http的结合方式需要构建两种:1.php以http模块方式安装:2.php以独立守护进程方式安装 : ②在上面构建的lamp基础上设置两个虚拟机,分别使用安装phpMyAdmin和discuz 第一部分:模块话php安装lamp 一.准备工作 (一).查询有没有安装过amp的程序包: [[email

Centos 6.9 编译安装 LAMP + xcache

Centos 6.9 编译安装 LAMP apache 2.4 + Mysql 5.7 + php5.6.34 + Fast-cgi + xcache 实验环境:VMware Workstation Pro 14(试用版) 系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 Apache/2.4.29 (Unix) PHP 5.6.34 (cli) xcache 3.2.0 1. 编译安装apache 2.4 参考Centos 6.