N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

2021-08-16 17:37:20 21点赞 124收藏 12评论

创作立场声明:本文为纯技术干货内容,参考了网上的一些公开资料,无任何商业推广,欢迎各位小伙伴批评指正~

Intro

各位小伙伴我又回来啦~昨天刚部署好Unifi控制器,一看内存CPU占用都还有不少空余,干脆直接部署一个PHP运行环境+KodBox云桌面当轻型文件存储服务器继续榨干N1的性能空余,接下来开始吧~

本文参考了CSDN博主RicheyJang的方法和其他互联网公开资料,在这里对资料的作者表示感谢~

环境配置&准备

检查系统内核版本

我这里用的N1系统是基于Ubuntu内核的,软件兼容性和依赖问题解决起来比较简单,如果不知道自己的内核是什么的话,可以用命令

uname -v

查询系统的内核,比如我这里的输出就是

5.77 user-built Ubuntu 18.04.5 LTS 5.0.2-aml-s905

或者也可以直接在第一次登陆的时候看到欢迎信息上提示的内容,像这样

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

在欢迎信息上也可以看到内核的版本。

我本来想用源码编译安装nginx和php的,但是不知道为什么总是出现依赖问题,到最后直接用apt包管理器解决了安装的那堆奇奇怪怪的问题。这里建议大家直接用apt安装,能省很多事。

大概的系统架构

我这里采用的是Nginx+PHP7.2+MariaDB(MySQL)+Memcached作为整体的框架,当然也可以使用Redis作为缓存,我个人习惯用基于内存的缓存,这样清理起来比较方便,基于文件的缓存的话效率也不错,根据实际情况选择就好~

安装相关软件

这里要用的软件比较多,可以分几个步骤安装,首先是Nginx+MariaDB+Memcached,在执行之前先更新一下缓存

apt update

然后执行

apt install -y nginx mariadb-server memcached

回车之后耐心等待一下就安装好了。安装结束后执行一下

mysql_secure_installation

就可以进入MariaDB的安装流程,按照指引做就行,提示语都是英语,如果英语水平OK的话一般问题不会太大。下面的流程仅供参考,可以根据自己的实际情况进行调整。

首先是输入当前的数据库root密码,在Linux下密码默认是不回显的,直接输入+回车就行,并不是卡住了。

注意是数据库的root用户的密码,不是系统的root用户的密码,当然这两个可以是一样的。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

输入正确之后可以直接进入下一步,会问你是不是需要改密码,不需要的话直接回答n就行。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

驶入完成之后会问你是不是需要删除匿名用户,默认情况下MariaDB会随着安装创建一个匿名用户用来测试。出于安全起见,一般是建议删除掉的,如果是用于生产环境的话最好还是删掉匿名用户,这里我选择删除,回答y。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

接下来会询问你是不是要禁止root用户的远程登录,从安全的角度考虑root用户最好还是只能给本地的localhost连接比较好,这里我回答y,也就是禁止远程root登录。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

然后就是询问是否删除默认用来测试的test数据库,这个一般直接删了就行,回答y。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

最后就是询问是不是要重新载入特权表,让刚才的修改立即生效,这里直接回答y就行。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

当出现Thanks for using MariaDB!的提示的时候,整个配置过程就结束了接下来就是其他的时间啦~

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

然后就是安装php的时间~ 执行以下命令就好

apt install -y php7.2-fpm php7.2-mysql php7.2-curl php7.2-json php7.2-mbstring php7.2-xml php7.2-intl php7.2-gd php7.2-memcached

耐心等待一下就可以安装完成。

如果提示找不到软件包的话,可以执行以下这个命令

add-apt-repository ppa:ondrej/php && apt update

然后安装就应该可以了。

Nginx和php的配置

配置之前还是最好检查一下php和nginx是不是都已经运行了,执行

php -v && systemctl status nginx

可以看到类似下面的输出的话那就证明php和nginx都已经正常工作了。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

接下来先配置php,用nano编辑以下文件

nano /etc/php/7.2/fpm/pool.d/www.conf

然后找到listen = /run/php/php7.2-fpm.sock这行,改成

listen = 127.0.0.1:9000

默认情况下用9000端口就行,如果9000被占用的话可以用其他端口。

然后用nano编辑/etc/nginx/nginx.conf文件,找到http的配置,更改为以下内容

include mime.types;

default_type application/octet-stream;

server_names_hash_bucket_size 512;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 10G;

sendfile on;

tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 720;

fastcgi_connect_timeout 3600;

fastcgi_send_timeout 3600;

fastcgi_read_timeout 3600;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 256k;

