基于rpm搭建基础LAMP
架构图:
实验环境:
C8 10.0.0.10:apache
C8 10.0.0.20:php-fp
C8 10.0.0.10:mysql
注意事项:
1)在实际工作中Apache软件和php-fpm小项目装一块 大项目分开装。
2)删除装错的remi-release-x.rpm
yum -y remove remi-release
3)只用enable --now 表面实现已监听已开启,实则还要使用start才能真正打开服务。
4)如果php无连接mysql数据库的账号或者连接mysql数据库的php文件抒写错误则客户端访问Apache节点会提示连接被拒绝。
配置列表👇:
1.Apache配置:
1)检查mod_proxy_fcgi.so 模块是否存在,默认加载。
<没有则装载打开此文件装载>
vim /etc/httpd/conf.modules.d/00-proxy.conf
2)创建子配置文件将用户的动态请求转移到php-fpm服务进行处理(就是一个打通apache和php连接的文件)。
vim /etc/httpd/conf.d/fcgi.conf
DirectoryIndex index.php
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://10.0.0.20:9000/data/php/$1 #指定php-fpm节点IP及php-fpm节点所指定的php文件存放路径
ProxyPassMatch ^/(status|ping) fcgi://10.0.0.20:9000 #当用户访问status和ping这个两个资源时也提交给php-fpm处理(这样可获取php服务器实时状态)
3)开启Apache服务
systemctl enable --now httpd
httpd -k start
2.php-fpm配置:
1)###搭建yum仓库获取最新的php包,centos7则搭建remi-release-7.rpm。
yum -y install https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-8.rpm
2)###安装7.4版本的php-fpm及相关依赖包
yum -y install php74-php-fpm.x86_64 php74-php-mysqlnd
3)打开子配置文件修改其选项<通过rpm -ql php74-php-fpm 找到其主配置文件/etc/opt/remi/php74/php-fpm.conf 翻到最下一行可看到>
vim /etc/opt/remi/php74/php-fpm.d/*.conf
<修如下图:>
<修如下图:将其注释 指定哪个用户可以访问>
<修如下图:取消注释 打开PHP的状态页面>
<修如下图:取消注释,提供PHP连通性功能,如果正常则返回pong>
4)创建放置php文件的路径
mkdir /data/php
vim /data/php/index.php
<?php
phpinfo();
?>
5)存放php文件的路径下(/data/php)写个能够让php-fpm节点连接mysql数据库的文件
vim /data/php/mysql.php
<?php
try {
$user='php'; ###数据库需已创建该账号
$pass='123456';
$dbh = new PDO('mysql:host=10.0.0.30;port=3306;dbname=mysql', $user, $pass); ###指定要连接的数据库IP及端口号
foreach($dbh->query('SELECT user,host from user') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
6)改完配置后,重启php-fpm服务。
systemctl enable --now php74-php-fpm.service
systemctl start php74-php-fpm.service
3.mysql配置:
1)yum安装mysql-server
yum -y install mysql-server
systemctl enable --now mysqld
systemctl start mysqld
2)登录mysql(因为yum安装所以在服务端上可以空密码登录,登陆后记得修改),创建并授权一个all权限的php账号用于连接mysql。
create user php@'10.0.0.%' identified by '123456';
grant all on *.* to php@'10.0.0.%';
测试环节
1)分别测试Apache与ph-fpm及php-fpm与mysql的连通情况。
<Apache与ph-fpm>
<php-fpm与mysql>
2)通过访问Apache节点获取php-fpm节点的状态页和连通性情况。
<status页>
<连通性情况>
结论:LAMP搭建成功后客户端的访问php资源(动态请求)Apache接收后则会以fastcgi协议与php-fpm相互传输,而php-fpm到mysql则以mysql协议进行传输。
posted on 2021-07-03 22:59 1251618589 阅读(2) 评论(0) 编辑 收藏 举报