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 协议》,转载必须注明作者和本文链接
代码是写给人看的,顺便给机器运行一下。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!