由于CPU的特殊与硬件资源的紧张,我并没有在NC10上安装运维面板,导致有大量优质文章的安装方法无法参考,以至于我在找寻、尝试安装各类程序时,经常被如何安装、运行报错、缺环境、缺依赖等问题搞得晕头转向,这里面涉及的安装、扩展、依赖的内容,对于我这种刚开始摸索接触的小白真可谓是天坑,在没有人指导的情况下,一个软件的安装几天都没有进展是再正常不过的事情。好在如今AI搜索发达、结合网上的文章和视频分享,一点点摸索下来也解决了不少问题,其中开发语言与数据库就是我们安装、运行许多软件时所必须用到的工具,我通过边摸索边记录边整理,将过程中可以在NC10上实现的步骤汇成的这篇笔记。
其实,OMV系统默认环境是LNMP,即 Linux、Nginx、MySQL、PHP,它已经在脚本安装时帮助我们安装了部分环境,OMV 7的软件默认版本是nginx1.22、php8.2、php8.2-fpm,但缺少了MySQL数据库需要我们自己补充上。后文记录了各种运行环境的部署方法、注意事项,并非所有语言环境都要安装,主要取决于你使用的软件是否有要求,若你没有安装OMV系统,需要行补齐LNMP或者LAMP。
简介:Rust语言是一门开源的系统编程语言,特点:运行快,防止段错误,保证线程安全。详见:Rust ·官网。
安装必要软件包
更新本地可用的软件包列表
sudo apt update
sudo apt install curl build-essential gcc make -y
设置 Rustup 镜像
# 临时替换
export RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rustup/rustup
export RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rustup
# 永久替换
echo 'export RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rustup/rustup' >> ~/.bash_profile
echo 'export RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rustup' >> ~/.bash_profile
source ~/.bash_profile
脚本一键安装
提示选择安装方式,键入1 继续
# 使用阿里云安装脚本
curl --proto '=https' --tlsv1.2 -sSf https://mirrors.aliyun.com/repo/rust/rustup-init.sh | sh
为Rust 添加环境变量
source ~/.profile
source ~/.cargo/env
验证安装版本
rustc -V
配置 crates.io 镜像
编辑配置文件 "~/.cargo/config",添加代码块中的内容;
nano ~/.cargo/config
[source.crates-io]
replace-with = 'aliyun'
[source.aliyun]
registry = "sparse+https://mirrors.aliyun.com/crates.io-index/"
帮助文档:从 Linux 终端在 Debian 12 上安装 Rust | 安装 · Rust | rustup安装加速 |
简介:Python 是一种高层次的脚本语言,具有强大的可读性和面向对象特性,可以用于 Web 开发、软件开发、数学、系统脚本等。Python 有简单的语法、解释器系统、多种编程范式,可以在多种操作系统上运行,包括Windows、Linux、UNIX和Mac OS。而pip是Python包管理工具,可以查找、下载、安装和卸载Python包。
详见:Python·官网。
使用Debian仓库安装
最高版本到v3.11.2;但超过这个版本OMV运行会报错。
# 更新本地可用的软件包列表
sudo apt update && sudo apt upgrade -y
# 安装python软件包
sudo apt install -y python3 python3-pip python3-dev
检验安装
python3 --version
pip3 --version
使用编译器安装
程序包:Python-3.13.0.tgz | Releases · Python | 已编译Python-3.13.0 (提取码:dp56)
编译安装可到目前最新版本3.13.0,不想编译可以下载已编译好的版本,解压到安装目录后,然后从第6步开始;不建议作为主要程序替换python3。
步骤:
1、安装依赖
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl
2、用户目录下载 源码包
wget https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tgz
3、解压源码包
tar zxf Python-3.13.0.tgz
4、创建python安装目录
mkdir -p ~/software/python-3.13.0
5、编译安装
# 进入源码目录 cd ~/Python-3.13.0 # 配置编译选项 ./configure --with-ssl --prefix=/home/test/software/python-3.13.0 # 开始编译 make # 安装程序 make install
6、为当前用户创建软连接
ln -s /home/user/software_home/python3.13.0/bin/python3.13 /home/user/.local/bin/ ln -s /home/user/software_home/python3.13.0/bin/pip3.13 /home/user/.local/bin/
pip设置国内源加速
阿里云开源镜像
pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple
pip3 config set install.trusted-host mirrors.aliyun.com
简介:pipx 是一个用于管理和运行 Python 软件包的工具,它能够为安装的每一个应用程序自动创建独立的 Python 环境,位于"~/.local/pipx/venvs"下的程序同名子目录中,安装成功后将创建指向 ".local/bin" 的链接,用户可以从命令行中的任何位置运行程序。在debian中使用pipx安装python程序,可以避免了apt与pip包管理器的冲突。
# 安装主程序
sudo apt install -y pipx
# 将pipx添加到环境变量中
pipx ensurepath
# 检验安装
pipx --version
简介:虚拟环境 (venv) 是一个用来为一个应用创建一套“隔离”的Python运行环境的工具。它可以创建一个隔离的Python环境,用于安装和管理不同项目的Python软件包。这种隔离确保了项目之间的依赖关系不会相互冲突,使得每个项目都可以拥有其所需的特定版本的软件包。效果与pipx相同,也可以避免了apt与pip包管理器的冲突,缺点是需要手动创建指向 ".local/bin" 的链接。
安装venv主程序
sudo apt install -y python3-venv
虚拟环境(venv)的创建、激活与退出
# 创建虚拟环境;"/path/to/your/"是具体路径;"/venv"存放虚拟python环境的目录,可更为程序同名目录,每个程序都单独要建立;详见:"calibreweb安装";
python3 -m venv /path/to/your/venv
例:python3 -m venv ~/software/calibreweb
# 激活虚拟环境
source /path/to/your/venv/bin/activate
例:source ~/software/calibreweb/bin/activate
# 退出虚拟环境,或者用su切换用户
deactivate
# 安装后的程序可以软连接到已有变量目录下,便于调用
"~/.loca/bin"
参考文档:使用 pipx · Python中文教程 | PIP软件包检索 | Pip设国内源加速 | ppi清华源 | PIP设国内源加速 | 编译器安装Python | 构建Python · 文档 | 源码安装 Python |
简介:Java 是一种跨平台的、面向对象的高级编程语言,可用于构建许多服务和应用程序,可运行于多个平台,如 Windows, Mac OS 及其他多种 UNIX 版本的系统。而 JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一些Java工具和Java的核心类库(Java API)。详见:OpenJDK · 官网。
安装主程序
更新本地可用的软件包列表
sudo apt update
安装 Java 软件包
# 安装java运行环境jre(只包含运行环境)
sudo apt install -y openjdk-17-jre
# 安装完整java运行环境JDK(含开发工具),二择一。
sudo apt install -y openjdk-17-jdk
检验安装
java -version
帮助文档:OpenJDK: Download and install |
简介:Go 语言(Golang)是由 Google 开发的一种开源编程语言,设计初衷是提高编程效率,尤其在高并发场景下表现出色。它以简洁、易学、高效并发的特性而逐渐成为开发者的首选,广泛应用于云计算、微服务和分布式系统的开发。详见:Hello, 中国! - The Go Programming Language。
二进制文件:go1.23.2.linux-386.tar.gz | All releases - Golang
apt包管理器安装Golang,一般不是最新。
# 更新本地可用的软件包列表
sudo apt update
# 安装Golang主程序
sudo apt install -y golang
# 检验安装
go version
手动安装二进制程序
安装必要工具
# 更新本地可用的软件包列表
sudo apt update
# 安装C语言工具
sudo apt-get install bison ed gawk gcc libc6-dev make
安装Golang主程序
# 进入用户目录
cd ~
# 下载官网最新386版本go语言程序
wget https://go.dev/dl/go1.23.2.linux-386.tar.gz
# 解压至/usr/local
sudo tar -xzf go1.23.2.linux-386.tar.gz -C /usr/local
为所有用户添加go语言环境变量
# 编辑"/etc/profile"
sudo nano /etc/profile
# 末尾添加go环境变量
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 加载环境变量
source /etc/profile
检验安装
go version
帮助文档:Debian10 安装Go环境 | Linux上的go语言安装与配置 | Go语言中文文档 (topgoer.com)
简介:Node.js 是跨平台、开源的 JavaScript 运行环境,它允许开发者在服务器中运行 JavaScript ,支持在Windows、Linux、macOS 等操作系统上运行。npm是Node.js默认的、用JavaScript编写的软件包管理系统,它允许开发者轻松地下载、安装、共享、管理项目的依赖库和工具。详见:Node.js · 官网。
程序包:Download · Node.js |
使用Debian 仓库安装
安装 Node.js 和npm
sudo apt install nodejs npm -y
验证安装的版本
nodejs --version && npm --version
设置国内镜像加速
设置命令
# 淘宝镜像
npm config set registry https://registry.npmmirror.com
检验安装镜像,运返结果与设置的URL相同则表示成功。
npm config get registry
帮助文档:使用手册 - Nodjs中文网 | Node.js v23 · 文档 | NPM 使用教程 · 菜鸟 | npm配置国内镜像源
简介:PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,尤其适用于Web开发。它最初由Rasmus Lerdorf于1994年创建,旨在简化网页开发过程。PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,尤其适用于Web开发。它最初由Rasmus Lerdorf于1994年创建,旨在简化网页开发过程。详见:PHP: 官网。
安装必要软件包
# 更新本地可用的软件包列表
sudo apt update
# 安装组件
sudo apt install -y software-properties-common ca-certificates lsb-release apt-transport-https
配置PHP仓库、密钥
# PHP 软件源的地址添加到 debian 系统的软件源列表中
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
# 添加软件源的 GPG 密钥
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
# 更新本地可用的软件包列表。
sudo apt update
安装PHP主程序及其扩展
安装改动相应版本号即可。
# OMV默认环境已具备LNP(Linux+Nginx+PHP8.2);
# 除默认8.2之外,推荐安装PHP8.0,7.4,7.2,5.6;
# PHP8.2,omv已默认安装,安装除"php8.2-fpm"之外的扩展即可。
sudo apt install -y php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-mcrypt php8.2-xml php8.2-xmlrpc php8.2-zip php8.2-opcache php8.2-redis php8.2-sqlite3 php8.2-mysql php8.2-gd php8.2-curl php8.2-imagick php8.2-bz2 php8.2-memcached php8.2-intl php8.2-ldap php8.2-mysqlnd
# PHP7.2 (含php-fpm)
sudo apt install -y php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-mcrypt php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-opcache php7.2-redis php7.2-sqlite3 php7.2-mysql php7.2-gd php7.2-curl php7.2-imagick php7.2-bz2 php7.2-memcached php7.2-intl php7.2-ldap php7.2-mysqlnd
使配置生效
# 重启nginx(安装和卸载后都要重启)
sudo systemctl restart nginx
Tip
使用不同版本的php-fpm,只需要在程序对应的nginx配置中修改版本号即可;
例如:
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_pass unix:/run/php/php5.6-fpm.sock;
卸载PHP环境:方式二选一
使用apt包管理卸载
# 列出已安装的相关的全部程序
sudo apt list "php7.2*" --installed
# 卸载与之相关的软件包及配置、依赖关系
sudo apt remove --purge "php7.2*" -y
# 自动删除那些已经升级并且不再需要的旧软件包版本
sudo apt-get autoremove
# 删除下载的软件包存档和缓存的配置文件,但不会删除软件包本身
sudo apt-get clean
# 卸载后重启nginx
sudo systemctl restart nginx
使用dpkg命令卸载
# 列出相关的全部程序,"ii"已安装,"rc"重装候选,表明丢失或损坏,或配置文件没有被清理;
sudo dpkg -l |grep "php7.2-*"
# 卸载与之相关的软件包、配置文件以及依赖关系
sudo dpkg -l | grep 'php7.2' | awk '{print $2}' | xargs sudo dpkg --purge
# 卸载后重启nginx
sudo systemctl restart nginx
Note
Composer是PHP的软件包管理系统,它提供用于管理PHP软件和依赖库关系的标准格式,它在单个项目的基础上进行管理,会在单个项目的某个目录进行安装。只需要在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。详见:Composer · Download。
Debian 仓库安装
安装 Composer
sudo apt install -y composer
验证安装版本
composer --version
帮助文档:Composer · 使用手册 |
Note
OPcache 一款闭源但可以免费使用的 PHP 优化加速组件,将PHP代码预编译生成的脚本文件 Opcode 缓存在共享内存中供以后反复使用,从而避免了从磁盘读取代码再次编译的时间消耗。它在 PHP 5.5.0 及以上版本中已经成为 PHP 核心的一部分,主要作用是提高 PHP 应用的性能。
在基于 Debian 或 Ubuntu 的 Linux 系统中,10-opcache.ini
是 PHP OPcache 扩展的配置文件;php.ini
:是 PHP 的主配置文件,设置可以覆盖 10-opcache.ini
中的设置。通常更新 10-opcache.ini
而不是 php.ini
,以避免破坏用户自定义的配置。OMV 7默认已开启了。
安装与检验安装
反馈显示"with Zend OPcache v8.x.xx"则表明已安装;OMV 7默认安装。
# 检验安装
php --version
# 若未安装,使用以下命令安装
sudo apt install -y php-opcache
配置Opcache
编辑10-opcache.ini,添加代码块中的缓存设置内容
sudo nano /etc/php/8.2/fpm/conf.d/10-opcache.ini
# 在 Web 服务器上启用 OPcache,默认1 开启;禁用 0。
opcache.enable=1
# 在命令行界面(CLI)模式下启用OPcache,默认 0 即cli模式下禁用。
opcache.enable_cli=1
# 用于存储预编译脚本代码的共享内存大小,单位是MB
opcache.memory_consumption=128
# 用于存储内部化字符串的内存大小,单位是MB;内部化字符串是PHP中重复使用的字符串,比如变量名。
opcache.interned_strings_buffer=8
# 能够存储的最多脚本文件数量。如果应用程序有很多文件,可增加值。过高可能会导致性能下降,查找预编译文件会更慢。
opcache.max_accelerated_files=4000
# 检查脚本时间戳的时间间隔,单位是秒。
opcache.revalidate_freq=60
# 保留文件中的注释,1开启/0禁用;
opcache.save_comments=1
# 加速 PHP 的关闭过程,1开启/0禁用;
opcache.fast_shutdown=1
使配置生效
sudo systemctl restart php8.2-fpm
sudo service nginx restart
Note
在PHP的配置文件目录中,通常会看到"cli/"和"fpm/"这两个子目录,CLI模式是PHP在命令行界面下运行时的配置,通常用于脚本、cron作业或手动执行PHP代码。PHP FPM是一个PHP进程管理器,用于处理来自Web服务器的请求,通常与Nginx或Apache配合使用。
PHP配置
编辑 " php.ini " ,根据使用版本进行调整具体路径,以7.2为例。
sudo nano /etc/php/7.2/fpm/php.ini
# 通过POST方法可以上传的最大数据量,对于处理大文件上传非常有用。
post_max_size = 1024M;
# 限制通过PHP上传的文件的最大大小,同样设置为1024MB(1GB)。这个值应该小于或等于post_max_size。
upload_max_filesize = 1024M;
# 设置PHP脚本可以使用的最大内存量。增加值可以让PHP脚本处理更大的数据集,但设置得太高容易耗尽服务器内存。
memory_limit = 1024M;
# 设置脚本的最大执行时间,这里是3600秒(1小时)。如果脚本执行时间超过这个限制,PHP会终止脚本执行。
max_execution_time = 3600;
# 限制脚本接收数据(例如POST和GET)的最大时间,同样设置为3600秒(1小时)。
max_input_time = 3600;
# 这个设置是用于PHP以CGI模式运行时的一个修复。值为1时,如果请求的文件不存在,PHP会尝试修正路径信息。这可能会带来安全风险,因为它允许攻击者通过URL路径猜测服务器上的文件名。
cgi.fix_pathinfo=1
PHP-FPM 配置:
编辑 " www.conf " ,根据使用版本进行调整具体路径。
nano /etc/php/7.2/fpm/pool.d/www.conf
# 设置运行PHP-FPM进程的用户。
user = www-data
# 设置运行PHP-FPM进程的用户组。
group = www-data
# 设置PHP-FPM监听的套接字文件路径。
listen = /var/run/php-fpm.sock
# 设置套接字文件的拥有者。设置为nginx,意味着只有nginx用户可以访问这个套接字文件。
listen.owner = www-data
# 设置套接字文件的所属组。同样设置为www-data.
listen.group = www-data
# 设置最大子进程数,PHP-FPM可以创建的最大进程数。
pm.max_children = 50
# 设置启动时创建的子进程数。
pm.start_servers = 20
# 设置最小空闲子进程数,如果空闲子进程数低于这个值,PHP-FPM会创建新的子进程。
pm.min_spare_servers = 10
# 设置最大空闲子进程数,如果空闲子进程数超过这个值,多余的子进程会被杀死。
pm.max_spare_servers = 35
参考文档:Debian 12 上安装 PHP 5.6, 7.4 | Debian 下PHP 多版本共存 | php高并发之opcache详解 | 如何使用Opcache | pypi 清华源 | pip 加速 |
简介:一个开源、轻量级的SQL数据库,适合嵌入式设备和低流量网站。SQLite 3 直接在设备上运行,自主运行,无需外部服务器,在 Debian 上安装后即可使用,无需额外配置。
使用Debian仓库安装
更新本地可用的软件包列表
sudo apt update
sudo apt upgrade -y
安装 sqlite3
sudo apt install -y sqlite3 libsqlite3-dev
验证安装版本
sqlite3 --version
参考文档:
在 Debian 上安装 SQLite 3 | 在 Debian 12 上安装并设置 SQLite | SQLite 安装 | 菜鸟教程
简介:MySQL是一个小型的开源的关系型数据库管理系统,MySQL有两个不同的版本,其中MySQL Community Server(社区版)是完全免费,但是官方不提供技术支持。用户可以自由下载使用。mysql8.0以上的版本官方不支持32为电脑,最近的一个32为版本为"Linux-Generic(glibc2.28)(x86,32-bit)",需要手动安装配置。
程序包:官方-二进制包下载页 | 官方-存储库
帮助文档:Linux(CentOS7)安装MySQL8全过程 | linux安装32位mysql
简介:MariaDB 是 MySQL 的一个分支,两者有不兼容的功能,大多数情况下都可以互换使用,因为它们具有相同的 SQL 语法和功能。由于MariaDB的代码库更加现代化,因此它的性能通常比MySQL更好。个人建议使用MySQL,相较于MariaDB,它的安装更简单。
安装 MariaDB
sudo apt update
sudo apt install -y mariadb-server
配置MariaDB
初始化设置
sudo mysql_secure_installation
创建root用户/密码,以下为输出内容:
Enter current password for root (enter for none):
输入当前root用户的密码(如果没有则输入): 输入当前密码,初次安装没有密码,直接回车
Switch to unix_socket authentication [Y/n]
询问是否使用'unix_socket'进行身份验证:n
Change the root password? [Y/n] Y
是否修改root密码?[Y / n] Y
New password:
新密码:
Re-enter new password:
重新输入新密码:
Remove anonymous users? [Y/n] Y
删除匿名用户?[Y / n] Y
Disallow root login remotely? [Y/n] Y
禁止root用户远程登录?[Y / n] Y
Remove test database and access to it? [Y/n] Y
删除测试数据库并访问它?[Y / n] Y
Reload privilege tables now? [Y/n] Y
现在重新加载特权表吗?[Y / n] Y
其他数据库操作命令:
# 版本查询:
mariadb --version 或 mysql --version
# 登录 MariaDB 控制台:
mysql -u root -p,然后输入您设置的密码。
# 退出 MariaDB 控制台:
exit 或者 \q
参考文档:在 Debian 12 上安装 MySQL | linux系统在线安装、配置MariaDB
简介:Memcached 是一个免费开源的、高性能的、具有分布式内存对象的缓存系统,分为服务器端和客户端两部分,它通过在自身内存中缓存关系型数据库(如 MySQL)的查询结果,减少数据库被访问的次数,以提高动态 Web 应用的速度,提高网站架构的并发能力和可扩展性。详见:memcached · 主页。
程序包:memcached-1.6.32.tar.gz | memcached · Download |
包管理器安装
主程序及组件
sudo apt update
sudo apt install -y memcached libmemcached-tools libmemcached-dev libevent-dev libevent-2.1-7
启动服务
sudo systemctl start memcached
sudo systemctl enable memcached
组件的信息
memcached 服务器的主程序包
- 作用:Memcached 是一个高性能的分布式内存对象缓存系统,用于通过在内存中缓存频繁访问的数据来减少数据库等慢速存储的访问时间,从而提高应用程序的响应速度和性能。
libmemcached:Memcached 的客户端库。
- 作用:它提供了一套丰富的 API,使得从各种编程语言访问 Memcached 服务更加容易。这个库支持多种 Memcached 协议,并提供了一些高级功能,如多线程操作、一致性哈希和连接池。
libevent:一个事件通知库。
- 作用:它提供了在多种情况下执行回调函数的功能。Memcached 使用 libevent 来处理网络连接,这使得 Memcached 能够高效地处理大量并发连接。支持多种 I/O 多路复用机制,如 epoll、kqueue 和 select。
libevent-devel:
- 作用:这个软件包包含了开发基于 libevent 的应用程序所需的头文件和库文件。如果你需要编译或开发与 libevent 交互的软件,那么这个包是必需的。
libmemcached-tools:
- 作用:这个软件包包含了一组用于管理和监控 Memcached 实例的工具。这些工具可以用来检查 Memcached 的状态、统计信息、清除缓存中的数据等。
帮助文档:一文详解 Memcached | 对比Memcached和Redis,谁适合你 | Memcached 对比 Redis | Memcached · Doc | 适用Memcached的场景 |
简介:Redis 是一个持久保存在磁盘上的内存数据库。数据模型是键值对,但支持许多不同类型的值:字符串、列表、集合、排序集、哈希、流、HyperLogLogs、位图。在Python、Web开发中常用于缓存、会话管理、分布式锁、排行榜、消息队列和实时分析。详看:Redis · 官网。
安装
sudo apt update
sudo apt install -y redis-server
redis配置文件 "redis.conf"
sudo nano /etc/redis/redis.conf
# 需要远程连接,可注释此地址。
bind 127.0.0.1 -::1
(略)
查询监听端口
默认:6379
redis-cli info | grep 'tcp_port'
查询redis服务器地址
默认:127.0.0.1:6379
sudo systemctl restart redis.service
sudo systemctl status redis.service
帮助文档:Redis · 官方文档 | Redis · Github | Redis 教程 | 菜鸟 | 安装和配置 Redis | Debian 安装 Redis