
前言
写之前,谈一谈本人的心路历程吧。最近这段时间,由于备考压力略大,我在闲暇之余总是想偷偷做点什么东西玩玩。而在之前的博客也提到,我弄到了一台服务器的普通账号,这台服务器呢带宽够足、GPU性能强劲、
内存也算不错,总之比云主机强一万倍。因此呢,我走上了一条不归路,把我的休息时间大部分折腾在了这台服务器上。但是呢,这段时间也算是摸索出了很多Linux的知识吧,马克思诚不我欺也,实践是检验整理的唯一标准。
2020.09.16Update
SakuraFrp目前需要实名认证才能开启http且需要端口80(即须是root用户),且每个账户有流量限制了一个月好像25G。以后有公网服务器再来更新
目的
在最初折腾之前呢,主要目的是视频服务器+离线下载,但后来衍生出了一些新需求,在折腾的路上停不下来,主要目的有以下几点:
- 私人云盘s
- 离线下载服务器
- 建副站
- 视频服务器
1.环境配置
首先呢,当你拿到一台服务器的时候你需要知道它是什么架构的?它的各方面性能怎么样?能使用工具有哪些?
1.1了解系统信息
你可以采用如下几种方式:
- uname命令
1 | XXXXX@ubuntu:~$ uname -a |
- lsb_release命令
1 | XXXXX@ubuntu:~$ lsb_release -a |
- 查看/proc/version文件
1 | XXXXX@ubuntu:~$ cat /proc/version |
- 查看/etc/os-release文件
1 | XXXXX@ubuntu:~$ cat /etc/os-release |
通过以上,你可以知道服务器的基本信息。
1.2了解硬件性能
这里仅介绍些基本的信息
- 内存
1 | XXXXX@ubuntu:~$ free -h |
- CPU
1 | XXXXX@ubuntu:~$ lscpu |
如果想要更加详细信息,可以查看
1 | cat /proc/cpuinfo |
- GPU
1 | XXXXX@ubuntu:~$ nvidia-smi |
- 硬盘
1 | XXXXX@ubuntu:~$ df -h |
1.3了解环境信息
这阶段,我主要是了解一些节本的工具信息,比如gcc版本、有没有数据库、docker之类的。结果大失所望,管理员啥也没装,就给了个gcc
1 | gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) |
不得不说,我的内心是崩溃,这台机器估计就是专门拿来跑深度学习的,基本上除了linux自带的什么都没有,关键是我并联系不上管理员,所以这就开启了我的悲催之路,我的所有依赖都是手动编译安装的=^=,我多么希望我是个Geeker,把root的密码给黑了,哎。。。
先写到这里,回头再补充!
2.安装Aria2
3.安装Nginx+PHP
3.1 Nginx
3.1.1 编译
1 | ./configure --with-http_ssl_module --prefix=/home/tongshun/byp/app/nginx_new --with-pcre=/home/tongshun/byp/download/pcre/pcre-8.00 --with-openssl=/home/tongshun/byp/devel/openssl --with-zlib=/home/tongshun/byp/download/zlib-1.12.1 |
3.1.2 防坑指南
编译nginx需要pcre(正则表达式支持)、zlib、openssl三个库支持,你需要提前安装opensssl
最好提前把ssl模块编译上去
1
2
3
4
- **nginx配置openssl路径**
在这个过程中你可能会遇到[$prefix /.openssl/include/openssl/ssl.h] Error 127
1
2
3
4
5
6
这是由于我们的openssl安装目录之后下并没有./openssl
所以你需要:
- 在nginx源码目录中,找到```./auto/lib/openssl/conf找到这么一段代码:
1
2
3
4
5CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"替换为:
1
2
3
4
5CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
–with-pcre –with-zlib
这个后面接的是源码的位置,而不是你编译后安装的位置!
如果你使用了安装后的位置,你会出现
./configure is not found,因为nginx会去寻找源码,而你编译安装后的目录是没有configure的
1
--with-pcre=/home/tongshun/byp/download/pcre-8.00
源码的位置需重新下载,不能使用编译过的
1
wget XXXXXXXX
否则你会出现make一半,会列出configure list summary,然后无故结束。
这个地方坑了我一晚上!
3.1.3 配置文件
配置https
3.2 PHP
3.2.1编译安装
1 | ./configure --prefix=/home/tongshun/byp/app/php-7.4.8 --enable-fpm --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --enable-xml --enable-mbstring --enable-curl --with-libxml-dir --with-pdo-sqlite --with-png-dir --with-jpeg-dir --enable-gd --enable-libxml --enable-sqlite3 --enable-opcache --enable-zip --enable-json --enable-pcre --enable-mhash --enable-fileinfo --with-gettext --enable-postix --enable-ctype --enable-filter --enable-date --enable-dom --enable-Reflection --enable-standard --enable-SimpleXML --enable-Phar --enable-session --enable-SPL --enable-tokenizer --enable-PDO --enable-Core --with-openssl --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-ftp --enable-opcache |
以上是我总结之后的安装,静态库编译。
3.2.2注意事项
通过pkg-config配置编译环境
e.g.
1
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/home/tongshun/byp/devel/sqlite3/lib/pkgconfig"
请通过以上格式写入环境变量中。
enable 与 with的区别
重要的扩展库
扩展 释义 –enable-fpm 这个是php-fpm的由来,请你务必勾选此选项 -enable-mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd 此为mysql的扩展,如果你的php以后需要连接mysql,请务必勾选此项,因为php7的版本无法之后通过phpize编译扩展 –enable-curl –with-zlib
3.2.3 编译动态扩展
如果你已经编译安装完成了,之后需要使用到某扩展,请通过以下形式安装动态扩展
进入php资源目录下(源码目录)
进入
./ext/$你想要安装的扩展使用phpize命令
1
2#如果你没有添加环境变量,请使用绝对路径,例如
/home/tongshun/byp/app/php-7.4.8/bin/phpizeconfigure
1
2#请使用绝对路径指定php-config目录
./configure --with-php-config=/home/tongshun/byp/app/php-7.4.8/bin/php-configmake && make install
编辑php.ini
1
2# Add extension,e.g.
extension = zlib.so重启php
4.私人云盘
私人云盘致力于打造专属于你自己的云上空间,是一种很实用的工具,它可以让你独享你自己的资源,再也不用担心被限速、被和谐等等情况。目前呢,较为常用的有NextCloud、OwnCloud、Seafile、可道云等。由于我没有root权限、也没有docker,所以很多依赖库都得源码安装,因此选择了可道云来部署。
(等上岸了再来补充吧。。。。)
5.Sqlite+wordpress
安装wordpress
安装sqlite-integration
1
2
3
4
5wget https://downloads.wordpress.org/plugin/sqlite-integration.1.8.1.zip
unzip sqlite-integration.1.8.1.zip
mv sqlite-integration ./wp-content/plugins/修改wp-config.php
1
2
3mv wp-config-sample.php wp-config.php
vim wp-config.php原文件:
1
2
3
4
5
6
7
8
9
10
11
12
13// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'database_name_here');
/** MySQL数据库用户名 */
define('DB_USER', 'username_here');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'password_here');
/** MySQL主机 */
define('DB_HOST', 'localhost');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');修改后:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'MyBlog');//MyBlog<====这是数据库名,可以自定义
/** MySQL数据库用户名 */
define('DB_USER', '');
/** MySQL数据库密码 */
define('DB_PASSWORD', '');
/** MySQL主机 */
define('DB_HOST', 'localhost');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');
//define('WP_ALLOW_REPAIR', true);//数据库修复时使用
define('DB_TYPE', 'sqlite'); //mysql or sqlite`移动db.php至根目录
1
mv ./wp-content/plugins/sqlite-integration/db.php ./wp-content/
6.jupyter notebook
偶然发现这个东西挺有意思的,不仅是个web ide,而且还可以执行shell命令。强大!



