在Linux中,查看系统环境变量 PATH 有以下几种方法:

  • 使用echo命令:在终端中输入 echo $PATH ,可以直接输出当前 PATH 环境变量的值,显示系统搜索可执行文件的目录列表。
  • 使用env命令:输入 env 会列出所有的环境变量及其值。若只想查看 PATH 环境变量,可结合 grep 命令使用,即 env | grep PATH ,这将只显示包含 PATH 的环境变量条目。
  • 使用printenv命令: printenv 命令用于打印环境变量。查看 PATH 环境变量可使用 printenv PATH ,会输出 PATH 环境变量的当前值。
  • 使用which命令: which 命令用于显示某个命令的绝对路径,如 which python 会显示 python 命令在 PATH 环境变量中的路径,能帮助确定系统如何定位特定命令。
  • 使用type命令: type 命令可以显示一个命令是内置的shell命令、一个别名还是一个位于某个路径的可执行文件。例如 type ls ,如果 ls 是一个可执行文件, type 命令会显示它的路径,这也能间接了解到 PATH 中包含该命令的路径。
  • 查看路径中的所有目录:若想查看 PATH 环境变量中包含的所有目录,可使用 echo $PATH | tr ':' '\n' 命令,它会将 PATH 中的冒号(路径分隔符)替换为换行符,从而打印出每个目录。

在Linux系统上编译多个Python版本可按以下步骤进行:

安装依赖

  • 对于Ubuntu系统,执行 sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget 命令安装编译所需的依赖库。
  • 对于CentOS系统,执行 sudo yum install gcc zlib - devel bzip2 - devel openssl - devel ncurses - devel sqlite - devel readline - devel tk - devel gdbm - devel db4 - devel libpcap - devel xz - devel 命令安装相关依赖。

下载Python源码

  • 访问Python官方网站,选择要编译的多个Python版本的源码并下载。

编译安装

  • 以Python 3.7.12和Python 3.11.4为例,先解压Python 3.7.12的源码包,进入解压后的目录,执行 ./configure --prefix=/usr/local/python37 命令进行配置,指定安装路径。接着执行 make && make install 命令进行编译和安装。
  • 同样地,解压Python 3.11.4的源码包,进入目录后执行 ./configure --prefix=/usr/local/python311 命令配置,然后执行 make && make install 完成编译安装。

环境配置

  • 为了方便使用不同版本的Python,可在 ~/.bashrc 或 ~/.zshrc 文件中添加以下内容:

bash

export PATH=/usr/local/python37/bin:$PATH
alias python37=/usr/local/python37/bin/python3.7
export PATH=/usr/local/python311/bin:$PATH
alias python311=/usr/local/python311/bin/python3.11
 

  • 保存文件后,执行 source ~/.bashrc 或 source ~/.zshrc 使配置生效。

这样就可以在Linux系统上成功编译并使用多个Python版本了,通过 python37 和 python311 等命令来分别调用不同的版本。

自己安装编译python不同的版本

有价值文章:https://blog.csdn.net/h0300/article/details/126702035Linux下编译安装python

创建虚拟环境

生成一个Python虚拟环境

1mkdir -p $HOME/.env && python3 -m venv $HOME/.env/project_name

现在,您将看到一个.env在您的主目录中,并且在 .env 中,您将拥有项目目录。

每个虚拟环境项目目录中都会有自己的 Python 和 Pip 副本。

pip install --upgrade wheel

安装模块,如

$HOME/.env/project_name/bin/python -m pip install --upgrade pip
$HOME/.env/project_name/bin/python -m pip install --upgrade setuptools wheel
$HOME/.env/project_name/bin/python -m pip install playsound
$HOME/.env/project_name/bin/python -m pip install schedule

用新的虚拟环境执行py文件

