用 frankenphp+mysql 快速搭建一个高性能的网站-2!

用 frankenphp+mysql 快速搭建一个高性能的网站-2!

wszx01
2024-12-13 / 0 评论 / 0 阅读

用 frankenphp+mysql 快速搭建一个高性能的网站-2!

FrankenPHP 是构建在Caddy Web 服务器之上的现代 PHP 应用程序服务器。

一、docker安装

curl -fsSL https://get.docker.com | sh && ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin

二、创建目录结构

mkdir -p /home/web/{caddy,html,,mysql}

touch /home/web/caddy/Caddyfile

三、下载源码
1、web1网站

cd /home/web/html/ && mkdir web1 && cd web1

上传php文件【下面的 WSZXIMG 修改用大写,另一个网站从上一步增加web2并进入,下一步也要修改,6379不修改】

echo "define('FS_METHOD', 'direct'); define('WSZXWEB_REDIS_HOST', 'redis'); define('WSZXWEB_REDIS_PORT', '6379');" >> /home/web/html/web1/web1-config-sample.php

2、web2网站

cd /home/web/html/ && mkdir web2 && cd web2
echo "define('FS_METHOD', 'direct'); define('WSZXWEBB_REDIS_HOST', 'redis'); define('WSZXWEBB_REDIS_PORT', '6379');" >> /home/web/html/web2/web2-config-sample.php

四、配置Caddyfile,以kjlion.com为例,cf上小云朵随便。

nano /home/web/caddy/Caddyfile
{

        frankenphp

        order mercure after encode

        order vulcain after reverse_proxy

        order php_server before file_server

        order php before file_server

}





1.kjlion.com {

        root * public/web1

        encode zstd gzip

        php_server

}

2.kjlion.com {

        root * public/web2

        encode zstd gzip

        php_server

}

五、启动环境

wget -O /home/web/docker-compose.yml https://raw.githubusercontent.com/wszx123/gongjuxiang/refs/heads/main/.github/workflows/docker-compose-frankenphp.yml

nano /home/web/docker-compose.yml

cd /home/web && docker-compose up -d

六、安装PHP扩展,最好分两次
1、

docker exec -it web install-php-extensions mysqli gd intl zip opcache

docker exec -it web install-php-extensions exif imagick redis

2、下面的最大上传50M可修改为100M,内存256M也可修改为128M

docker exec web sh -c 'echo "upload_max_filesize=50M \n post_max_size=50M" > /usr/local/etc/php/conf.d/uploads.ini'

docker exec web sh -c 'echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory.ini'

docker exec web sh -c 'echo "max_execution_time=1200" > /usr/local/etc/php/conf.d/max_execution_time.ini'

docker exec web sh -c 'echo "max_input_time=600" > /usr/local/etc/php/conf.d/max_input_time.ini'

七、创建数据库, 不用数据库的可不安装 【备注1:enter password:是上一步启动环境中设置的MYSQL_ROOT_PASSWORD: webroot,备注2:上一步的 MYSQL_USER: kejilion 名称与这一步中的TO 'kejilion'@'%'; 的名称要一致】

docker exec -it mysql mysql -u root -p

CREATE DATABASE web1;

GRANT ALL PRIVILEGES ON web1.* TO 'kejilion'@'%';

八、重启环境,重新安装另一网站要重启

cd /home/web && docker-compose restart
0

评论 (0)

取消
您是第 133498 位访客