0.环境总览
Ubuntu 20.04 64位

1.基础设施
apache(2.4.41)mysql(8.0.21)php(7.4.3)phpmyadmin
2.语言环境
nodejsjava
3.开发环境
giteaJenkins
4.应用框架
dockerneo4jhasura
4.应用软件
scratchwordpress
5.服务开通
ssl虚拟主机二级域名
6.守护进程
pm2

常用命令

命令 --help                    #帮助
clear                         #清屏

crontab -e                    #计划任务

sudo service apache2 restart  #重启apache2
lsof -i tcp:80                #查看端口进程
netstat -ntpl                 #查看本机所有端口进程
curl 127.0.0.1:3000           #发起访问
history                       #查看最近使用的命令行历史记录
top                           #系统状况
pwd                           #当前目录
dmidecode                     #硬件信息
df -h                         #磁盘信息
ls -l                         #文件显示权限
ls *.sh                       #显示以.sh为后缀的内容

which app                     #显示默认执行的程序
whereis 文件名                 #模糊搜索
find / -name 文件名            #精确搜索,较慢
grep -r abc *                 #递归搜索所有子目录下的文本,关键字abc

mkdir abc                     #创建abc目录
touch a.a                     #创建a.a文件
cp file1 file2                #复制文件
mv file1 file2                #移动文件
rm a.txt                      #删除a.txt文件
rm -r a                       #删除a目录
cat 文件名                     #查看文件内容
head 文件名                    #显示文件前10行
tail 文件名                    #显示文件后10行

chmod 775 file                #修改文件权限
chmod -R 600 folder           #递归修改目录权限

vim a.text                    #使用vim编辑文本
i                             #选择写入模式
esc键->:wq                    #保存并退出

docker ps                     #列出容器

pm2 list                      #列表

npm root -g                   #全局node_modules目录的位置
npm list                      #查看所有已安装的npm软件包
npm list -g --depth=0         #获取全局顶层的软件包

1.ubantu查看版本

cat /etc/issue          #(简单)
cat /etc/lsb-release    #(具体)
uname -a                #(内核)

2.通用命令

sudo service --status-all    #查看所有服务
sudo systemctl status mysql  #查看某一项服务的信息

注意事项:网上复制命令时候注意中英文引号,sql命令后要有分号

3.安装apache

sudo apt-get update
sudo apt-get install apache2

3.安装mysql
说明:mysql8修改了验证方式,所以安装过程中不会有弹框输入密码,而且系统自动生成了密码路径为/etc/mysql/debian.cnf

sudo apt-get install mysql-server mysql-client

我们需要设置root的密码,并且启用密码登录模式

mysql                                                                 #无需输入账号密码直接连接到了mysql
showdatabases;                                                        #查看所有的数据库                  
use mysql;                                                            #选择user表
SELECT User, Host, plugin FROM mysql.user;                            #查看相关字段的内容
UPDATE user SET plugin="mysql_native_password" WHERE User="root";     #更改root的验证方式
alter user 'root'@'localhost' identified by '123456';                 #修改root的密码
FLUSH PRIVILEGES;                                                     #刷新权限表
sudo systemctl restart apache2                                        #重启服务器

参考连接:https://blog.csdn.net/qq_40342015/article/details/82796710

让apache支持mysql:

sudo apt-get install libaprutil1-dbd-mysql

其他相关命令:

mysql -u root -p    #登录
exit;               #退出mysql
status;             #查看版本

4.安装php

sudo apt install php libapache2-mod-php
php -v              #出现版本说明安装成功

重启 Apache,重新加载 PHP 模块

sudo systemctl restart apache2

让php支持mysql

sudo apt install php-mysql

验证php安装成功,创建一个新的文件名,命名为info.php,放在/var/www/html目录下,文件内容如下:

<?php
 phpinfo();

测试mysql连接是否正确

<?php
$servername = "localhost";
$username = "root";
$password = "123456";
 try {
    $conn = new PDO("mysql:host=$servername;", $username, $password);
    echo "连接成功"; 
}
catch(PDOException $e)
{
    echo $e->getMessage();
}
?>

5.安装phpmyadmin

sudo apt install phpmyadmin

此时访问host/phpmyadmin/无法打开。修复方法:
系统在安装软件时,默认将软件安装在了/usr/share/下,所以你的phpmyadmin在/usr/share下可以找到
必须建立一个软连接,使得第三步中显示的文件和/var/www/html下的某个文档链接起来
切换到想要访问的路径下,比如cd /var/www/html

sudo ln -s /usr/share/phpmyadmin phpmyadmin
sudo systemctl restart apache2                 #重启Apache2
rm -fr phpmyadmin                              #删除软链接

