docker搭建nginx+php环境让halo博客轻松管理php脚本

6 篇文章 0 订阅
5 篇文章 0 订阅
欢迎访问我的博客:https://blog.luvying.com

本文利用halo博客的静态存储,实现在halo博客中能够轻松管理自己的php脚本,而不需要直接登陆服务器
由我另一篇文章进行修改:docker搭建nginx+php环境

1 准备

1.已安装好docker
2.已在docker中安装好nginx,docker安装nginx可参考我另一篇文章:docker安装nginx并配置SSL
3.已安装好halo博客系统

2 docker安装php并启动

因为我之前没用过php,查了一些教程,不少用5.6的,怕踩坑,也用5.6的,不过现在发现用新版本的也没啥问题

docker pull php:5.6-fpm

安装完毕后,到halo的开发者模式的静态存储,新建一个名为php的文件夹,再往下创建一个open的文件夹
在这里插入图片描述

然后回到服务器,启动php,用-v把本地/data/halo/static/php 映射到php容器的/www目录中

docker run -itd --name myphp -v /data/halo/static/php:/www -m 55m php:5.6-fpm

注意我这里的halo是跑在docker里的,挂在到了本地的/data/halo目录中了,如果halo不是跑在docker中,则要用下面这条命令(目录自行修改)

docker run -itd --name myphp -v /root/.halo/static/php:/www -m 55m php:5.6-fpm

3 配置nginx

打开自己的nginx配置文件,在server中加入下面内容

location ~ ^/open/.+\.php$ {
        #root /www;
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /www/$fastcgi_script_name;
        include        fastcgi_params;
    }

好了,这里需要解释一下前面为啥要建立/php和/php/open这两个文件夹了,因为如果只建立/php文件夹,而且我们启动php时挂载到本地的/data/halo/static/php目录,这样的话,访问 域名/xxx.php时会可以正常访问,但是此时halo中却不能够下载该.php文件了,所以需要再建/php/open这个目录
然后在nginx中的location中配置 ^/open/.+.php 这样就会匹配/open开头,.php结尾的路径
然后.php文件放在/php/open/下,要访问.php页面的时候就访问 域
名/open/xxx.php,要下载.php文件的时候就访问 域名/php/open/xxx.php
(可能说得有些乱…凑合看吧…捂脸…)

然后启动nginx容器,注意挂载的目录,nginx配置文件名,根据自己实际情况修改

docker run -itd --name nginx -p 80:80 -p 443:443 -v /data/nginx/conf.d/halo-ssl.conf:/etc/nginx/conf.d/nginx.conf -v /data/nginx/conf.d/cert:/etc/nginx/conf.d -v --link myphp:php -m 100m nginx

其它相关说明在我另一篇文章中,这里不赘述

4 使用

建一个info.php脚本文件,里面写

<?php phpinfo(); ?>

保存,用halo上传到/php/open中
然后浏览器访问
在这里插入图片描述
然后以后就可以愉快地随时随地给自己网站增加/修改php页面了~

5 其它说明

1 我给自己服务器配置了CDN,务必要将/*.php排除出CDN的缓存规则,否则会发现自己的php页面怎么变成静态页面了(大雾)
在这里插入图片描述
2 如果php页面需要返回302来让浏览器进行转发,记得在CDN中关闭重定向跟随,不然CDN会把302吞了,自行获取页面了再返回,这样太耗CDN流量了=。=

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值