CentOS7 环境配置指南
一、免密登录
1)ifconfig
查看本机ip。
2)创建远程登录用户:
adduser username
创建用户passwd username
修改密码
3)给该用户设置管理员权限:(可选)
- 打开 /etc/sudoers 文件,添加
username ALL=(ALL) ALL
。
4)将公钥拷贝到服务器:
ssh-keygen
命令可生成密钥。如果本机已在其他服务器设置了免密登录,就不要重新生成(否则你其他服务器的公钥就失效了),直接使用ssh-copy-id
将原有公钥拷贝至需要免密登录的服务器即可。如
ssh-copy-id -i 公钥路径 username@remote-server
- 本机的公钥路径可通过
ssh-keygen
命令查看:
lucMacBook-Pro:~ binhua$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Path/.ssh/id_rsa):
第三行的括号部分就是密钥路径,此时 ctrl+C
退出即可。
ssh username@remote-server
测试免密登录,OJBK!
二、防火墙配置
1)关闭selinux。
- 修改 /etc/selinux/config 文件:
SELINUX=enforcing #把 enforcing 改为 disabled
2)配置firewalld。
- 检查 firewalld 运行状态,开启常用的服务的监听端口,如SSH、FTP。开启端口时加
--permanent
参数设置为永久生效。
三、调教Vim
1)vim编辑器的配置文件:
- Mac位于:~/.vimrc
- Centos7位于:/etc/vimrc
2)常用配置:
set nu
syntax on
set autoindent
set tabstop=2
set tags=/data/php/test_mysql/tags
set nohlsearch
set ruler
set history=1000
set showmatch
set cursorline
filetype plugin on
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
set incsearch "输入搜索内容时就显示搜索结果
set matchtime=5 " 匹配括号高亮的时间(单位是十分之一秒)
"colorscheme molokai
set expandtab "用空格代替tab
四、FTP服务搭建(以vsftpd为例)
1)检查是否已安装ftp工具。
[binhua@centos-7 ~]$ vsftpd -v
vsftpd: version 3.0.2
2)如显示版本号则已安装,否则使用 yum -y install vsftpd
安装。
3)为ftp服务创建专属用户。
4)修改ftp配置。文件位置为 /etc/vsftpd/vsftpd.conf.
anonymous_enable=NO # 是否允许匿名访问
local_enable=YES # 是否允许使用本地帐户进行 FTP 用户登录验证
chroot_local_user=YES # 是否限定用户在其主目录下(NO 表示允许切换到上级目录)
#chroot_list_enable=YES # 是否启用限制用户的名单(注释掉为禁用)
chroot_list_file=/etc/vsftpd/chroot_list # 用户列表文件(一行一个用户)
allow_writeable_chroot=YES # 如果启用了限定用户在其主目录下需要添加这个配置,解决报错 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
xferlog_enable=YES # 启用上传和下载的日志功能,默认开启。
五、安装Nginx1.17
1)安装依赖包。
yum -y install pcre pcre-devel openssl openssl-devel gcc gcc-c++ autoconf automake zlib-devel libxml2 libxml2-dev libxslt-devel gd-devel perl-devel perl-ExtUtils-Embed GeoIP GeoIP-devel GeoIP-data make GeoIP-devel GeoIP-update
2)下载nginx 1.17安装包。
curl -o nginx-1.17.9.tar.gz http://nginx.org/download/nginx-1.17.9.tar.gz
3)创建用户和组。
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M
4)解压,配置,编译,安装。
tar -zxvf nginx-1.17.9.tar.gz
cd nginx-1.17.9
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-http_stub_status_module --with-http_sub_module --with-stream --with-stream=dynamic
make && make install
5)添加环境变量。
- Centos的环境变量在 /etc/profile 中设置。
- Mac的环境变量在 ~/.bash_profile 中设置。(引申)
6)添加为系统服务。
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
7)设置开机自启动。
systemctl enable nginx.service
六、安装php7.2
1)安装EPEL包。(注:php高版本的yum源地址,有两部分,其中一部分是epel-release,另外一部分来自webtatic。如果跳过epel-release直接安装webtatic的时候,会报错)
yum install epel-release -y
2)安装webtatic-release。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
3)安装php豪华套餐包
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
4)设置开机自启动。
systemctl enable php-fpm.service
七、安装Mysql5.7(可选)
从 CentOS 7 系统开始,MariaDB 成为 yum 源中默认的数据库安装包。在 CentOS 7 及以上的系统中使用 yum 安装 MySQL 包将无法使用 MySQL。您可以选择使用完全兼容的 MariaDB,或依照本文介绍配置来继续使用 MySQL。
1)检查 MariaDB 是否安装,如果安装了就卸载全部。
yum list installed | grep mariadb #检查是否安装
yum -y remove mariadb* #卸载
2)下载、安装、检查 MySQL 的 YUM 源。
cd /data #进入要下载的路径
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm #安装
yum repolist enabled | grep "mysql.*-community.*" #检查是否成功
如果出现相关mysql的项则表示安装成功。
3)安装 MySQL。
yum install mysql-community-server -y
4)设置 MySQL 开机自启动。
systemctl enable mysqld.service
测试连接Mysql服务
刚安装的 MySQL 是没有密码的,这时如果出现:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
解决方式如下:
a) 停止服务: systemctl stop mysqld
b) 以不检查权限的方式启动 MySQL: mysqld --user=root --skip-grant-tables &
c) 再次输入mysql -u root
或者 mysql
就可以进来了。
d) 更新密码:
- 5.7以下版本:
UPDATE mysql.user SET Password=PASSWORD('123456') where USER='root';
- 5.7及以上版本:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') where USER='root';
e) 刷新: flush privileges;
八、安装MariaDB
1)安装MariaDB前请确保已经移除Mysql。
rpm -qa |grep -i mysql #查看mysql安装的文件
2)如果有相关Mysql的文件返回,请使用 yum remove
逐个卸载。
3)使用1)的命令检查是否卸载完成。
4)查找并删除Mysql相关文件。
find / -name mysql
rm -rf mysql目录名
rm -rf /etc/my.cnf
rm -rf /var/log/mysqld.log #不删除会导致新安装的mysql无法生存新密码,导致无法登陆
5)安装MairaDB。
yum -y install mariadb mariadb-server
6)开启MairaDB服务,并设置开机自启动。
systemctl start mariadb
systemctl enable mariadb
7)简单的相关配置。
mysql_secure_installation
8)测试登陆。
mysql -uroot -ppassword
九、搭建GitLab服务
安装并配置必要依赖项
1)安装相关依赖,并在防火墙中打开http服务。
yum install -y curl policycoreutils-python openssh-server
systemctl enable sshd #设置ssh服务开机启动
systemctl start sshd #启动ssh服务
firewall-cmd --permanent --add-service=http #开启http服务
firewall-cmd --reload #重启防火墙
2)安装Postfix以发送邮件。(可选)
yum install postfix
systemctl enable postfix
systemctl start postfix
添加GitLab软件
1)国内用户推荐手动下载清华大学镜像站的 RPM 安装包进行安装,地址是如果通过官方管道的方式安装,90% 都会报错:Http error 302
$ curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.9.8-ce.0.el7.x86_64.rpm
$ rpm -i gitlab-ce-8.9.8-ce.0.el7.x86_64.rpm
2)配置GitLab。配置文件是 /etc/gitlab/gitlab.rb
.
3)启动和管理操作
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl status
$ sudo gitlab-ctl stop
$ sudo gitlab-ctl restart
$ sudo ps aux | grep runsvdir
4)禁用自带nginx。
#设置nginx为false
nginx['enable'] = false
5)重启nginx,重启GitLab。
6)访问会报 502。原本是 nginx 用户无法访问 gitlab 用户的 socket 文件,用户权限配置,因人而异
chmod -R o+x /var/opt/gitlab/gitlab-rails
GitLab汉化指南(可选)
目前的GitLab版本已经到了11.X,所以推荐使用 xhang 项目。
1)根据安装的版本,查看xhang项目是否支持该版本汉化。(只要前两位版本号一致就可以)
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #查看安装版本
git clone https://gitlab.com/xhang/gitlab.git #克隆gitlab目录
OMG……..我的版本实在是太高了,11.11了都,人家的最新版是9.6。。。看来汉化只能先搁置了,以后再补充。2)打汉化补丁(以11.11.0-ee版本为例)
# 进入克隆仓库得到的gitlab目录
cd gitlab
# 查看tag版本,选择合适的汉化版本
git tag
# 对比不同,这里比较的是tag,v9.2.6为英文原版,v9.2.6-zh为汉化版本。diff结果是汉化补丁。
git diff v9.2.6..v9.2.6-zh > /tmp/9.2.6.diff
# 停止gitlab
gitlab-ctl stop
# 应用汉化补丁
cd /opt/gitlab/embedded/service/gitlab-rails
git apply /tmp/9.2.6.diff
# 启动gitlab
gitlab-ctl start
十、安装composer
1)下载 composer.phar 文件。
curl -sS https://getcomposer.org/installer | php
2)移动 composer.phar 文件到 /usr/local/bin 目录下 使命令全局可用。
mv composer.phar /usr/local/bin/composer
3)如需升级为最新的composer版本,请执行composer self-update
。
十一、安装nodejs
1)先确认是否已经安装了 epel-release
包。
yum info epel-release
2)如有输出相关的安装信息说明已安装,否则执行以下命令安装。
yum install epel-release
3)安装nodejs。
yum install nodejs
十二、安装cnpm
1)安装cnpm要先安装nodejs,如果已经安装,执行以下命令安装cnpm。
npm install -g cnpm --registry=https://registry.npm.taobao.org
2)升级cnpm。
cnpm install cnpm -g
十三、安装vue
cnpm install vue #安装vue
cnpm install --global vue-cli #安装vue-cli
十四、申请https证书
1)安装 certbot。
yum install epel-release
yum install certbot
2)生成证书,这里采用 webroot 作为 Let’s Encrypt 的认证方式。
certbot certonly -a webroot --webroot-path=/data -d www.binhua.site -d admin.binhua.site -d api.binhua.site -d beta.binhua.site
webroot-path
就是你的项目路径,使用 -d 可以添加多个域名。这时证书就已经生成成功了,默认保存在 /etc/letsencrypt/live/example.com/
下。证书文件包括:cert.pem
: 服务端证书chain.pem
: 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书fullchain.pem
: 包括了cert.pem和chain.pem的内容privkey.pem
: 证书私钥
【注意⚠️】第二步执行时可能出错,如果报错:
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
需要执行:
yum install http://cbs.centos.org/kojifiles/packages/pyOpenSSL/16.2.0/3.el7/noarch/python2-pyOpenSSL-16.2.0-3.el7.noarch.rpm
即可成功。
十五、安装配置redis
1)macos安装redis
最简单粗暴的做法就是 brew install redis
.安装成功后修改配置文件 redis.config
即可.
2)centos7安装redis
方法一:源文件安装(推荐安装)
在CentOS和Red Hat系统中,首先添加EPEL仓库,然后更新yum源:
sudo yum install epel-release
sudo yum update
然后安装Redis数据库:
sudo yum -y install redis
安装好后启动Redis服务即可:
sudo systemctl start redis
这里同样可以使用redis-cli进入Redis命令行模式操作。
另外,为了可以使Redis能被远程连接,需要修改配置文件:
vim /etc/redis.conf
首先,注释这一行:
# bind 127.0.0.1
另外,推荐给Redis设置密码,取消注释这一行:
# requirepass foobared
foobared即当前密码.
然后重启Redis服务,使用的命令如下:
sudo systemctl restart redis
systemctl start redis.service #启动redis服务器
systemctl stop redis.service #停止redis服务器
systemctl restart redis.service #重新启动redis服务器
systemctl status redis.service #获取redis服务器的运行状态
systemctl enable redis.service #开机启动redis服务器
systemctl disable redis.service #开机禁用redis服务器
方法二:压缩包安装
1、在官网下载tar.gz的安装包,或者通过wget的方式下载
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
2、解压
tar -zxvf redis-4.0.1.tar.gz
3、编译
通过make来编译,make是自动编译,会根据Makefile中描述的内容来进行编译。
cd redis-4.0
make
可以看到在src目录下生成了几个新的文件。
4、安装
make install
实际上,就是将这个几个文件加到/usr/local/bin目录下去。这个目录在Path下面的话,就可以直接执行这几个命令了。
可以看到,这几个文件就已经被加载到bin目录下了。
二十五、其他需要安装的软件。
- git
本作品采用《CC 协议》,转载必须注明作者和本文链接