系统版本

lsb_release -a
image.png

一些基本需要配置的软件

sudo apt-get install axel // 多线程下载(对标wget)

sudo apt-get install lnav //多功能显示logs

sudo apt-get install unrar //解压用

一些基本的东西:
GCC、C&C++编译器:很奇怪的是Ubuntu并没有默认安装这些东西
代码:

sudo apt-get install gcc libc7-dev
sudo apt-get install build-essential

网页服务器配置

Apache2

sudo apt install apache2

WSGI

https://tecadmin.net/install-apache-with-python-mod-wsgi-on-ubuntu-20-04/

以上为py2.7版本的命令,配置信息可从apache2 error.log查看。

非建议:
要换成wsgi py3.8,运行以下命令:
apt install libapache2-mod-wsgi-py3(该命令直接替换wsgi 2.7版本)

以后如果再升级就调所有的网站,(或者精通python后)

PIP2

由于python3代码对许多原网站不兼容,因此采用用python2安装

ubuntu 20.04不支持python2,添加universe库
https://blog.csdn.net/cnmilan/article/details/36870819 (下载了git-python.py,然而报错如下)

  1. ERROR: This script does not work on Python 2.7 The minimum supported Python version is 3.6. Please use https://bootstrap.pypa.io/pip/2.7/get-pip.py instead.

解决以上问题方法和代码:
https://www.wyr.me/post/678

  1. sudo apt install wget python python3 python3-pip python-ply python3-ply -y
  2. wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
  3. python get-pip.py

Flask python 插件

pip2 install flask
pip2 install flask_restful
PyMongo
flask_pymongo

Mongodb

apt install mongodb

状态

由于重装没有删数据,留下了mogodb原始文件。
折腾了一天安装mongodb,一波三折。

历程

第一步、安装ubuntu20.04自带 mongodb(3.6.8)

一个config文件没调好,删了又删。

第二步、安装mongodb 3.4 (解压包)

报错缺乏libssl1.0.0.so,这个又是ubuntu版本过高不支持低版本libssl问题。

第三步、安装最新版本mongodb 4.4

https://www.cnblogs.com/bubbleboom/p/14167409.html

这个版本花了大量的时间调整,最后发现以下问题:
1、mongodb在/tmp/下存在sock文件,就会报错无法启动,必须先删除。
2、无法读取重装前的db文件,是因为mongodb老版本的内核 4.2之后就不支持了。
Cannot start server with an unknown storage engine: mmapv1 (老内核)

第四步、于是重复第一步,安装到了3.6.8 版本。

之间发现/etc/mongodbconfig文件安装后回不来了,于是按照以下途径完全删掉。

https://blog.csdn.net/weixin_44273564/article/details/103584758

首先删除依赖
sudo apt-get —purge remove nginx;

随后删掉文件
sudo apt-get autoremove;

然后查阅安装包的状态
dpkg —get-selections XXX

发现了mongodb-server还没删除(deinstall状态)
sudo apt-get —purge remove mongodb-server

重装mongodb,问题解决。

与数据库接轨第二个问题是权限问题。
把所有db库换成mongodb用户,问题完美解决。

重装后添加用户密码

config配置

SNP2APA上传文件功能缺失

被/tmp/systemd-private-XXX 保存下来了。(目的:避免被攻击,如Symlink attacks and DoS vulnerabilities)

https://serverfault.com/questions/912094/apache2-saves-files-on-tmp-in-a-system-private-hash-instead-of-just-saving

此外,根据python调用ls,发现用户主路径在根目录下。
这个问题感觉是软件编译问题,急的话就先开放根目录。

php7.4

安装:基本基于php7.4的包。

报错:Thinkphp5有误。
The requested URL was not found on this server

解决方法:
开启apache2 Mod_rewrite 模块.

a2enmod rewrite
https://blog.csdn.net/margin_0px/article/details/82801045

apche2-site在相应目录下把NONE改成ALL
image.png

mysql

也是一波三折,出现了各种报错。最后参考了该介绍弄好:
重点,在迁移目录时需要重新配置一下apparmor这个包。

https://zhuanlan.zhihu.com/p/141802334

mysql的小问题:
1、root更改用户操作权限的时候会报错,实际上是phpadmin和mysql版本不兼容,导致myadmin上的一些命令没有更新。这个问题不大,但操作,会导致原来user的设置全部清空。
2、存在一个mysql用户debian-sys-maint,是用于版本更新,备份等操作的,不宜去除权限。

安全狗

防火墙配置

简单思路:开启ssh端口、80端口、IP回路.
https://www.cnblogs.com/iceman-/p/7828021.html

网站报错

1. 无法生成R图(已解决)

thinkphp R报错路径:
在thinkphp 目录eQTL_for_database.Rout下。

2. 无法打开Pancan-meQTL heatmap页面

初步估计是php7.0-7.4代码升级问题。

https://stackoverflow.com/questions/53020833/count-parameter-must-be-an-array-or-an-object-that-implements-countable-in-lar/53020917

3. SNP2APA软件不可用

调整代码,重新编译。
思路:Temp.file写在指定目录。

更改所有用户密码

mongo更改密码步骤

use db
db.changeUserPassword(“test”,”123”)

更改web框架两个文件:
core.py
settings.py