fastcgi_intercept_errors on;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;

gzip_vary on;

gzip_proxied expired no-cache no-store private auth;

gzip_disable "MSIE [1-6].";

server_tokens off;

更改后的内容大概是这样的。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

然后我们到/etc/nginx/sites-enabled目录下,把default.conf改成下面的内容就行了。

server {

listen 80;

root /var/www/html;

index index.php index.html index.htm;

server_name _;

sendfile on;

location /.git {

deny all;

return 403;

}

location ~ [^/].php(/|$) {

try_files $uri =404;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

set $path_info $fastcgi_path_info;

set $real_script_name $fastcgi_script_name;

if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {

set $real_script_name $1;

set $path_info $2;

}

fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;

fastcgi_param SCRIPT_NAME $real_script_name;

fastcgi_param PATH_INFO $path_info;

include fastcgi_params;

}

location ~* .(jpg|jpeg|gif|png|css|js|ico|webp|tiff|ttf|svg)$ {

expires 30d;

}

location ~ .*.(js|css)?$

{

expires 12h;

}

location ~ /. {

log_not_found off;

deny all;

}

location ^~ /.well-known {

allow all;

auth_basic off;

}

location = /favicon.ico {

log_not_found off;

}

}

改好之后Ctrl+X保存退出,文件应该是这样的。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

这时候重启nginx和php-fpm就行了,执行下面的命令

service php7.2-fpm restart && service nginx restart

就可以重启php和nginx了。

之后到可以访问一下盒子的IP,如果出现这个页面的话Nginx应该是正常的。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

数据库的配置

配置完成之前的所有内容后,就可以开始处理数据库有关的东西了,如果熟悉SQL语言的话这个部分应该不难。也可以参考下面的步骤。

先输入mysql进入操作界面,像这样。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

然后输入(自己改用户名和密码哈~)

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'localhost' IDENTIFIED BY '这里是密码';

然后刷新一下特权表

FLUSH PRIVILEGES;

之后输入exit退出,重新用用户名+密码的方法进入数据库的操作界面

mysql -u用户名 -p密码

注意-u和-p后面直接跟着用户名和密码就行,不需要空格或者多余的符号。

重新登录之后,新建一个数据库用来存放KodBox的数据。

CREATE DATABASE 数据库名字 DEFAULT CHARACTER SET UTF8;

然后输入exit就可以退出数据库的操作界面了。

KodBox的安装

完成以上配置之后,直接到kodbox官网下载最新版的kodbox放到/var/www/html里就行,然后访问盒子的IP就可以进入向导,安装的时候缓存选择Memcached,如果权限出现问题的话执行以下命令就可以修改权限。

chmod -R 777 /var/www/html

然后按照教程一步步走就好了,这里就不展开说明啦~

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

如果权限检查时上面的样子应该就没什么问题了,直接按照引导走就行,安装好后登陆就行~

安装好后CPU占用倒是不高。。内存占用一下子就上去了N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面 2G的内存真的伤不起。。

N1盒子性能不浪费!尝试在N1盒子上部署PHP+KodBox云桌面

以上就是这次折腾的全部内容啦~ 如果有帮助的话就请点个赞 谢谢啦~

展开 收起
12评论

  • 精彩
  • 最新
  • [中枪] 完全看不懂,但是我还是耐心的看了。算了不折腾了,支持下***!

    校验提示文案

    提交
    感谢支持~

    校验提示文案

    提交
    收起所有回复
  • [黑线] 我用的宝塔面板一键部署的,但是数据库一直不能启动,导致可道云没法创建数据库,愁死了…

    校验提示文案

    提交
    一键部署好像很容易出现一些奇奇怪怪的问题emmm 本来我直接用lnmp或者lamp脚本搞就简单很多 奈何用脚本死活就是装不好php [尴尬] [尴尬] [尴尬] [尴尬]

    校验提示文案

    提交
    如果是数据库的话 看看能不能进到数据库控制界面 然后手动创建新用户和新的数据表 然后赋予权限再试试看可能会有效果。。。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我的N1现在是块砖头,咋救 [喜极而泣]

    校验提示文案

    提交
    试下强刷emmc?

    校验提示文案

    提交
    收起所有回复
  • 标准的Lnmp。

    校验提示文案

    提交
    哈哈哈哈没错 但是和用脚本一键安装的那种还是有点区别

    校验提示文案

    提交
    收起所有回复
  • [皱眉] 看着就累,就当电视盒子了

    校验提示文案

    提交
  • 为什么不用docker呢……话说,在n1上用可道云,太难为n1的usb 2.0了….

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
124
扫一下,分享更方便,购买更轻松