Fork me on GitHub
Maxie's Notes

CentOS7配置LAMP (fastcgi版本)

在大多数的情况下,我们搭建的LAMP都是基于:
Liunx、Apache、MySQL、PHP
其中PHP使用的CGI,这样对系统负载压力会比使用fastCGI更大一些;
为了极致的性能,我们这次的实验是基于php-fpm,也就是fastCGI。

LAMP所有服务的配置文件:

Apache: 也就是我们之前安装过的httpd服务

1
2
3
主配置文件:/etc/httpd/conf/httpd.conf
其他配置文件目录:/etc/httpd/conf.d/*.conf
默认的网站主页目录:/var/www/html


MySQL:这次我们使用的是MySQL衍生的开源版本,MariaDB。因为MySQL被Oracle收购了,因此我们不建议再使用MySQL。

1
2
主配置文件:/etc/my.cnf
其他配置文件:/etc/my.cnf.d/*.cnf


PHP: php-fpm,fastCGI版本。

1
2
主配置文件:/etc/php-fpm.conf
其他配置文件:/etc/php-fpm.d/*.conf








此次搭建LAMP的目标如下:

在三台服务器上分别配置 httpd,php-fpm,mariadb


实验环境:
1
2
3
4
三台服务器都是CentOS7:
操作系统(OS):CentOS Linux release 7.2.1511 (Core)
内核版本(Kernel):3.10.0-327.el7.x86_64
虚拟机环境:VMware Fusion 专业版 8.5.3 (4696910)

客户端环境:


安装配置MariaDB (IP:172.16.1.110)

1、安装MariaDB以及修改数据库配置文件:

安装MariaDB

1
$ yum install mariadb-server

修改配置文件

1
2
3
4
$ vim /etc/my.cnf.d/server.conf
在[server]一项的下面添加如下信息:
skip_name_resolve=ON --跳过名字解析
innodb_file_per_table=ON --将共享表空间改为独立表空间

2、启动服务

1
$ systemctl start mariadb.service

3、创建测试数据库

1
2
$ mysql
mysql> CREATE DATABASE mydb;

4、重启MariaDB

1
$ systemctl restart mariadb.service

安装配置php-fpm (IP:172.16.1.130)

1、安装php-fpm以及php-mysql

1
$ yum install php-fpm php-mysql

2、修改php-fpm的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ vim /etc/php-fpm.d/www.conf
#这里的监听地址改为本机的对外IP地址
listen = 172.16.1.130:9000
#这里允许请求的客户端地址为我们的HTTPD服务器IP地址:
listen.allowed_clients = 172.16.1.120
#取消这项的注释;状态信息查看
pm.status_path = /status
#取消这项的注释;网络状态信息查看
ping.path = /ping
ping.response = pong
#这里的地址为默认;一般会没有这个目录,需要我们编辑完配置文件然后创建
chdir = /var/www
#这里的目录需要我们创建,并修改目录的属主属组
php_value[session.save_path] = /var/lib/php/session

3、创建之前配置文件内缺少的目录,并更改其属主属组

1
2
3
4
5
$ mkdir -pv /var/lib/php/session
$ chown -R apache.apache /var/lib/php/session
$ mkdir -pv /var/www/html #这里的地址其实是我们在httpd一会配置的反向代理的地址
$ chown -R apache.apache /var/www/

4、启动php-fpm

1
$ systemctl start php-fpm

安装配置httpd (IP:172.16.1.120)

1、安装httpd,并编辑其配置文件

1
2
3
4
5
6
$ yum install httpd
编辑httpd的配置文件,并创建虚拟主机配置文件:
$ vim /etc/httpd/conf/httpd.conf
#取消这里的注释,并修改为我们httpd的IP地址:
ServerName 172.16.1.120:80

2、编辑虚拟主机配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ vim /etc/httpd/conf.d/virual.conf
DirectoryIndex index.php
<VirtualHost *:80>
ServerName 172.16.1.120
DocumentRoot "/var/www/html/"
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.1.130:9000/var/www/html/$1 timeout=1800 #这里的IP地址是我们的php-fpm主机地址,路径也必须在php主机上存在,如果不存在则无法查找到资源
ProxyPassMatch ^/(ping|status).*$ fcgi://172.16.1.130:9000/ #反向代理php自带的ping(网络测试)以及status(php-fpm状态页)
<Directory "/var/www/html/">
Options None
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

3、在php-fpm主机上创建php测试页面

1
2
3
4
5
6
7
$ vim /var/www/html/index.php
php-fpm
<?php
phpinfo();
?>
$ systemctl restart php-fpm

4、回到httpd服务器上,重启服务。并打开浏览器测试

1
$ systemctl restart httpd

在MacBookPro上的操作:

验证成功,可以解析php页面了。

下面我们开始配置phpMyAdmin


配置 phpMyAdmin

部署前的准备工作:

下载phpMyAdmin:
如果php-fpm版本是高于5.5的,则下载phpMyAdmin-4.7.1-all-languages.zip
如果php-fpm版本是低于5.5的,则下载phpMyAdmin-4.0.10.20-all-languages.zip

下载地址在这里

1、注意如下的操作在 php-fpm主机 与 httpd主机 上都需要操作

为了方便,以下所有关于php-fpm的配置都以php说明

1
2
3
4
5
$ unzip phpMyAdmin-4.0.10.20-all-languages.zip
$ mv phpMyAdmin-4.0.10.20-all-languages pma
$ mv pma /var/www/html/
$ cd /var/www/html
$ chown -R apache.apache pma

仅在php主机上的操作:

1
2
$ yum install php-mbstring
$ yum install php-mcrypt

两台主机:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ vim /var/www/html/pma/config.inc.php #编辑第一个配置文件:修改mysql的地址
$cfg['Servers'][$i]['host'] = '172.16.1.110';
$ vim /var/www/html/pma/libraries/config.defalut.php #编辑phpMyAdmin的配置文件;修改mysql数据库的地址;默认为localhost
#修改localhost为我们的mysql数据库地址:172.16.1.110
$cfg['Servers'][$i]['host'] = '172.16.1.110';
#编辑phpmyadmin默认的配置文件
$ cp /var/www/html/pma/config.sample.inc.php /var/www/html/pma/config.inc.php
$ vim /var/www/html/pma/config.inc.php
#在''中填入一段随机字符串即可
$cfg['blowfish_secret'] = 'adawdad32k2rjf2f2hh8b7c6d'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

配置完成之后保存退出文件

2、在MariaDB上对远程连接数据库的用户授权

1
2
3
4
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.1.110' IDENTIFIED BY 'root@123';
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.1.120' IDENTIFIED BY 'root@123';
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.1.130' IDENTIFIED BY 'root@123';
> FLUSH PRIVILEGES;

注意:上述授权极为不安全,不建议在生产环境中执行

3、授权完毕之后依次重启服务

MariaDB:
1
$ systemctl restart mariadb.service
php-fpm:
1
$ systemctl restart php-fpm
httpd:
1
$ systemctl restart httpd

4、打开FireFox浏览器输入地址,进行测试

注意:由于phpMyAdmin有基于cookie的认证缓存机制,我们之前测试的时候,可能留下了缓存;所以在做之前,建议清理缓存。


上述实验的实操过程视频

Bilibili视频源:


上述实验文档:dropbox共享


-------------本文结束感谢您的阅读-------------

本文标题:CentOS7配置LAMP (fastcgi版本)

文章作者:阿蓝

发布时间:2017年06月03日 - 22:06

最后更新:2017年06月06日 - 22:06

原始链接:http://maxiecloud.com/2017/06/03/lamp/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。