本系列文章记录了升级Ubuntu 16.04的布署过程
10. 安装LAMP套件
系统内置的目前已足够新,直接使用即可
sudo tasksel install lamp-server
Ubuntu Linux: Start / Restart / Stop Apache Web Server
How to install mysql server 5.7 on Ubuntu 16.04 LTS ( Xenial Xerus )
apache2ctl,a2ensite,a2dissite,a2enconf,a2disconf,a2enmod,a2dismod
20. 安装Mono
当前版本16.04.1的系统源的Mono版本为4.2.1,如需使用最新版本(本文书写时稳定版本为4.6.2),则需添加Mono官方源地址
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list sudo apt update
安装Mono
sudo apt install mono-complete
安装Mod-Mono
sudo apt install libapache2-mod-mono
安装Xsp
sudo apt install mono-xsp4
增加/etc/mono/registry目录(应该是个bug,4.6.2版本)
sudo mkdir /etc/mono/registry sudo chmod uog+rw /etc/mono/registry
Access to the path “/etc/mono/registry” is denied
安装Mon-Mono_Server控制面板,配置文件如下
<Location /mono> SetHandler mono-ctrl Require all granted </Location>
将配置文件链接到Apache2的可用的配置文件库中
sudo ln -s /opt/mono-ctrl.conf /etc/apache2/conf-available/mono-ctrl.conf
启用此配置文件
sudo a2enconf mono-ctrl
重启Apache2服务
sudo systemctl restart apache2.service
30. 变更mysql数据库存放目录
在之前的操作中,我已将单独购置的数据盘挂载到了/opt目录下。
停止mysql服务
sudo systemctl stop mysql
数据库默认存放在/var/lib/mysql目录下,我将其同步到新的目录下
sudo cp -av /var/lib/mysql /opt/mysqldata
修改配置文件,将数据文件定位到新的目录中
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改datadir为新的目录
datadir = /opt/mysqldata
配置apparmor安全设置
sudo vim /etc/apparmor.d/tunables/alias
增加目录别名
alias /var/lib/mysql/ -> /opt/mysqldata/,
重启apparmor服务
sudo systemctl restart apparmor
将原目录重命名备份
sudo mv /var/lib/mysql /var/lib/mysql.bak
创建一个空目录满足脚本检查
sudo mkdir /var/lib/mysql/mysql -p
最后,重启服务即可
sudo systemctl start mysql
How To Move a MySQL Data Directory to a New Location on Ubuntu 16.04
40. 安装phpMyAdmin
sudo apt install phpmyadmin
在 Ubuntu Server 16.04 LTS 上安装 LAMP
50. 安装Git服务
sudo apt-get install git
增加专用账号
sudo useradd -m -d /home/git -s /usr/bin/git-shell git
创建公钥存放目录
sudo mkdir /home/git/.ssh
复制公钥
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAh7p0DjD7uF/CmF6/hAqZ65f45qq/bcylLsp8/aAHu870OevO01z3TmclhpLjWyVeS1pBVzpno04mTUoXUdMPafUQgFuwgmO1qf1mnVvOX66gVvGYVIaxCKLpV5Nla2ZSziQ2N7f4mZkNElggMXK2MZTSwcmCzIcmPkR1rzxsfvrKqBtEvmnKt3DvkTKdJEkEn5vuZgQlbChvVTJEz7fa4Ix19W4tO44ILr6ZNoQtiGKyVb1iS6SqnIE0Xi9DbCbQ5YCgfA15uQXVC/RxTKiZnkB8j1fdxVrDEi8nfsvnofZrr+zzYo0+RBU4V7TQYbTvk9zR/Qa5fky1nKzA7V1iRQ== ljzforever@outlook.com" | sudo tee /home/git/.ssh/authorized_keys
可以使用下面的命令创建一个空仓库
sudo git init --bare /opt/gitdata/framework.git sudo git init --bare /opt/gitdata/application.git
修改仓库权限
sudo chown -R git:git /opt/gitdata/framework.git/ sudo chown -R git:git /opt/gitdata/application.git/
Add a user wthout password but with SSH and public key
is there any significance to using tee
60. 安装Svn服务【已停止使用】
sudo apt install subversion
升级代码库【1.7版本后非必要】
sudo svnadmin upgrade /opt/svndata/studio
安装Apache2模块
sudo apt install libapache2-svn
将虚拟目录配置文件链接到Apache2的可用的配置文件库中
sudo ln -s /opt/svndata/studio/studio.conf /etc/apache2/conf-available/studio.conf
启用此配置文件
sudo a2enconf studio
重启Apache2服务
sudo systemctl restart apache2.service
70.安装Socket代理服务
16.04自带了1.1.19版本的dante-server,已知目前存在用户校验的bug。由于我不使用此特性,所以直接安装即可。有此需求的可以下载最新版本源代码自行编译
sudo apt install dante-server
打开配置文件
sudo vim /etc/danted.conf
修改【internal】【external】【method】【client pass】【pass】五处参数。是目前已知的最小配置量
internal: eth1 port = 8082 external: eth1 method: none client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 } pass { from: 0.0.0.0/0 to: 0.0.0.0/0 }
最后,启动服务即可
sudo systemctl start danted.service
How to setup a Socks5 Proxy server on Ubuntu with Dante
Setup dante 1.4.1 (sockd) dante-server on Ubuntu 16.04
Ubuntu下socks5代理服务器dante-server的安装与配置
80.安装frp内网穿透服务
下载最新版本的Frp【本文编写时为0.17.0版本】,并解压至目标目录
cd /tmp wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd64.tar.gz sudo tar -xzvf frp_0.17.0_linux_amd64.tar.gz -C /opt
打开服务端配置文件
cd /opt/frp_0.17.0_linux_amd64 sudo vim frps.ini
设置服务端参数,设置通信端口与服务端口
[common] bind_port = 7000 vhost_http_port = 8085
创建内网穿透服务
[Unit] Description=frp After=network.target [Service] Type=forking User=ljz ExecStart=/usr/bin/screen -d -m -fa -S frp /opt/frp_0.17.0_linux_amd64/frps -c /opt/frp_0.17.0_linux_amd64/frps.ini
[Install] WantedBy=default.target
复制到系统根目录下
sudo cp /opt/frp_0.17.0_linux_amd64/frp.service /etc/systemd/system
启动服务
sudo systemctl daemon-reload sudo systemctl enable frp.service sudo systemctl start frp.service
客户端设置,frp支持多种协议穿透,以http为例
[common] server_addr = 【服务端公网IP】 server_port = 7000 [web] type = http local_port = 80 custom_domains = 【服务端域名】