搭建php-fpm工作方式的Lamp环境,实现wordpress访问

一、前言

在Centos7中以php-fpm的方式搭建Lamp环境,并实现wordpress搭建及访问,下图为搭建环境的逻辑图:


Lamp层级逻辑图

mysql服务器IP:192.168.0.188
php-fpm服务器IP:192.168.0.109
httpd服务器IP:192.168.0.118

二、搭建Lamp

1、mysql服务的搭建
在mysql服务器上执行下面的命令:

[root@mysql ~]# yum install -y mariadb-server

安装完成后,编辑/etc/my.cnf文件,添加常用参数:

[mysqld]
innodb_file_per_table=ON
skip-name-resolve=ON

保存后启动mariadb服务:

[root@mysql ~]# systemctl start mariadb
[root@mysql ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@mysql ~]# mysql_secure_installation   #对mysql数据库进行安全加固

授权test账号:

[root@mysql ~]# mysql -uroot -p123456
MariaDB [(none)]> GRANT ALL ON *.* TO 'test'@'192.168.%.%' IDENTIFIED BY "magedu";
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

2、php-fpm服务器的搭建
在php服务器输入下面的命令安装php-fpm:

[root@fpm ~]# yum install -y php-fpm php-mysql php-mbstring php-mcrypt

如果找不到php-mcrypt包,需先安装epel-release:

[root@mysql ~]# yum install epel-release

安装完成后,会生成相关的配置文件,包括:

服务配置文件:/etc/php-fpm.conf,/etc/php-fpm.d/*.conf
php环境配置文件:/etc/php.ini,/etc/php.d/*.ini

随后编辑 /etc/php-fpm.d/www.conf文件:

[root@fpm php-fpm.d]# vim /etc/php-fpm.d/www.conf
listen = 192.168.0.109:9000  #修改监听的端口和IP
listen.backlog = -1  #后援队列,指最大的等待队列,-1表示无限制;
listen.allowed_clients = 192.168.0.118  #指定允许哪些IP能访问此服务,此处允许httpd服务器访问
user = apache  #运行进程的用户
group = apache  #运行进程的用户组
pm = dynamic   #指定fpm的运行模式
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
pm.status_path = /pmstatus
ping.response = pong
ping.path = /ping
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session  #此目录不存在,需手动创建,并将属主属组指定为httpd的运行用户

随后创建指定的目录:

[root@fpm php-fpm.d]# mkdir -pv /var/lib/php/session
mkdir: created directory ‘/var/lib/php/session’
[root@fpm php-fpm.d]# chown apache:apache /var/lib/php/session/

最后启动php-fpm服务:

[root@fpm php-fpm.d]# systemctl start php-fpm.service
[root@fpm php-fpm.d]# ss -tnl | grep 9000
LISTEN     0      128    192.168.0.109:9000                     *:*                  
[root@fpm php-fpm.d]# ps aux | grep fpm
root      23953  0.4  1.0 335604 10604 ?        Ss   17:18   0:00 php-fpm: master process (/etc/php-fpm.conf)
apache    23955  0.0  0.4 335604  4732 ?        S    17:18   0:00 php-fpm: pool www
apache    23956  0.0  0.4 335604  4732 ?        S    17:18   0:00 php-fpm: pool www
apache    23957  0.0  0.4 335604  4736 ?        S    17:18   0:00 php-fpm: pool www
apache    23958  0.0  0.4 335604  4736 ?        S    17:18   0:00 php-fpm: pool www
apache    23959  0.0  0.4 335604  4736 ?        S    17:18   0:00 php-fpm: pool www
root      23968  0.0  0.0 112660   976 pts/0    R+   17:19   0:00 grep --color=auto fpm

3、搭建httpd服务
在httpd服务器上安装httpd服务:

[root@httpd ~]# yum install -y httpd

安装完成后,确认是否加载了模块proxy_fcgi_module:

[root@httpd ~]# httpd -M |grep fcgi
 proxy_fcgi_module (shared)

随后编辑创建/etc/httpd/conf.d/fcgi.conf配置文件:

[root@httpd ~]# vim /etc/httpd/conf.d/fcgi.conf
DirectoryIndex index.php  #设置默认主页为index.php
ProxyRequests off  #关闭正向代理
#将以.php结尾的URL代理转发给fcgi://192.168.109:9000
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.109:9000/var/www/html/$1  
ProxyPassMatch ^/(ping|pmstatus)$ fcgi://192.168.0.109:9000/$1

若是配置虚拟主机的话,可参考下面的配置:

Listen 8080
<VirtualHost *:8080>
        DirectoryIndex index.php
        ServerName www.a.com
        DocumentRoot /data/www/html
        ProxyRequests off
        ProxyPassMatch ^/(.*\.php)$  fcgi://192.168.0.109:9000/var/www/html/$1
        ProxyPassMatch ^/(ping|pmstatus)$ fcgi://192.168.0.109:9000/$1
        <Directory "/data/www/html">
                options none
                Allowoverride None
                Require all granted
        </Directory>
</VirtualHost>

4、在php-fpm服务器上创建编辑index.php 和mysql.php进行测试

#首先创建对应的存放目录,此处设置与httpd服务上设置的fcgi://192.168.109:9000/var/www/html/$相一致
[root@fpm ~]# mkdir -pv /var/www/html/    

[root@fpm ~]# vim /var/www/html/index.php  #
<?php
        phpinfo();
?>
[root@fpm ~]# vim /var/www/html/mysql.php
<?php
        $conn = mysql_connect('192.168.0.188','test','magedu');
        if ($conn)
                echo "Connected to mysql.";
        else
                echo "Fail";
?>

最后测试访问相应的页面:


红框中的信息说明网页是以php-fpm的方式工作的
数据库的连接也测试成功
访问pmstatus页面

访问ping页面

至此以php-fpm工作方式运行的lamp已搭建完毕。

三、wordpress的搭建

在php-fpm服务器上通过命令下载wordpress的安装包并解压复制到/var/www/html目录下:

[root@fpm ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
[root@fpm ~]# tar xf wordpress-4.9.4-zh_CN.tar.gz
[root@fpm ~]# cp -a wordpress /var/www/html/
[root@fpm ~]# chown -R apache:apache /var/www/html/wordpress/

随后在httpd服务器上创建/var/www/html/wordpress目录:

#此举是为了访问URL/wordpress时能正常代理转发到php-fpm服务器上,否则会提示/wordpress不存在
[root@localhost ~]# mkdir /var/www/html/wordpress  

随后访问192.168.0.118/wordpress:


wordpress初始化页面

此时需要为wordpress的搭建提供相应的数据库账号及建立相应的数据库:

[root@mysql ~]# mysql -uroot -p123456
MariaDB [(none)]> CREATE DATABASE wordpress;
MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'wpuser'@'192.168.%.%' IDENTIFIED BY 'magedu';
MariaDB [(none)]> FLUSH PRIVILEGES;

接着继续wordpress的初始化操作:


填写相应的数据库名及账号密码

最后设置相关的wordpress信息后点击安装wordpress即可:


安装wordpress

最后搭建完发现网站显示不正常:


显示异常

个人觉得原因是wordpress目录中不是以.php结尾的文件没有转发到php-fpm服务器上面来,因此导致了页面访问异常。
尝试了好久没有找好较好的解决办法,目前用了个比较笨的办法,就是在httpd服务器的对应目录上也解压缩一份wordpress的配置内容,这样网站打开就没问题了。


正常的网站

目前还没找出解决办法,求指点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342