Docker搭建LNMP环境实战(08):安装php-fpm

这篇具有很好参考价值的文章主要介绍了Docker搭建LNMP环境实战(08):安装php-fpm。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、编写php测试文件

在文件夹:/mnt/hgfs/dockers/test_site/www目录下创建文件:test.php,内容为:

<?php
  echo "hello world!!!!!! From test.php";
?>

2、编写php-fpm部署配置文件

在文件夹:/mnt/hgfs/dockers/test_site/compose下创建文件:test_site_php.yml,内容如下:

version: "3.5"
services:
    test_site_php:
        container_name: test_site_php
        image: php:7.2.3-fpm
        privileged: true
        restart: always
        networks:
            - test_site_network
        volumes:
            - /mnt/hgfs/dockers/test_site/www:/var/test_site/www
        environment:
            - TZ=Asia/Shanghai            
networks:
    test_site_network:
        name: test_site_network

注意:此文件中网络的名称和nginx配置文件中网络的名称是相同的,都是:test_site_network

3、修改nginx配置文件,支持php

server {
    listen       80;
    listen       443 ssl;
    server_name  api.test.site;
	
    #ssl on;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server_nopwd.key;
    # 指定密码为openssl支持的格式
    ssl_protocols  SSLv2 SSLv3 TLSv1.2;
    ssl_ciphers  HIGH:!aNULL:!MD5;  # 密码加密方式
    ssl_prefer_server_ciphers  on;   # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码

    location / {
        root   /var/test_site/www;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /var/test_site/www;
    }
	
    location ~ \.php$ {
        fastcgi_pass   test_site_php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /var/test_site/www$fastcgi_script_name;
        include        fastcgi_params;
    }
}

注意:最后一段为新加的修改

安装php-fpm,PHP,docker,php,容器

图1 fastcgi_pass设置

注意:此文件中网络的名称和php配置文件中网络的名称是相同的,都是:test_site_network

4、部署php和nginx

在shell里运行docker列表命令:

docker ps

由于修改了test_site_nginx.yml文件,所以如果test_site_nginx的docker容器存在,则先利用下面的命令卸载掉

cd /mnt/hgfs/dockers/test_site/compose
docker-compose -f test_site_nginx.yml down

按顺序启动test_site_php容器和test_site_nginx容器,由于nginx引用了php,所以先启动php,后启动nginx

docker-compose -f test_site_php.yml up -d
docker-compose -f test_site_nginx.yml up -d

5、测试访问网站

在浏览器里输入:http://api.test.site/test.php

安装php-fpm,PHP,docker,php,容器

图2 http访问php测试页面

成功!

在浏览器里输入:https://api.test.site/test.php

安装php-fpm,PHP,docker,php,容器

图3 https访问php测试页面

成功!

6、编写安装和卸载docker容器的脚本

编写一个简单的安装和卸载脚本,方便操作
1)安装脚本:install.sh
编辑install.sh文件,内容如下:

#!/bin/bash
#echo ""
echo "安装 php..."
docker-compose -f test_site_php.yml up -d
echo "php 安装结束!"
echo ""
echo "安装 nginx..."
docker-compose -f test_site_nginx.yml up -d
echo "nginx 安装结束!"
echo ""

修改执行权限:

chmod +x install.sh

2)卸载脚本:uninstall.sh
编辑uninstall.sh文件,内容如下:

#!/bin/bash
echo "卸载 nginx..."
docker-compose -f test_site_nginx.yml down
echo "nginx 卸载完成!"
echo ""
echo "卸载 php..."
docker-compose -f test_site_php.yml down
echo "php 卸载完成!"
echo ""
service docker restart # 为了保险起见,卸载完成后重启一下docker服务

修改执行权限:

 chmod +x uninstall.sh

7、测试脚本

cd /mnt/hgfs/dockers/test_site/compose
docker ps # 列举是否有容器在运行
./uninstall.sh # 有则卸载
./install.sh  # 安装

经测试,没有问题!


上一篇:Docker搭建LNMP环境实战(07):安装nginx

下一篇:Docker搭建LNMP环境实战(09):安装mariadb文章来源地址https://www.toymoban.com/news/detail-849764.html


