官网查看最新版本连接:https://nodejs.org/dist/v12.2.0/node-v12.2.0-linux-x64.tar.xz
https://nodejs.org/dist/v12.2.0/node-v12.2.0-linux-x64.tar.xz
tar xf node-v10.11.0-linux-x64.tar.xz // 解压
cd node-v10.11.0-linux-x64/ // 进入解压目录
ln -s /xxx/node-vxxx-linux-x64/bin/node /usr/local/bin/ln -s /xxx/node-vxxx-linux-x64/bin/npm /usr/local/bin/ 【软连接需要绝对路径】
注: 如果出现npm已经存在,node 已经存在
root@ubuntu:~$ sudo rm -rf /usr/local/bin/node
root@ubuntu:~$ sudo rm -rf /usr/local/bin/npm
完成之后:
root@ubuntu:~$ node -v v12.11.0 root@ubuntu:~$ npm -v 6.4.1
全自动安装网址 https://oneinstack.com/auto/
例:LNMP => Linux+nginx+mysql + php (如下图)
版本可以随意得选择,一键安装,超级方便(感谢 OneinStack 出了这么好一个部署脚本)
选择完后复制命令执行即可,重启后生效。
在http{ server{ location {#代码处} }}里写代码
location / {
if ( !-e $request_filename ) {
rewrite ^/(.*)/index.php?s=/index.php?s=1 last;
break;
}
}
server {
listen 192.168.x.xx:80;
server_name xxx.com;
rewrite ^(.*)$ https://$host$1 permanent; //添加词句
}
1:第一种
sudo rm /var/lib/mysql/ -R
删除mysql的数据文件
sudo rm /etc/mysql/ -R
删除mqsql的配置文件
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
自动卸载mysql的程序
2:第二种
首先删除mysql:
sudo apt-get remove mysql-* [它会跳出一个对话框,你选择yes就好了 ]
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
4:第三种
a. sudo apt-get autoremove --purge mysql-server-5.0
b. sudo apt-get remove mysql-server
c. sudo apt-get autoremove mysql-server
d. sudo apt-get remove mysql-common (非常重要)
上面的其实有一些是多余的,建议还是按照顺序执行一遍
2. 清理残留数据dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
在Unbuntu中重启Apache服务器出现错误:AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1.等等。解决方法:
$ sudo vim /etc/apache2/apache2.conf
最后加入一句: ServerName localhost:80
1.sudo apt-get install mysql-server-5.6
2.测试是否安装成功
ps aux |grep mysql
mysql -u root -p (进入数据库)
3:关联PHP
apt-get install php5-mysql
1:编写Shell 脚本 test.sh
2: 将脚本权限 chmod -R 777 test.sh 并移至到/etc/init.rc 下
3:
设置脚本启动
sudo update-rc.d ptt.sh defaults 95.
卸载启动脚本
sudo update-rc.d -f test remove
注:
脚本规则 :
#! /bin/bash
### BEGIN INIT INFO
# Provides: land.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the svnd.sh daemon
# Description: starts svnd.sh using start-stop-daemon
### END INIT INFO
.(做一些脚本工作)
问题描述:在Ubuntu执行更新sudo apt-get upgrade或者利用sudo apt-get install安装软件包时遇到:Errors were encountered while processing,查看错误信息发现:2 not fully installed or removed,如下:
root@iZt4n7en5ngj5l9s7w90klZ:~# apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages have been kept back: linux-generic-lts-xenial linux-headers-generic-lts-xenial linux-image-generic-lts-xenial 0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded. 2 not fully installed or removed. After this operation, 0 B of additional disk space will be used. Do you want to continue? [Y/n] y Setting up php5-mysql (5.5.9+dfsg-1ubuntu4.29) ... dpkg: error processing package php5-mysql (--configure): subprocess installed post-installation script returned error exit status 10 Setting up grub-pc (2.02~beta2-9ubuntu1.17) ... dpkg: error processing package grub-pc (--configure): subprocess installed post-installation script returned error exit status 10 Processing triggers for libapache2-mod-php5 (5.5.9+dfsg-1ubuntu4.29) ... Errors were encountered while processing: php5-mysql grub-pc E: Sub-process /usr/bin/dpkg returned an error code (1) root@iZt4n7en5ngj5l9s7w90klZ:~# cd /var/lib/dpkg
解决方法:
cd /var/lib/dpkg
sudo mv info info.bak
sudo mkdir info
sudo apt-get upgrade
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
出错的话,就可以弹出具体的错误位置!
一、卸载删除 mysql
1 sudo apt-get autoremove --purge mysql-server-5.0
2 sudo apt-get remove mysql-server
3 sudo apt-get autoremove mysql-server
4 sudo apt-get remove mysql-common (非常重要)
清理残留数据:
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
sudo find /etc -name "*mysql*" |xargs rm -rf
最后用 dpkg -l | grep mysql 检查,如无返回即干净卸载
二、卸载删除apache
sudo apt-get --purge remove apache-common
sudo apt-get --purge remove apache
找到没有删除掉的配置文件,一并删除
sudo find /etc -name "*apache*" |xargs rm -rf
sudo rm -rf /var/www
sudo rm -rf /etc/libapache2-mod-jk
sudo rm -rf /etc/init.d/apache2
sudo rm -rf /etc/apache2
删除关联,
dpkg -l |grep apache2|awk '{print $2}'|xargs dpkg -P
删除svn
sudo apt-get remove subversion
sudo apt-get remove libapache2-svn
最后用 dpkg -l | grep apache 和 dpkg -l | grep apache2检查,如无返回即干净卸载
三、卸载删除php
sudo apt-get –purge remove libapache2-mod-php5 php5 php5-gd php5-mysql
sudo apt-get autoremove php5
删除关联,
sudo find /etc -name "*php*" |xargs rm -rf
清楚残留信息
dpkg -l |grep ^rc|awk ’{print $2}’ |sudo xargs dpkg -P
最后用 dpkg -l | grep php 和dpkg -l | grep php5 检查,如无返回即干净卸载
脚本删除Mysql:
#!/bin/bash list=`sudo find / -name mysql*` for i in $list do sudo rm -rf $i done exit 0
- 给这个脚本加上执行权限后执行
sudo chmod u+x deleteMysql.sh
sudo ./deleteMysql.sh
sudo apt update -y
sudo apt install -y nodejs nodejs-legacy npm
sudo npm config set registry https://registry.npm.taobao.org
sudo npm install n -g sudo n stable
n是一个Node工具包,它提供了几个升级命令参数:
n 显示已安装的Node版本 n latest 安装最新版本Node n stable 安装最新稳定版Node n lts 安装最新长期维护版(lts)Node n
根据提供的版本号安装Node 安装后,切换版本:
sudo n 方向键选择已安装的 node 版本,然后回车确认 node -v 检查当期版本
如果切换后,node的版本居然没有发生变化,解决方案如下:
export NODE_HOME=/usr/local export PATH=$NODE_HOME/bin:$PATH export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
Ubuntu 下安装
在 Ubuntu 系统安装 Redis 可以使用以下命令:
$sudo apt-get update $sudo apt-get install redis-server
启动 Redis
$ redis-server
查看 redis 是否启动?
$ redis-cli
以上命令将打开以下终端:
redis 127.0.0.1:6379>
127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。
redis 127.0.0.1:6379> ping PONG
以上说明我们已经成功安装了redis。
redis启动和停止和后台运行
启动:
redis-server & 后台启动使用默认配置
redis-server 直接启动
redis-server 配置路径 如redis-server /etc/redis.conf 不是后台启动 这时候要后台启动的话就需要配置redis.conf中的
daemonize on
改为yes
停止
redis-cli -a 密码 -h 127.0.0.1 -p 6379 shutdown
没有密码
redis-cli -h 127.0.0.1 -p 6379 shutdown
应该自带,如果不自带,不追求版本可以
apt-get install gcc
或者
apt-get install build-essential
用于更新所有已安装的库
apt-get upgrade apt-get dist-upgrade //更新到发布的最新版本
操作步骤
安装两个依赖库
这两个依赖库安装完后,可以使用
add-apt-repository
命令了apt-get install python-software-properties apt-get install software-properties-common
更新
apt-get
的库源add-apt-repository ppa:ubuntu-toolchain-r/test apt-get update
然后就可以通过
apt-get install
安装gcc最新的版本了安装gcc
apt-get install gcc-8 apt-get install g++-8//这是安装g++的,可以考虑一起安装上,万一用的着呢
检查是否安装成功
可以用
locate
命令来定位一下是否存在了gcc-8
和g++-8
定位之前需要刷新一下, 否则locate等命令是找不到的updatedb && ldconfig locate gcc | grep -E "/usr/bin/gcc-[0-9]" locate g++ | grep -E "/usr/bin/g\+\+-[0-9]"
如果正确安装了,下面就会出现一个系统原来的和一个新安装的版本,图中安装的版本是
gcc-6
和g++-6
(图非笔者所截图,来自于网上,用于说明)
然而我们正常使用的gcc/g++其实都是/usr/bin/gcc和/usr/bin/g++, 他们指向了/usr/bin下真正版本的gcc/g++程序
所以我们接下来需要连接建立连接
方法有两种
- 通过
ln
建立连接- 通过
update-alternatives
建立连接ln 方法
cd /usr/bin sudo rm gcc sudo ln -s gcc-6 gcc sudo rm g++ sudo ln -s g++-6 g++
sudo可以按需要添加或者去掉
update-alternatives 方法
如果安装了同一个软件的不同版本,可以使用update-alternatives命令设置默认使用哪个版本,典型的如在Ubuntu里安装了gcc-4.8和gcc-8, 想让gcc命令自动使用gcc-8版
首先要让系统知道我们安装了多个版本的gcc
命令最后的 20和50是优先级,如果使用auto选择模式,系统将默认使用优先级高的
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 50 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 50
自此我们的系统就默认选择了优先级最高的gcc版本, 具体选择依配置而定, 可以使用update-alternatives --config修改配置
查询系统中安装有哪些版本
sudo update-alternatives --query gcc
使用交互方式的命令选择默认使用的版本
sudo update-alternatives --config gcc
1、查看当前cmake的版本:cmake --version
2、下载cmake安装包
wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz
3、执行
cd cmake-3.9.2
./configure
sudo make && make install
4、查看版本号,验证
cmake --version
- 直接安装
- yum install centos-release-scl-rh
- yum --enablerepo=centos-sclo-rh-testing install devtoolset-6-gcc devtoolset-6-gcc-c++
- source /opt/rh/devtoolset-6/enable
- 源码编译
如果直接下载gcc6.3.0进行安装升级的话,会报错
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
接下来我们需要以此安装gmp,mpfr,mpc,这三个组件的顺序不能乱,因为后面的依次依赖前面
1、安装相关依赖
- yum install "gmp-devel.x86_64"
- yum install gcc-c++
- yum install m4
2、安装gmp
- wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
- xz -d gmp-6.1.2.tar.xz
- tar xvf gmp-6.1.2.tar
- cd gmp-6.1.2
- ./configure --prefix=/usr/local/gmp
- make && make install
3、安装MPFR
- wget https://www.mpfr.org/mpfr-current/mpfr-4.0.2.tar.gz
- tar -zxvf mpfr-4.0.2.tar.gz
- cd mpfr-4.0.2
在目录文件 src/mul.c 该行代码下面
#define MPFR_VERSION_STRING "4.0.2"
添加代码
#define mpfr_add_one_ulp(x,r) \ (mpfr_sgn (x) > 0 ? mpfr_nextabove (x) : mpfr_nextbelow (x)) #define mpfr_sub_one_ulp(x,r) \ (mpfr_sgn (x) > 0 ? mpfr_nextbelow (x) : mpfr_nextabove (x))
然后执行
- ./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
- make && make install
4、安装mpc
- wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
- tar -zxvf mpc-1.0.3.tar.gz
- cd mpc-1.0.3
- ./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
- make && make install
如果报错:mul.c:175:1: error: conflicting types for ‘mpfr_fmma’
则将 mpc/src/mul.c中的 mpfr_fmma函数改名为mpfr_fmma_mul,一共三处
4、安装GCC
- wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz
- tar -zxvf gcc-6.3.0.tar.gz
- cd gcc-6.3.0
- ./configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc
- make && make install
【
如果几分钟后出现报错:
cannot compute suffix of object files: cannot compile
解决方法如下:
vi /etc/profile
添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib
source /etc/profile
重新编译安装即可
】
5、建立软链接
- [root@centos]# ln -sf /usr/local/gcc/bin/gcc /usr/bin/gcc
- [root@centos]# ln -sf /usr/local/gcc/bin/c++ /usr/bin/c++
- [root@centos]# ln -sf /usr/local/gcc/bin/g++ /usr/bin/g++
- [root@centos]# ln -sf /usr/local/gcc/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6
1、chattr解决权限问题,对.user.ini进行解锁
chattr -i /www/wwwroot/test/.user.ini2.使用ftp或rm进行删除
总结,为了解决跨站安全问题,现在lnmp 宝塔linux面板 wdcp都对使用了chattr命令对.user.ini进行加锁,所以我们需要解锁。