2020-03-05 CentOS 7 常用软件安装汇总

10529586-d84bafd49e34e52e.gif
image.gif

基本指令

cd abc -> 进入子目录
cd/ -> 进入根目录
ll -> 显示当前路径文件(详细)
ls -> 同上(简略)
cp -> 拷贝
mkdir -> 创建目录
rm -> 删除文件或文件夹
mv -> 移动文件或改名
clear -> 清屏
pwd -> 显示当前路径
more -> 显示文本文档
uname -a -> 查看当前核心版本号
vim -> 文本编辑器
fdisk -> 硬盘分区
mkfs -> 格式化
chmod -> 改变文件权限
free -> 查看剩余内存
grep -> 按条件高亮显示文本
man -> 显示命令的help文档
df -h -> 查看磁盘剩余空间
du -sh dir -> 查看文件夹名"dir"占用的空间
lsof -i:8080 -> 查看8080端口是否被占用
find . -name "filename.txt" -> 搜索当前目录下filename.txt文件,包括各级子目录
10529586-48f227109a66cfc0.gif
image.gif

几个有用的命令:

tail -n 20 filename (显示filename最后20行)
chmod -R 777 dir (将dir整体变为777)
rm -rf dir (整体删除dir)
cp -r -a ./* /dir (将当前路径下所有文件包括子目录全部拷贝到dir)
tar -xvzf filename (解压缩gz文件)
gzip -d filename (解压缩gz文件)
unzip -x filename (解压缩zip文件)
rpm -ivh (安装一个包)
rpm -Uvh (升级一个包)
rpm -e (卸载一个包)
10529586-fbb88a0bb44d2acf.gif
image.gif

分区 & 格式化
1. 先看看有几个物理硬盘:

fdisk -l

2. 选择一个物理硬盘来分区

fdisk /dev/vdb1 (我这儿交vdb1)

3. 进去后和DOS差不多,使用的是快捷命令:
p : 查看当前分区
d:删除当前分区
n:创建一个新的分区
w: 存盘退出(所有改动生效)
q: 不存盘、退出(所有改动不生效,安全)
这个跟老DOS很相像,一个一个子分区先删除干净之后才能建立新分区
格式化:
mkfs.ext4 /dev/vdb1
等待命令执行完成
4. 挂载新硬盘到操作系统的某个节点上
mkdir /mnt/sdd
mount /mnt/sdd /dev/vdb1

5. 大功告成后,可用 df 指令再查看查看


安装Aapache:
1. yum install httpd.x86_64 (安装)
2. systemctl start httpd.service (启动)
3. systemctl enable httpd.service (自启)

然后到浏览器那边测试一下:http://服务器ip
会出现一个Testing 1.2.3的测试页。
Apache的主页默认路径: /var/www/html/
Apache的主设置文件路径:/etc/httpd/conf/httpd.conf

安装PHP:
1. yum groupinstall 'PHP Support' -y (安装)

  1. systemctl restart httpd.service (重启一下Apache即可)

安装mysql支持(其实是mariadb):

yum install mariadb-server mariadb -y
systemctl start mariadb
systemctl enable mariadb
10529586-0eb20ff1d166fb1a.gif
image.gif

(在这个帖子的5楼,我还会说到一个完整安装官方版MySQL的帖子)

MySQL初始密码问题
忘记root密码,root权限被意外剥夺,看不到mysql表这种情况:
1. systemctl stop mariadb.service (先关服务)
2. /usr/bin/mysqld_safe --skip-grant-tables & (进入安全模式)
3. mysql -uroot (不需要密码,直接进人)
4. show databases;可以看到mysql表了
5. use mysql;
6. update user set password=password('yournewpasswordhere') where user='root';
7. flush privileges;


VSFTP 安装:
首先看看服务器装了vsftp没: rpm -qa|grep vsftpd
我的建议是管它装没装,先卸载了再说:yum remove vsftpd
然后:

yum install vsftpd (先装)

改: etc/vsftpd/vsftpd.conf
这两行:
anon_upload_enable=YES (允许匿名用户上传)
anon_mkdir_write_enable=YES (允许匿名用户建目录)
然后这样还是不行的,还需要把vsftp的主上传目录改为777,
否则会报553 Could not create file错误。
chmod -R 777 /var/ftp
然后回到命令行这边:
systemctl start vsftpd.service (开始服务)
systemctl enable vsftpd.service (自启)
【特别注意事项】
然后腾讯云安全组那边,要建立一个相应入站放行规则,出站无需设置,否则无法连接。****这个只针对与腾讯VPS而言,其他主机应该有相对应的防火墙策略,一般来说大同小异。

本地用户登陆,首先配置文件如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES

然后添加一个新的客户: cent
useradd cent -s /sbin/nologin
passwd cent
mkdir /var/ftp/pub
chown -R cent /var/ftp/pub
chmod -R 755 /var/ftp/pub
配置文件里没有设置chroot_local_user (即将用户约束在各自的home文件夹)

ps: 这样设置的权限很大,用户可以浏览并修改整个服务器文件。

BTW:另外还有一款名为Bitvise SSH Client的远程访问软件,本身的作用和putty之类差不多,但它功能极其强大,自带SFTP,如果你本无意架设一个真正的FTP站点,而仅仅是为了方便自己上传下载文件的话,选择这款免费软件就足够了,无需任何设置,登录即用!


全新安装官方版MySQL:
自从MySQL被Oracle吃掉后,它与开源界关系就不太好了,
于是新发布的CentOS都没有内置MySQL,而是用MariaDB取而代之,
后者据说是MySQL原班人马维护的,号称兼容性啥的都跟以前一样,话虽这么说,可区别还是有的(下文会谈到),
以下为全新安装Oracle官方原版MySQL的方法:
1:为yum指令添加源
先搞清楚到底要下载哪个源,用指令:uname -a
看看服务器版本号,我这边显示的是el7
然后去这个网址:
http://dev.mysql.com/downloads/repo/yum/
下载一个:mysql57-community-release-el7-11.noarch.rpm (对应之前的el7)
注意:如果是Centos 6,需要下载针对el6内核使用的rpm
然后用鼠标右键点击下载链接,复制绝对地址,直接用wget指令下载
(如果实在找不到绝对地址,也可以先用浏览器下载到本地再FTP到服务器也一样):

  1. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

然后执行以下指令:
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
这个动作很快,就几秒钟的事儿。

2. 安装MySQL
有了源之后,就可以用这个指令安装了:
yum install mysql-community-server
注意这个过程非常漫长,要有耐心。

装完之后会有一个小结,如果原机装有Mariadb或者旧版MySQL的话,可以看到
Replaced:
mysql-libs.i686 0:5.1.73-8.el6_8
会被新装这个MySQL替换(Replaced)掉。

ps:
如果是CentOS 6,用以下指令启动:
/etc/init.d/mysqld start
自启动:

vim /etc/rc.local

/etc/init.d/mysqld start (把上面那行启动命令加进去即可)存盘退出。

3. 启动服务
装完后,用以下指令开启MySQL服务:
systemctl start mysqld.service
systemctl enable mysqld.service (自启动)
systemctl status mysqld.service (查看状态)
这一步也是有可能出问题的,如果之前旧的Maroadb或MySQL在/var/lib/ 下面有mysql目录(这是mysql主数据目录,所有的数据库、表之类都存放于此),则会报错:
initialize specified but the data directory has files in it. Aborting.
好在这个问题不难解决,删除这个数据目录:

rm -rf /var/lib/mysql

删除之后,不能再去手动建立,只要执行mysql,程序会自动创建。

4. 初始化设置
在上面的安装过程中,产生了一个临时密码,在/var/log/mysqld.log文件里,
第一步是让它高亮出来:
grep 'temporary password' /var/log/mysqld.log
记下这个密码。

用刚才那个临时密码登陆:
mysql -uroot -p

进去之后用这个指令改变初始密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

如果显示: Your password does not satisfy the current policy requirements

这不是大问题,只是说明密码强度不够,再想一个复杂一点的密码即可。

5. 设置远程访问
现在整个儿MySQL基本就已经装好了,但是仅限于本地使用(对于BS结构的程序来说够了)
如果还需要用Navicat等工具远程登陆,或者一些CS结构的软件,还需要做下一步:
mysql -uroot -p (首先进入mysql服务器,用刚才设置的新密码)
mysql>use mysql;
mysql>update user set host = '%' where user = 'root'; (将root帐号的host改为%也就是说任意客户端皆可访问)
mysql>FLUSH PRIVILEGES; (全局刷新一下就OK了,现在再试试Navicat应该就能连通了)

6. 其他注意事项
尽管说MariaDB号称和MySQL是兼容的,可有一些场合还是不太对劲。
在MySQL下,可以通过直接拷贝Data文件夹的方式进行备份,
即在A电脑上把Data文件夹复制下来,然后覆盖拷贝到同样装了MySQL的B电脑上,
执行一次mysql_upgrade -u root -p,最后重启MySQL即可。
但是,如果B电脑是装的MaraiaDB,像这样直接把Data文件夹复制过去的方法则不行,无法启动。

7. 忘记了root密码怎么办:
首先要进入安全模式
systemctl stop mysqld.service (先关mysql服务)
vi /etc/my.cnf (修改mysql配置文件)
加入一行:
skip-grant-tables
依次按下ESC : w q ! (依次按下这5个建,记住不是同时按下哦,再按回车,表示存盘退出)
systemctl start mysqld.service (启动mysql)
mysql -uroot -p (不需要密码直接进入)
use mysql;
update mysql.user set authentication_string = PASSWORD('123456') where User='root';
FLUSH PRIVILEGES;
quit;
从mysql命令行模式出来之后,
systemctl stop mysqld.service (先关闭mysql)
vi /etc/my.cnf
去掉skip-grant-tables这一行,或者在前面加个#号注释掉 (不能一直让mysql工作在安全模式里面啊,root都不需要密码的,尺度太大了)
改完之后,像前面一样,依次按下 ESC : w q ! 这5个键,存盘退出。
systemctl start mysqld.service (再重启mysql即可)


NodeJS

1. 安装nodejs和cnpm (cnpm源自淘宝,比原版npm快得多)

yum install -y nodejs.x86_64
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install forever -g (用cnpm装一个forever)
10529586-e5c11382df6af75b.gif
image.gif

2. 开机自动运行默认网站的方法:

首先要搞清楚forever的路径:

whereis forever
forever: /usr/bin/forever (这就是forever的实际路径)
10529586-9518ffea1d67c74b.gif
image.gif

3. 创建一个service服务文件:

nano /usr/lib/systemd/system/myweb.service
10529586-904c190e9da92701.gif
image.gif

输入以下内容:

[Unit]
Description=myweb
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/forever start /root/myweb/bin/www
ExecReload=/usr/bin/forever stopall && /usr/bin/forever start /root/myweb/bin/www
ExecStop=/usr/bin/forever stopall
PrivateTmp=true

[Install]
WantedBy=multi-user.target
10529586-2d3b1b1cbd622a53.gif
image.gif

存盘退出。

systemctl daemon-reload
systemctl start myweb
systemctl enable myweb (开机自动运行)
10529586-f86f094f0ab7de0d.gif
image.gif

Java JDK环境安装

1. 访问: http://www.oracle.com/technetwor ... nloads-2133151.html
(下载相对应的rpm包,CentOS 7下载jdk-8u151-linux-x64.rpm,ps:只能用浏览器下载了再上传到服务器,直接wget不行)
2. mkdir /usr/java (java安装在/usr/java里)
3. cd /usr/java
4. 上传rpm包到/usr/java
5. rpm -ivh jdk-8u151-linux-x64.rpm
6. 输入java -version,如果不报错,而是弹出java版本号,说明安装成功!


GNOME环境安装 + VNC服务器安装

Step 1 . 首先以 root 账户登录,创建两个VNC帐号并设置密码

useradd -c "User Joe Configured for VNC Access" joevnc
passwd joevnc
useradd -c "User Jane Configured for VNC Access" janevnc
passwd janevnc
10529586-e3080e5012f50268.gif
image.gif

PS:本例中配置了两个VNC用户joevnc和janevnc,笔者的目的是为了阐明VNC的端口配置文件与不同账户之间的关系而已,而不是必须设置两个账号,如果只需要一个用户,则创建一个账号即可。

Step 2 . 安装 GNOME 桌面

yum groupinstall -y "GNOME Desktop"
reboot
10529586-d07b4389dd1e7605.gif
image.gif

Step 3 . 安装 TigerVNC Server

yum install -y tigervnc-server
10529586-4e890dbc5d4d5e59.gif
image.gif

Step 4 — 设置 VNC Service 的两个客户端
也就是刚才设置的joevnc和janevnc,将vncserver的默认设置文件拷贝为两个独立的设置文件,编号为4和5:

cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:4.service
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:5.service
10529586-57a85375977f4ffe.gif
image.gif

用vi编辑器修改4号配置文件,也就是用户joevnc的设置文件:

vi /etc/systemd/system/vncserver@:4.service
10529586-d2350bb68ee40b76.gif
image.gif

找到两处<USER>,将他们改为joevnc:
[Service]
Type=forking

Clean any existing files in /tmp/.X11-unix environment

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l joevnc -c "/usr/bin/vncserver %i"
PIDFile=/home/joevnc/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

依葫芦画瓢,把janevnc的配置文件也改一遍,这里不再赘述。

Step 4 . 设置 VNC 密码
注销当前root用户:

exit
10529586-a49bb4641cecd876.gif
image.gif

然后重新打开一个命令行终端连接,以****joevnc****身份登录,输入:

vncserver
10529586-1f80117e84dd4ba7.gif
image.gif

设置一个访问密码,记住这是vnc的访问密码,跟joevnc本身的系统密码不是一回事。
设好之后,输入exit,注销****joevnc****,重新以****root****账户登录。

(以上两个用户的切换登录别弄错了,这是关键)

重新以root账户登录之后,输入以下命令重启守护进程:

systemctl daemon-reload
10529586-86a8cf8e2db181ea.gif
image.gif

开启4号VNC(也就是用户joevnc的配置文件)服务:

systemctl start vncserver@:4.service
10529586-07235d80633c7e82.gif
image.gif

让4号VNC服务开机自启动:

systemctl enable vncserver@:4.service
10529586-4869d7f9b0166cfd.gif
image.gif

然后把5号VNC服务(janevnc)也同样操作一遍,在此不再赘述。

Step 5 . 设置防火墙
开启防火墙:

systemctl start firewalld
10529586-245392502256ee6d.gif
image.gif

开放5904和5905这两个端口:

firewall-cmd --permanent --zone=public --add-port=5904-5905/tcp
10529586-e7eaa9601ff3bb9c.gif
image.gif

(你可能会问,为啥是这两个端口?因为TigerVNC自身使用5900端口,而每一个VNC用户又都拥有自己的独立端口号,规定以 “5900+VNC用户编号” 为原则,刚才配置文件编号是4和5,那么这两个独立进程的端口就是5900+4和5900+5,当然编号随你自己设置,不一定非要4和5,反正记住规则是 “5900+编号” 就行了)

刷新防火墙设置

firewall-cmd --reload
10529586-cae7096fa29ca9a4.gif
image.gif

如果总是报错,可以用systemctl stop firewalld 和 systemctl disable firewalld 干脆把防火墙先关再说。

Step 6 . 使用VNC客户端软件
下载地址:http://www.onlinedown.net/soft/251613.htm
安装很简单,一直下一步即可,打开主界面也没什么可设置的,直接在地址框输入:

你的服务器IP:5904,如127.0.0.1:5904

输入完毕后点 Connect 即可。

端口5904对应的是joevnc
端口5905对应janevnc

另外,如果你登陆桌面的时候,即使输入了正确的密码还是报错:sorry.that didn't work.please try again
那就先回到命令行,输入:

passwd 用户名
10529586-64f108720166efdf.gif
image.gif

重新输入一次密码,更新之后桌面那边就可以使用了。

参考文章:

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-remote-access-for-the-gnome-desktop-on-centos-7


Chrome:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
10529586-a8de88075dcd4c62.gif
image.gif

然后用rpm安装:

rpm -ivh google-chrome-stable_current_x86_64.rpm
10529586-4c7f88552009062a.gif
image.gif

基本上会报一堆错误,例如:

warning: google-chrome-stable_current_x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEY
error: Failed dependencies:
    /usr/bin/lsb_release is needed by google-chrome-stable-74.0.3729.131-1.x86_64
    libXss.so.1()(64bit) is needed by google-chrome-stable-74.0.3729.131-1.x86_64
    libappindicator3.so.1()(64bit) is needed by google-chrome-stable-74.0.3729.131-1.x86_64
    liberation-fonts is needed by google-chrome-stable-74.0.3729.131-1.x86_64
10529586-5089e791eca93b34.gif
image.gif

不要着急,报错是正常的流程之一,现在用repoquery命令一个一个分析,比如:

repoquery --nvr --whatprovides  libappindicator3.so.1
10529586-4e317a4aaa3d065c.gif
image.gif

系统显示:

libappindicator-gtk3-12.10.0-13.el7
10529586-0a9338c884afe318.gif
image.gif

发现少了这个包,那么我们直接用yum去安装:

yum install libappindicator-gtk3-12.10.0-13.el7 -y
10529586-4f6e735c7385bc09.gif
image.gif

其他依葫芦画瓢都这么一个一个用yum安装即可,唯一需要注意的是,/usr/bin/lsb_release 这个包是这样安装的:

yum install *lsb* -y
10529586-fbcc6acc3b5949ca.gif
image.gif

对于我的系统而言,我需要安装以下包:

yum install libXScrnSaver-1.2.2-6.1.el7 -y
yum install libappindicator-gtk3-12.10.0-13.el7 -y
yum install liberation-fonts-1.07.2-16.el7 -y
yum install *lsb* -y
10529586-4809899082e006ee.gif
image.gif

装完之后,再输入一遍:

rpm -ivh google-chrome-stable_current_x86_64.rpm
10529586-b212492977f20bbb.gif
image.gif

这回终于不报错了,安装成功。

回到桌面,发现桌面的Internet分类里已经有了Chrome的图标了。
如果无法启动,说明你现在使用的是root账户,因为chrome默认是不能给root用户运行的。
打开文件管理器,找到 /usr/share/applications/路径下的Chrome图标,右键属性,然后把Command改成:

/usr/bin/google-chrome-stable %U --no-sandbox 
10529586-4ef1c3f9e82e5ea0.gif
image.gif

或者直接在桌面的Terminal里面用命令行启动:

/usr/bin/google-chrome-stable --no-sandbox
10529586-12fc89ab66981041.gif
image.gif

CentOS 7 开机自动启动脚本的方法

1. 在 /usr/lib/systemd/system 下面创建一个文件,这个文件名即是我们要设置的服务,例如现在想自定义一个服务rockage:

nano /usr/lib/systemd/system/rockage.service
10529586-0682f0721a3d5bc9.gif
image.gif

2.在此文件中输入服务设置代码:

[Unit]
Description=rockage
After=network.target

[Service]
Type=forking
ExecStart=启动命令或脚本
ExecReload=重新启动的命令或脚本
ExecStop=停止运行的命令或脚本
PrivateTmp=true

[Install]
WantedBy=multi-user.target
10529586-84aa7f19beee8749.gif
image.gif

ExecStart,ExecReload,ExecStop 这三个选项分别对应启动、重启、停止,如果命令够简单的话,直接输入就行了,一个命令不够,中间还可以用&&连接。如果命令行实在太复杂或者还需要做逻辑判断等,那就需要用运行脚本了。
比如这样:

ExecStart=/root/myweb/start.sh
ExecReload=/root/myweb/restart.sh
ExecStop=/root/myweb/stop.sh
10529586-aaf767711d4e599b.gif
image.gif

注意,作为服务脚本而言,第一行必须是 #! 开头的,这不是注释,而是标明这个脚本是由哪个shell来执行,不可或缺,否则会报错。例如我们经常见到的:#!/bin/bash,这里给出一个sh脚本的例子:

#!/bin/bash
forever start ./bin/www
10529586-495c7ca0a77e2c10.gif
image.gif

(此脚本自动运行node.js的forever,作用是将nodejs制成的网站置于后台运行)

不管用哪种方法,反正最终能用syetemctl控制启动、停止、重启就可以了:

systemctl start rockage (启动)
systemctl stop rockage (停止)
systemctl restart rockage (重启)
10529586-249026b2b353ee56.gif
image.gif

正确无误,不报错,启停正常后,可以将这个服务写入开机启动项:

systemctl enable rockage
10529586-be31c51ea57fdf73.gif
image.gif

或者取消开机启动:

systemctl disable rockage
10529586-daf3e367d8303397.gif
image.gif

查看服务状态:

systemctl status rockage
10529586-03a1bd06d7021408.gif
image.gif

查看所有已启动的服务

systemctl list-units --type=service
10529586-205f737880982324.gif
image.gif

一个不太常见的坑:

如果系统总是报告这个错误:

[/usr/lib/systemd/system/rockage.service:5] Missing '='.

多半是由于文件没有以utf8保存导致。

这种情况下,随便在/usr/lib/systemd/system/目录下找个“模板”, cp 复制成你的文件,再编辑就好


NextCloud 私有云

参考我的博文:

  1. https://blog.csdn.net/rockage/article/details/79441346 (安装nginx+php)

  2. https://blog.csdn.net/rockage/article/details/99216552 (安装Nextcloud)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rockage

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值