以下是一些现成的PHP后台管理系统:

1. WordPress:最初是博客平台,现在已发展为功能强大的内容管理系统,可用于构建多种类型网站。它使用PHP和MySQL数据库,有大量免费插件和主题,能轻松扩展功能与自定义外观,全球使用广泛。
2. Drupal:用PHP编写的免费开源模块化框架和内容管理系统,可让个人或社区使用者方便地发表、管理和组织网站内容,能满足从小型个人博客到大型公司和政治网站等不同需求。
3. Joomla:获奖的内容管理系统,可用于建立网站和强大的在线应用。具有易用性和可扩展性,是流行的网站软件,开源且免费。
4. PbootCMS:全新内核且永久开源免费的PHP企业网站开发建设管理系统,采用简单的模板标签,懂HTML就可快速开发企业网站。使用自主研发的高速多层开发框架及缓存技术,默认采用Sqlite轻型数据库,也支持MySQL等,还支持多种功能。
5. HisiPHP:基于ThinkPHP5.1/6+Layui开发的通用后台管理框架,默认集成权限管理、模块管理等常用功能。支持一键升级,内置应用市场,具有响应式开发、表单构建器、表格构建器等功能,方便开发者快速构建应用。
6. Dcat Admin:基于laravel - admin二次开发,只需很少代码就能快速构建功能完善、高颜值的后台系统。内置丰富后台常用组件,支持用户管理、菜单管理、RBAC权限管理等多种功能,对后端开发者友好。

LNMP是指网站服务器架构:Linux系统下Nginx+PHP+MySQL。

Linux: 是一类计算机操作系统的统称,这里使用的是armbian。

Nginx: 是网页伺服器也是高性能的HTTP和反向代理伺务器。

PHP: 是一种嵌入HTML文档的脚本语言。

Mysql: 是一个数据库管理系统。

1、Nginx - 网页伺服器安装:

apt install -y nginx

2、PHP - 安装:

apt install -y php php-fpm php-mysql php-gd php-curl php-mbstring php-xml php-xmlrpc php-json php-zip php-intl php7.3-xml php7.3-common

3、修改php.ini文件

修改前先停止php服务:systemctl stop php7.3-fpm

cp /usr/lib/php/7.3/php.ini-production /etc/php/7.3/fpm/php.ini

nano /etc/php/7.3/fpm/php.ini

常见修改项目为:

修改 php.ini 通常涉及以下几个方面的常见配置:

  • 性能优化 memory_limit :
    设置PHP脚本可使用的最大内存量,如将其设置为 256M 以满足复杂脚本或处理大量数据的需求。 
  • max_execution_time :
    规定PHP脚本的最大执行时间,单位为秒。若脚本执行时间可能较长,可将其调大,如设置为 60 秒。 
  • opcache.enable :
    开启OPcache,可提高PHP脚本的执行速度。将其设置为 1 表示开启。
  • 错误处理与日志 display_errors :
    设置是否在页面上显示错误信息。开发环境可设为 On ,生产环境建议设为 Off ,以避免暴露敏感信息。 
  • error_reporting :
    指定报告哪些类型的错误。开发时可设为 E_ALL ,生产环境则根据实际情况选择,如 E_ERROR | E_WARNING | E_PARSE 。 
  • log_errors :
    设为 On 时,PHP会将错误信息记录到日志文件中,便于排查问题。
  • 安全设置 disable_functions :
    列出禁止PHP执行的函数,可防止一些危险操作,如 system 、 exec 等函数,根据安全需求进行配置。 
  • session.cookie_secure :
    设为 1 时,仅通过HTTPS连接发送会话Cookie,提高会话安全性。
  • 数据库连接 pdo_mysql.default_socket :
    指定PDO连接MySQL时使用的套接字文件路径,确保能正确连接到数据库。
  • 文件上传 upload_max_filesize :限制上传文件的最大大小,如设为 20M 。 
  • post_max_size :
    限制通过POST方法提交的数据最大大小,一般应大于 upload_max_filesize 。

修改完成后重新启动php服务:systemctl restart php7.3-fpm

4、編寫nginx設定檔對PHP支持

  • vi /etc/nginx/sites-enabled/default

请输入图片描述

测试Nginx设置是否正确:

  • nginx -t
  • 重启nginx服务器
    service nginx restart
  • 添加PHP测试页面:
    echo "<?php phpinfo(); ?>" > /mnt/sda/www/html/info.php

5、Mysql - 数据库管理系统安装:

出于硬件限制,在armbian的系统内,优先使用MariaDB数据库管理系统。

MariaDB是MySQL关联式资料库管理系统的一个复刻

出于硬件限制,在armbian的系统内,优先使用MariaDB数据库管理系统。

MariaDB是MySQL关联式资料库管理系统的一个复刻。

  • 安装数据库:

apt install -y mariadb-server

mysql -v查询版本号

  • 执行数据库配置向导:
mysql_secure_installation

image.png

  • 账户设置
    直接输入mysql直接登录
    mysql
    -查询用户表
    select User,host from mysql.user;
  • 使用mysql数据库
    use mysql;
    GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

添加一个可以从任何地址登录的root账户密码建议复杂一点

mysql用户想连到mysql,需要使用grant命令给用户授权,有一个简单的办法,可以使用grant ALL privileges 命令给用户授予所有权限, 你想myuser使用mypassword从任何主机连接到mysql服务器的话。

