工欲善其事必先利其器
一、Linux系统初始化
1. Linux系统版本
- 查看系统版本
shell
> uname -a #查看linux内核版本
>> Linux VM_76_125_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
> cat /proc/version #查看linux内核版本
>> Linux version 3.10.0-514.26.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Jul 4 15:04:05 UTC 2017
> cat /etc/redhat-release #查看linux发行系统版本
>> CentOS Linux release 7.2.1511 (Core)
> cat /etc/lsb-release #查看Linux发行系统版本
- 包管理工具
- 清楚系统版本有助于了解使用哪种包管理工具
操作系统 | 格式 | 工具 |
---|---|---|
Debian | .deb | apt, apt-cache, apt-get, dpkg |
Ubuntu | .deb | apt, apt-cache, apt-get, dpkg |
CentOS | .rpm | yum |
Fedora | .rpm | dnf |
FreeBSD | Ports, .txz | make, pkg |
2. 用户权限配置
- 新增用户
shell
# 在root环境下执行:
> groupadd admin #创建admin用户组
> useradd somebody #创建用户
> passwd somebody #修改用户密码
> usermod -g admin somebody #变更用户主组
> usermod -aG admin somebody #添加用户到组(第一个是组,第二个是用户)
- 用户添加sudo权限
shell
# 在/etc/sudoers文件里添加:
## Allows people in group admin to run all commands without a password
%admin ALL=(ALL) NOPASSWD: ALL
二、Linux基础组件
1. git环境搭建
- 安装git
shell
> sudo yum info git #查看git安装包详情
> sudo yum install git #下载安装git
- git默认环境配置
shell
# git设置别名:
> git config --global alias.st 'status -sb'
alias.st "status -sb"
alias.co "checkout"
alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"
alias.br "branch"
alias.ci "commit"
alias.last "log -1"
# git 删除设置
> git config --global --unset credential.helper
# git全局设置查看
> git config --global --list
# git密码证书缓存
> git config --global credential.helper cache #支持缓存
> git config --global credential.helper 'cache --timeout=3600' #缓存失效时间
- github映射配置
shell
> git config --global user.name "somebody"
> git config --global user.email "somebody@domain.com"
> git clone https://github.com/somebody/something.git
2. ftp环境搭建
- ftpd的安装配置(使用vsftpd服务)
-
文档
- 安装配置说明1:blog.51cto.com/taoxie/2062...
- 安装配置说明2:www.linuxidc.com/Linux/2014-...
- ftpd对比1:www.cnblogs.com/biGpython/a...
- ftpd对比2:blog.163.com/qimo601@126...
-
操作步骤
- 安装vsftpd和ftp
shell# 安装ftp客户端和服务端 > sudo -y install ftp vsftpd
- 建立帐号及个性化配置
shell# 建立ftp系统账户,设置不可作ssh登录,并设置家目录 > useradd -d /data/webdocs -s /sbin/nologin vsftpuser # 添加ftp虚拟账户 > vim /etc/vsftpd/vsftpuser.passwd # 内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行 bithere fish??palm # 将ftp虚拟帐号生成密文库文件 > db_load -T -t hash -f /etc/vsftpd/vsftpuser.passwd /etc/vsftpd/vsftpuser.db # 建立虚拟账号相关的目录以及配置文件 > mkdir /etc/vsftpd/vsftpuser.conf.d > vim /etc/vsftpd/vsftpuser.conf.d/bithere #文件名和虚拟用户名一致 # 添加虚拟用户个性化配置,内容如下: local_root=/data/webdocs #定义bithere的家目录 anonymous_enable=NO #用来限制是否允许匿名账号登录(no表示不允许) write_enable=YES #表示可写 local_umask=022 #umask值 anon_upload_enable=NO #表示是否允许匿名账号上传文件 anon_mkdir_write_enable=NO #表示是否允许匿名账号可写 idle_session_timeout=600 #上传完文件后超时多久断开连接 data_connection_timeout=120 #数据传输超时时间 max_clients=10 # 最大连接数
- 更改vsftpd权限验证方式
shell# 增加vsftp的权限验证 > vim /etc/pam.d/vsftpd # 内容如下:(增加上步生成的密文库文件,禁止以前的权限验证) auth required pam_userdb.so db=/etc/vsftpd/vsftpuser account required pam_userdb.so db=/etc/vsftpd/vsftpuser #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth
- vsftpd全局配置
shell# 追加和更改配置 > vim /etc/vsftpd/vsftpd.conf #虚拟帐号走vsftpuser的系统帐号 chroot_local_user=YES guest_enable=YES guest_username=vsftpuser virtual_use_local_privs=YES allow_writeable_chroot=YES user_config_dir=/etc/vsftpd/vsftpuser.conf.d #允许陌生用户访问的目录 anon_root=/ftp/open #禁止陌生用户写 anon_mkdir_write_enable=NO
- ftpd的启动命令
shell
# 设置自动启动
> systemctl enable vsftpd
# 启动服务
> systemctl start vsftpd
# 查看目前的状态
> systemctl status vsftpd
- phpstorm自动同步配置
- ftp链接配置
Tools => Deployment => Configurations
- 设置
Passive mode
和Compatibility mode
- pure-ftpd启动命令
arduino
sudo pure-config.pl /etc/pure-ftpd/pure-ftpd.conf
三、Web服务器
1. nginx环境搭建
采用openresty(通过 Lua 扩展 NGINX 实现的可伸缩的 Web 平台)搭建web服务器
openresty官网:openresty.org/cn/
- openresty安装与配置
- 下载安装:我们使用1.13.6.2版本(2018.05.14版本)
shell
# 下载解压
> wget https://openresty.org/download/openresty-1.13.6.2.tar.gz
> tar -xzvf openresty-VERSION.tar.gz
# 您必须将这些库 perl 5.6.1+, libpcre, libssl安装在您的电脑之中。
# 对于 Linux来说, 您需要确认使用 ldconfig 命令,让其在您的系统环境路径中能找到它们
# 安装命令:
> cd openresty-VERSION/
> ./configure --prefix=/usr/local/openresty
> make
> sudo make install
-
直接下载二进制包安装,参考:openresty.org/cn/linux-pa...
-
配置项修改
- host自定义目录
shell> sudo mkdir /usr/local/openresty/nginx/conf/vhost.d # /usr/local/openresty/nginx/conf/nginx.conf后追加: > include vhost.d/*.conf;
- vhost配置项修改
shellserver { listen 80; # 监听端口 server_name www.domain.com; # 域名 root /data/webdocs/domain/public; # 根目录 charset utf-8; # 字符集 index index.php; # 入口文件 include socket.conf; include keepalive.conf; include log.conf; access_log logs/domain.log ; # 访问日志文件 location = /favicon.ico { # 精确匹配 浏览器图标 expires 7d; log_not_found off; } location = /robots.txt { # 精确匹配 robots协议 return 403; } location ~* ^.+.(js|css|html|swf|eot|svg|ttf|woff|map|exe)$ { # 不区分大小写的正则匹配 expires 7d; } location ~* ^.+.(jpg|jpeg|gif|png)$ { # 不区分大小写的正则匹配 expires 30d; } location / { # 通用匹配 # 说明见: https://blog.csdn.net/u012732259/article/details/76681581 # https://www.hi-linux.com/posts/53878.html try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { # 当nginx处理http://www.xxx.com/index.php/abc/def请求时,将会把"index.php"做为php的脚本,/abc/def做为index.php脚本的参数提交给php-cgi执行 fastcgi_split_path_info ^(.+\.php)(.*)$; # 说明见:http://blog.51cto.com/nineep/1845961 fastcgi_pass unix://data/var/run/jiyuers.sock; } }
- 反向代理和正向代理区别
- 参考:www.jianshu.com/p/208c02c9d...
- 参考:www.tuicool.com/articles/M7...
- 正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见
- nginx开启https
2. PHP环境搭建
php官网:php.net/
- php安装与配置
- 下载安装:我们使用7.2.7版本
shell
# 下载解压
> wget http://am1.php.net/distributions/php-7.2.7.tar.gz
> tar -xzvf php-VERSION.tar.gz
# 编译环境
> sudo yum install \
build-essential \
gcc \
g++ \
autoconf \
libiconv-hook-dev \
libmcrypt-dev \
libxml2-dev \
libmysqlclient-dev \
libcurl4-openssl-dev \
libjpeg8-dev \
libpng12-dev \
libfreetype6-dev \
# php安装
> cd php-VERSION/
> ./configure --prefix=/usr/local/php \
--with-config-file-path=/etc/php \
--enable-fpm \
--enable-pcntl \
--enable-mysqlnd \
--enable-opcache \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--enable-zip \
--enable-soap \
--enable-xml \
--enable-mbstring \
--disable-rpath \
--disable-debug \
--disable-fileinfo \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-pcre-regex \
--with-iconv \
--with-zlib \
--with-mcrypt \
--with-gd \
--with-openssl \
--with-mhash \
--with-xmlrpc \
--with-curl \
--with-imap-ssl
> sudo make
> sudo make install
> sudo mkdir /etc/php
> sudo cp php.ini-development /etc/php/php.ini
# vim ~/.bashrc 追加
export PATH=/usr/local/php/bin:$PATH
export PATH=/usr/local/php/sbin:$PATH
> source ~/.bashrc
-
php-fpm fastCGI配置
- php-fpm 配置
shell$ vim /usr/local/php/etc/php-fpm.conf # 最后一行追加 include=/usr/local/php/etc/php-fpm.d/*.conf
- 单独实例配置
shell$ vim /usr/local/php/etc/www.conf # 两项基础配置 pool name => [www] #实例名 prefix => pools/$pool #日志目录 listen => /dev/shm/$pool.socket #监听端口:这里采用文件端口
-
php的mongodb扩展安装:www.jianshu.com/p/1f00529cd...
- php的优化
- 鸟哥的博客:www.laruence.com/2015/12/04/...
- 开启opcache:
四、数据库搭建
1. mysql环境搭建
- mysql下载安装
- 安装步骤
shell
rpm -qa | grep mysql
如果你系统有安装,那可以选择进行卸载:
$ rpm -e mysql // 普通删除模式
$ rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
安装 MySQL:
接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源包,下载地址为:https://dev.mysql.com/downloads/repo/yum/
$ wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
$ sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
$ sudo yum install mysql-server
初始化 MySQL:
$ sudo mysqld --initialize
启动 MySQL:
$ sudo systemctl start mysqld
查看 MySQL 运行状态:
$sudo systemctl status mysqld
- 注意
shell
默认的mysql配置文件位于:/etc/my.cnf
如果安装报错:可以相应修改其中的配置项
- 修改初始密码 见:blog.csdn.net/zyw_java/ar...
2. mongodb环境搭建
- mongodb的下载安装
- 配置MongoDB的yum源
shell
# 创建yum源文件:
$ sudo vim /etc/yum.repos.d/mongodb-org-4.0.repo
# 添加以下内容:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
# 这里可以修改 gpgcheck=0, 省去gpg验证
- 安装MongoDB
shell
# 安装命令:
$ sudo yum -y install mongodb-org
# 查看mongo安装位置
$ whereis mongod
# 查看修改配置文件 :
sudo vim /etc/mongod.conf
- 启动MongoDB
shell
# 启动mongodb :
$ sudo systemctl start mongod.service
# 停止mongodb :
$ sudo systemctl stop mongod.service
# 查到mongodb的状态:
$ sudo systemctl status mongod.service
# 设置开机启动
$ sudo systemctl enable mongod.service
# mongod.service路径:/usr/lib/systemd/system/mongod.service
- 外网访问需要关闭防火墙:
shell
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
关闭firewall:
$ sudo systemctl stop firewalld.service #停止firewall
$ sudo systemctl disable firewalld.service #禁止firewall开机启动
- mongodb使用配置
shell
# 启动Mongo shell
$ mongo
# 查看数据库:
$ show dbs
# 设置mongodb远程访问:
## 编辑mongod.conf注释bindIp,并重启mongodb.
$ sudo vim /etc/mongod.conf
# 重启mongodb:
$ sudo systemctl restart mongod.service
添加账号密码
步骤一:在未开启认证的环境下,登录到数据库
mongo
步骤二:切换到admin数据库
> use admin
步骤三:创建管理员账号
> db.createUser({user:"root",pwd:"123456",roles:["root"]})
新增的用户在 db.system.users 中
> db.getCollectionNames()
["system.indexes", "system.users", "system.version" ]
步骤四:验证用户是否创建成功
> db.auth("root","123456")
1
步骤五:杀掉进程,重启mongoDB服务
ps -ef | grep mongod
步骤六:更改mongod.service配置
Environment="OPTIONS=--auth -f /etc/mongod.conf"
步骤七:重载service配置 & 重启mongod
$ sudo systemctl daemon-reload
$ sudo systemctl start mongod.service
- mongo使用命令
- shell启动:
mongo --port 27017 -u root -p bithere --authenticationDatabase admin
3. redis环境搭建
- reds安装与配置
-
安装配置
shell# 安装redis $ sudo yum install redis # 启动redis $ sudo systemctl start redis.service # 设置开机自启动 $ sudo systemctl enable redis.service # 设置密码 打开文件/etc/redis.conf,找到其中的# requirepass foobared,去掉前面的#,并把foobared改成你的密码。
4. ES环境搭建
- 安装与配置(以安装es6.6.2为例)
shell
# 下载jdk
$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz
# 下载ES安装包
$ wget "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz"
# 解压缩
$ tar -xzvf elasticsearch-6.6.2.tar.gz
- systemd配置
在 /lib/systemd/system
下新建elasticsearch.service
文件,一定要以service
做后缀
ini
[Unit]
Description=Elasticsearch
Documentation=http://www.elastic.co
Wants=network-online.target
After=network-online.target
[Service]
WorkingDirectory=/usr/local/elasticsearch
User=elasticsearch
Group=elasticsearch
Restart=1
ExecStart=/usr/local/elasticsearch/bin/elasticsearch
# StandardOutput is configured to redirect to journalctl since
# some error messages may be logged in standard output before
# elasticsearch logging system is initialized. Elasticsearch
# stores its logs in /var/log/elasticsearch and does not use
# journalctl by default. If you also want to enable journalctl
# logging, you can simply remove the "quiet" option from ExecStart.
StandardOutput=journal
StandardError=inherit
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=655350
# Specifies the maximum number of processes
LimitNPROC=4096
# Specifies the maximum size of virtual memory
LimitAS=infinity
- systemctl命令
ruby
$ sudo systemctl start elasticsearh.service
$ sudo systemctl restart elasticsearch.service
$ sudo systemctl status elasticsearch.service
$ sudo systemctl stop elasticsearch.service
- 安装ik分词器
- 安装kibana
ruby
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.2-linux-x86_64.tar.gz
五、开发框架搭建
1. php框架环境搭建
- composer安装与配置
composer官网:getcomposer.org/
composer中文网:www.phpcomposer.com/
-
安装配置
shell# 下载composer的可执行文件 $ curl -sS https://getcomposer.org/installer | php # composer全局安装 $ mv composer.phar /usr/local/bin/composer
-
composer常用命令
shell$ composer install #安装 $ composer update #更新 $ composer install -o -vvv #安装显示debug信息
-
composer更改镜像
- 查看当前镜像地址
shell在命令行输入如下命令,即可查看镜像地址: $ composer config -g repo.packagist {"type":"composer","url":"https://packagist.org","allow_ssl_downgrade":true} 也可以使用 composer config -l -g 查看所有全局配置 下面有把地址修改为中国镜像,如果中国镜像出现了问题,那么您可以还原成官方的默认地址 ,下面是详细。
- 启用中国全量镜像服务:
arduino启用中国全量镜像服务有两种方式,具体配置方法如下: 1. 系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。修改composer的全局配置文件(推荐方式),打开命令行并执行如下命令: 默认地址改为中国镜像地址: composer config -g repo.packagist composer https://packagist.phpcomposer.com 中国镜像地址还原成默认地址:(注意:这个是将中国镜像还原) composer config -g repo.packagist composer https://packagist.org 2. 单个项目配置: 即将将配置信息添加到某个项目的 composer.json 文件中。修改当前项目的composer.json配置文件有两种方式,最后都是向文件中添加如下配置信息: "repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } } 2.1 打开命令行并进入项目的根目录(也就是 composer.json 文件所在目录),执行如下命令: 默认地址改为中国镜像地址: composer config repo.packagist composer https://packagist.phpcomposer.com 该命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息 中国镜像地址还原成默认地址:(注意:这个是将中国镜像还原) composer config repo.packagist composer https://packagist.org 2.2 手动向composer.json文件中添加以上信息 默认地址改为中国镜像地址: "repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } } 中国镜像地址还原成默认地址:(注意:这个是将中国镜像还原) 将url的值改为:https://packagist.org
1.2 超牛逼的国内镜像地址
-
laravel环境配置
shell#安装laravel启动项 $ composer global require "laravel/installer" # 将 ~/.config/composer/vendor/bin 加入path目录 #安装项目 $ laravel new blog
-
lumen环境配置
lumen是简易版的laravel
shell#安装lumen启动项 $ composer global require "laravel/lumen-installer" # 将 ~/.config/composer/vendor/bin 加入path目录 #安装项目 $ lumen new blog
2. nodejs安装
shell
复制拿到链接,下载nodejs
$ wget https://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz
解压
$ tar -xvf node-v14.17.4-linux-x64.tar.xz
删除压缩包
$ rm node-v14.17.4-linux-x64.tar.xz
配置环境变量
编辑
$ vim .bash_profile
#往 .bash_profile 新增环境变量
$ export NODE_HOME=/node-v14.17.4-linux-x64
$ export PATH=$PATH:$NODE_HOME/bin
$ export NODE_PATH=$NODE_HOME/lib/node_modules
保存.bash_profile
:wq
提交
$ source .bash_profile
检查是否安装成功
$ node -v
$ npn -v
有版本号出现则表示成功