1、source $HOME/.env/project_name/bin/activate
2、$HOME/.env/project_name/bin/python ./demo.py`

常见错误

when I request using "playsound" library for Python to play the audio file .mp3 it returns me the following error:

Code:

import playsound

playsound.playsound("test.mp3")
Error:

Traceback (most recent call last):
File "/home/enzoportela/PycharmProjects/SoftwareRover2018.2/SoftRover/I.A Rover(2018.2).py", line 25, in

playsound.playsound("test.mp3")

File "/home/enzoportela/anaconda3/envs/SoftwareRover2018.2/lib/python3.6 /site-packages/playsound.py", line 91, in _playsoundNix

import gi

ModuleNotFoundError: No module named 'gi' | |
| |
The most simple way is the vext approach.
pip install vext
pip install vext.gi
Reference: How do I install python3-gi within virtual | |

解决方案:https://www.yaolong.net/article/pip-externally-managed-environment/介绍比较全面

关于虚拟环境的使用参考:https://blog.51cto.com/u_16213456/7511357

参考文章:Armbian系列教程-搭建24h无人值守音乐台(https://xuan-ming.github.io/2020/06/03/Armbian教程二/

参考文章:把机顶盒(数码视讯Q5)打造成Upnp_Dlna播放器---进阶篇 [[复制链接]](http://www.erji.net/forum.php?mod=viewthread&tid=2320022)(http://www.erji.net/forum.php?mod=viewthread&tid=2320022

有价值文章:https://blog.51cto.com/u_16175461/6863758

有价值文章:https://www.cnblogs.com/doublexi/p/15783355.htmlpython多环境管理(venv与virtualenv)

在Linux系统上编译多个Python版本可按以下步骤进行:

安装依赖

  • 对于Ubuntu系统,执行 sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget 命令安装编译所需的依赖库。
  • 对于CentOS系统,执行 sudo yum install gcc zlib - devel bzip2 - devel openssl - devel ncurses - devel sqlite - devel readline - devel tk - devel gdbm - devel db4 - devel libpcap - devel xz - devel 命令安装相关依赖。

下载Python源码

  • 访问Python官方网站,选择要编译的多个Python版本的源码并下载。

编译安装

  • 以Python 3.7.12和Python 3.11.4为例,先解压Python 3.7.12的源码包,进入解压后的目录,执行 ./configure --prefix=/usr/local/python37 命令进行配置,指定安装路径。接着执行 make && make install 命令进行编译和安装。
  • 同样地,解压Python 3.11.4的源码包,进入目录后执行 ./configure --prefix=/usr/local/python311 命令配置,然后执行 make && make install 完成编译安装。

环境配置

  • 为了方便使用不同版本的Python,可在 ~/.bashrc 或 ~/.zshrc 文件中添加以下内容:

bash

export PATH=/usr/local/python37/bin:$PATH
alias python37=/usr/local/python37/bin/python3.7
export PATH=/usr/local/python311/bin:$PATH
alias python311=/usr/local/python311/bin/python3.11
 

  • 保存文件后,执行 source ~/.bashrc 或 source ~/.zshrc 使配置生效。

这样就可以在Linux系统上成功编译并使用多个Python版本了,通过 python37 和 python311 等命令来分别调用不同的版本。

1、安装nginx

输入apt-get -y install nginx回车

apt-get -y install nginx
然后就安装成功了

输入玩客云ip地址我这里是:10.0.0.109

2、安装php最新版的armbian包24.5默认安装的是php8.2

复制回车远行,然后等

apt install -y php php-fpm php-mysql php-gd php-curl php-mbstring php-xml php-xmlrpc php-json php-zip php-intl php-xsl

php -v查询版本号

3、安装Mariadb

apt install -y mariadb-server
mysql -v查询版本号

4.配置环境

4.1配置nginx

首先输入vim /etc/nginx/sites-enabled/default,打开nginx配置文件

vim /etc/nginx/sites-enabled/default
在44行前面添加index.php,56行57行和60行以及63行去除行头#号(注意这里的默认的php7.4要改为php8.2)注意这里如果用putty登录修改会出错,可能是编码的问题。

输入nginx -t

root@aml-s812:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
表示没有问题

重新启动nginx

service nginx restart
新建测试页面文件(后面记得删除)

echo "<?php phpinfo(); ?>">/var/www/html/info.php
浏览器打开ip/info.php

就可以看到php的相关信息了

4.2配置Mariadb
4.2.1安全设置
输入mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

  • In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank,so you should just press enter here.
    Enter current password for root (enter for none):
    注意:建议所有人都运行此脚本的所有部分服务器在生产中使用!请仔细阅读每一步!为了登录MariaDB以确保其安全,我们需要当前根用户的密码。如果你刚刚安装了MariaDB您尚未设置根密码,密码将为空,所以你应该在这里按回车键。输入root用户的当前密码(输入无):我们刚刚安装,没有密码直接回车
  • Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.You already have a root password set, so you can safely answer 'n'.Change the root password? [Y/n]
    设置root密码可以确保任何人都无法登录MariaDB未经适当授权的root用户。您已经设置了根密码,因此可以安全地回答“n”。
    更改根密码?[是/否]
    输入y设置一个简单而且你记得住密码 我这里是P@ssW0
  • By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.Remove anonymous users? [Y/n]
    默认情况下,MariaDB安装有匿名用户,允许任何人登录MariaDB而无需为其创建用户帐户他们这仅用于测试和安装再平稳一点。你应该在搬进公寓前把它们取下来生产环境。
    删除匿名用户?[是/否]
    y 删除就完了
  • Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n]
    通常,root用户只能从“localhost”连接。这确保有人无法从网络中猜到根密码。
    不允许根用户远程登录?[是/否]
    n方便修改
  • By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.Remove test database and access to it? [Y/n]
    默认情况下,MariaDB附带一个名为“test”的数据库,任何人都可以使用通道这也仅用于测试,应移除在进入生产环境之前。
    删除测试数据库并访问它?[是/否]
    n没有用直接删除
  • Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
    Reload privilege tables now? [Y/n]
    重新加载特权表将确保迄今为止所做的所有更改将立即生效。
    现在重新加载特权表吗?[是/否]
    y

4.2.2 账户设置

  • 直接输入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所有数据库的所有权限

文链接:h[ttps://blog.csdn.net/weixin_32848231/article/details/113902462](https://blog.csdn.net/weixin_32848231/article/details/113902462)

ALTER USER 'root'@'%' IDENTIFIED BY '6166b2002fdcb5df';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssW0rd';
update user set plugin = 'mysql_native_password' where user = 'root';

flush privileges;

5、自动挂载u盘,把typecho安装到u盘

修改/etc/rc.local添加挂载u盘命令,给该文件执行权限。

6、nginx修改web目录到u盘目录

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

修改server块为:

root /mnt/sda/web/typecho;

挂在u盘时需要更改U盘的系统文件格式为ext4,否则不支持修改权限

重新加载Nginx配置以使更改生效,通常使用以下命令:sudo nginx -s reload

或者重启Nginx服务:sudo systemctl reload nginx

或者在不同的系统中:sudo service nginx reload

7、安装typecho

8、安装过程出错,问题解决:

8.1、安装程序时无法连接数据库

在把程序放到目录下,进行安装的时候,将数据库的密码输入正确后,无法进行安装

这个时候处理方式就是手动创建一个typecho的数据库即可解决

8.2、无法登录后台

Nginx服务器点击前台链接或者后台登录时出现404, not found

官方给的解决方式是一般的出现这种情况时,nginx.conf里的location设置都是类似这样

location ~ .*\.php$

要支持pathinfo,要改成

location ~ .*\.php(\/.*)*$

一个比较好的typecho博客网址:https://yangwenqing.com/