主要使用:GRANT ALL PRIVILEGES ON . to 'root'@'%'; 命令授权.

  • grant给root使用root密码从任何主机连接到mysql服务器。
    GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
  • 或者
    GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root';
    FLUSH PRIVILEGES;
  • grant给root用户授予操作mysql所有数据库的所有权限

5、自动挂载u盘,把typecho安装到u盘
修改/etc/rc.local文件,并给它可执行权限。
6、nginx修改web目录到u盘目录

nano /etc/nginx/sites-enabled/default,打开nginx配置文件

修改server块为:

root /mnt/sda/web/typecho;

7、重新加载Nginx配置以使更改生效
通常使用以下命令:sudo nginx -s reload
或者重启Nginx服务:sudo systemctl reload nginx
或者在不同的系统中:sudo service nginx reload

刷固件:直接插US线刷就行,刷失败的换线、换usb口,都是老生常谈了。

(一句话概括线刷:usb双公头线连接电脑和赚钱宝,按住reset的同时插电,电脑上USB_Burning_Tool提示连接成功就可以松开reset,软件左上角导入固件开始刷入)

刷完后,如果需要用apt,必要准备事项:(如果只跑甜糖就不用关心这些了)

1、SSH登录,初始root密码为1234,进去后请按照提示修改密码。

2、自动调整根目录空间大小:resize2fs /dev/data

3、设定+0800时区

timedatectl set-timezone "Asia/Hong_Kong"

timedatectl set-timezone "Asia/Shanghai

复制代码

手动设定现在日期与时间

timedatectl set-time "2021-07-14 14:38:40"

复制代码

4、安装ntp服务,自动校时

apt install -y ntp

复制代码

查看ntp服务状态

systemctl status ntp

复制代码

显示active (running)代表已启用及执行中

5、(可选)换源:nano /etc/apt/sources.list,把原有的前面全都加上#号,然后添加以下内容:

deb http://mirrors.ustc.edu.cn/debian buster main contrib non-free

deb http://mirrors.ustc.edu.cn/debian buster-updates main contrib non-free

deb http://mirrors.ustc.edu.cn/debian buster-backports main contrib non-free

deb http://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free

复制代码

6、sudo apt update && sudo apt install armbian-config

7、apt-get upgrade

更新一下系统,必要的。因为这个包制作过程中遇到些小困难,只能用很古老的内核版本,不更新的话装软件成问题。

8、服务器改名

更改机器名:

第一步: 修改/etc/hostname

/etc/hostname中存放的是主机名,hostname文件的一个例子:

root@itcast:~# vim /etc/hostname

第二步:修改/etc/hosts配置文件(可选)

/etc/hosts存放的是域名与ip的对应关系,域名与主机名没有任何关系,你可以为任何一个IP指定任意一个名字。

root@itcast:~# vim /etc/hosts

9、设置临时代理科学上网

代理端口为7890,那么应该设置为

export http_proxy="http://121.17.174.121:17890"

export https_proxy="http://121.17.174.121:17890"

如果是要停用http代理需要使用:

unset http_proxy

unset https_proxy

10、更新软件包列表

首先,我们需要更新软件包列表,以确保我们使用的是最新的软件版本。在终端中输入以下命令:sudo apt update

apt-get upgrade

11、安装lrzsz

apt install lrzsz

在Linux系统中,结束占用磁盘的进程可以使用 kill 命令,具体步骤如下:

查找进程ID(PID)

使用前面提到的方法,如 lsof 或 fuser 命令找到占用磁盘的进程ID。例如,使用 lsof 命令查看占用 /dev/sdb1 的进程:

bash

sudo lsof /dev/sdb1
 

该命令会列出相关进程信息,其中包含进程ID。

结束进程

找到进程ID后,使用 kill 命令结束进程。例如,要结束进程ID为 1234 的进程,可以执行:

bash

sudo kill 1234
 

如果 kill 命令无法正常结束进程,可以使用 -9 信号强制结束进程:

bash

sudo kill -9 1234
 

不过,强制结束进程可能会导致数据丢失或程序出现异常,应谨慎使用。

如果不知道具体的进程ID,也可以结合 pkill 命令通过进程名来结束进程。例如,若占用磁盘的进程名为 example_process ,可以执行:

bash

sudo pkill example_process
 

或使用 -9 信号强制结束:

bash

sudo pkill -9 example_process

在Linux系统中,可以使用以下方法查看哪些进程正在访问指定磁盘:

使用 lsof 命令

 lsof 可以列出当前系统中打开的文件和相关进程信息。要查看访问指定磁盘(假设磁盘设备名为 /dev/sdb1 )的进程,可执行命令:

bash

sudo lsof /dev/sdb1
 

使用 fuser 命令

 fuser 能显示使用指定文件或文件系统的进程。例如,要查看访问 /dev/sdb1 的进程,命令如下:

bash

sudo fuser -v /dev/sdb1
 

结合 ps 命令和 mount 命令

先通过 mount 命令找到指定磁盘的挂载点,假设挂载点为 /media/usb ,再使用 ps -ef 命令结合 grep 查找与该挂载点相关的进程,命令如下:

bash

mount | grep /dev/sdb1 # 找到挂载点
ps -ef | grep /media/usb # 查看相关进程