此时如果打开host/phpmyadmin发现也不能访问,而且安装phpmyadmin过程中并没有提示连接数据库,此时我们需要手动更改配置文件
phpmyadmin/libraries/config.default.php找的数据库部分填入即可

6.配置虚拟主机
apache 2 虚拟主机 配置(ubantu)

7.安装wordpress
起初准备安装最新版wordpress但是发现存在各种问题,比如无法打开登录页面,缩略图不显示等,所以决定代码整站复制,数据库也全部导入

相关配置修改
apache2 开启 rewrite

sql导入默认限制2M因此要修改
phpmyadmin导入svc文件的相关问题

PHP7不再兼容mysql系列函数,要使用mysqli系列函数,有两种解决方式,一种是安装mysql扩展,另一种是在代码层定义mysql_connect等函数,我们使用第二种,在相关文件头部添加如下代码

    $dbhost = 'localhost';
    $dbport = 3306;
    $dbuser = 'DATA_USERNAME';
    $dbpass = 'DATA_PASSWORD';
    $dbname = 'DATA_NAME';
    if(!function_exists('mysql_connect')){
        function mysql_connect($dbhost, $dbuser, $dbpass){
            global $dbport;
            global $dbname;
            global $mysqli;
            $mysqli = mysqli_connect("$dbhost:$dbport", $dbuser, $dbpass, $dbname);
            return $mysqli;
            }
        function mysql_select_db($dbname){
            global $mysqli;
            return mysqli_select_db($mysqli,$dbname);
            }
        function mysql_fetch_array($result){
            return mysqli_fetch_array($result);
            }
        function mysql_fetch_assoc($result){
            return mysqli_fetch_assoc($result);
            }
        function mysql_fetch_row($result){
            return mysqli_fetch_row($result);
            }
        function mysql_query($query){
            global $mysqli;
            return mysqli_query($mysqli,$query);
            }
        function mysql_escape_string($data){
            global $mysqli;
            return mysqli_real_escape_string($mysqli, $data);
            }
        function mysql_real_escape_string($data){
            return mysql_real_escape_string($data);
            }
        function mysql_close(){
            global $mysqli;
            return mysqli_close($mysqli);
            }
    }

其它一些有用的命令,虽然本次尝试后最终并没有使用
两台ecs之间复制文件

scp root@172.0.0.1:/var/www/willless.rar /var/www/test

8.安装nodejs

sudo apt update
sudo apt install nodejs npm
sudo npm config set registry https://registry.npm.taobao.org       
node -v                                                             #v10.19.0
npm -v                                                              #6.14.4

8.安装pm2

sudo npm install -g pm2

相关命令

pm2 start app.js          #start and daemonize any application
pm2 start api.js -i 4     #load balance 4 instances of api.js
pm2 monitor               #monitor in production
pm2 startup               #make pm2 auto-boot at server restart

8.安装docker

apt-get install docker.io
docker info                      #查看概要信息

安装docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose  
sudo chmod +x /usr/local/bin/docker-compose      #赋予执行权限
docker-compose --version                         #查看版本
systemctl start docker    #启动
systemctl stop docker     #关闭
systemctl restart docker  #重启
systemctl status docker   #状态
systemctl enable docker   #开机启动
docker --help             #帮助

此时发现服务器性能严重不够,此时我们需要开启虚拟内存
创建虚拟内存

free -m        #查看内存信息

9.安装gitea
ubantu下安装gitea

wget -O gitea https://dl.gitea.io/gitea/1.12.5/gitea-1.12.5-linux-amd64

配置文件路径:custom/conf/app.ini
起初安装1.4.0版本始终无法成功,换成1.12.5后直接安装成功,中途并没有输入数据库信息的页面,点击登录或者注册时候会跳到数据库配置页面,相比以前版本对密码强度做了限制
git仓库迁移
虽然各个平台自带一键迁移,但是速度实在太慢

10.安装scratch
10.19.0的Node版本安装报错后问题解决,上次在14的版本中安装一次成功
nodejs安装scratch

11.Jenkins安装
ubuntu20自带java8所以此处无需再安装
java -version输出openjdk version "1.8.0_272"
ubantu下安装Jenkins

12.hasura安装
链接

13.neo4j安装
ubantu安装neo4j
ubuntu20下到第四步都很顺利,neo4j start一切正常,没有java报错,访问host:7474发现却无法打开
第二天再此访问host:7474发现竟然可以打开了,估计是程序刚安装初始化较久的原因
登录后需要先使用默认账号密码登录neo4j:neo4j然后设置新的密码
注意:安全规则开启两个端口7474和7687

作者 铁血 汉子 2020年9月29日
2020/12/03/02:16:08pm 2020/9/29/3:07:48
0 192