到了这里,关于Docker搭建LNMP环境实战(08):安装php-fpm的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • php-fpm设置开机启动

    看了nginx和redis的shell启动脚本,发现服务的开启和关闭其实就是操作服务进程号,那么给php服务也写个shell脚本,也能实现service start 和 stop   进入Linux服务的初始化目录 创建phpfpmd进程脚本(进程控制脚本规范上默认都加后缀d)  第一行,说明shell的运行环境,有些服务器默

    2023年04月18日
    浏览(30)
  • php-fpm未授权访问漏洞

    目录 一、产生原因 二、利用条件 三、过程原理 四、复现过程 php-fpm配置不当,fastcgi_pass这里配置了0.0.0.0,将fastcgi接口暴露在公网,任何人都可以利用接口对php-fpm发送fastcgi协议数据,更改php.ini配置文件,导致远程代码执行 此漏洞属于配置不当,因此影响所有php版本 php-f

    2024年02月09日
    浏览(33)
  • linux下查看php进程,开启php-fpm&杀死php进程

    1、查看php进程 出现如图结果说明未开启 2、查看php安装路径 3、开启php-fpm 再次查看ps -ef |grep php 以树状图的方式展现php进程 4、关闭php-fpm

    2024年02月11日
    浏览(35)
  • 【PHP面试题81】php-fpm是什么?它和PHP有什么关系

    本文已收录于PHP全栈系列专栏:PHP面试专区。做全网最全最有营养的PHP面试大全。 计划将全覆盖PHP开发领域所有的面试题, 对标资深工程师/架构师序列 ,欢迎大家提前关注锁定。 php-fpm(PHP FastCGI Process Manager)是PHP的一个进程管理器,它作为FastCGI进程管理器来运行,负责管

    2024年02月11日
    浏览(28)
  • PHP CGI、FastCGI、PHP-FPM、PHP-CGI 区别

    PHP CGI、FastCGI、PHP-FPM、PHP-CGI 是不同的PHP执行方式和处理程序。它们有以下区别: PHP CGI (Common Gateway Interface):PHP CGI是一种通过CGI协议与Web服务器通信的PHP执行方式。在每次请求时,Web服务器会将请求传递给PHP解释器,PHP解释器会解析并执行PHP脚本,并将结果返回给Web服务器

    2024年02月11日
    浏览(38)
  • 利用Fastcgi+PHP-FPM非授权访问实现代码执行

    目录 Fastcgi Record Fastcgi Type PHP-FPM(FastCGI进程管理器) Nginx(IIS7)解析漏洞 security.limit_extensions配置 漏洞演示 今天要和大家分享的是利用Fastcgi和PHP_FPM实现未授权访问实现代码执行,首先我们需要知道cgi、fastcgi和php-fpm这些都是什么。 什么是CGI CGI全称是“公共网关接口”(Co

    2024年01月21日
    浏览(34)
  • 【面试题28】什么是PHP-FPM?它与PHP和Nginx有什么关系

    本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题, 对标资深工程师/架构师序列 ,欢迎大家提前关注锁定。 PHP-FPM(FastCGI Process Manager)是PHP的FastCGI进程管理器,它是PHP 5.3.3及更高版本的一部分。它通过为每个请求分配一个独立的进程来提

    2024年02月13日
    浏览(42)
  • 在Linux上使用PHP-FPM与Nginx实现高效的HTTP处理

    当谈到高效的HTTP处理时,PHP-FPM(FastCGI进程管理器)与Nginx的结合是许多web开发者的首选。这种组合提供了出色的性能、可扩展性和稳定性,尤其适用于高流量的网站和应用程序。 1. 为什么选择PHP-FPM与Nginx? 性能优化 :PHP-FPM通过进程管理和缓存机制,显著提高了PHP脚本的执

    2024年01月17日
    浏览(30)
  • Docker搭建LNMP环境实战(06):Docker及Docker-compose常用命令

    此处列举了docker及docker-compose的常用命令,一方面可以做个了解,另一方面可以在需要的时候进行查阅。不一定要强行记忆,用多了就熟悉了。 1.1、镜像常用命令 1)列举镜像 2)删除镜像 3)使用repositories:tag进行删除 1.2、容器常用命令 1)列举所有容器 2)列举正在运行的容

    2024年03月27日
    浏览(34)
  • Linux系统下配置Nginx使部分URL使用多套自定义的PHP-FPM配置

    1. Tcp默认的9000端口通信: php-fpm配置:listen = 127.0.0.1 与nginx进程通信:fastcgi_pass 127.0.0.1:9000; 优点: 使用网络传输,可以跨服务器。 TCP通信有一些校验机制,具有更高的稳定性。 缺点: 性能略微比socket差。 2. Unix Socket(套接字)通信: php-fpm配置 :listen = /tmp/php-cgi.sock 与

    2024年02月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包