技术饭
centos7下php7、mysql5.7、nginx、redis、git、svn知识整理
centos7下php7、mysql5.7、nginx、redis、git、svn知识整理,由于服务器linux版本过旧,很多软件都无法更新安装,所以这几天把阿里云的服务器ECS的盘进行升级,将老版本的aliyun系统换成了centos7系统,网站、博客都down了几天,同时也整理了一些基础知识,分享一下!
---------------------------------------- 霸气的分割线 ----------------------------------------
rpm源:
php7源:rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Nginx1.14.0源:rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
Mysql8.0源:rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
Redis源:rpm -Uvh http://www.rpmfind.net/linux/remi/enterprise/7/remi/x86_64/redis-4.0.11-1.el7.remi.x86_64.rpm
libjemalloc源(支持Redis,需要先安装才能下载Redis源):https://centos.pkgs.org/7/atomic-x86_64/jemalloc-3.6.0-1.el7.art.x86_64.rpm.html
Linux安装:
1、centos7 安装php7+mysql5.7+nginx+redis
http://www.cnblogs.com/phpshen/p/6222935.html
基础操作:
1、修改xshell名称
vim /etc/hostname
2、查看网络端口占用情况
ps -aux | grep nginx //查看nginx进程
netstat -apn //查看所有端口占用情况
netstat –apn | grep 80 //直接查看80端口使用情况
netstat -tunpl //查看端口专题
3、安装:lrzsz上传下载
yum -y install lrzsz //安装
rz //上传
sz filename //下载
4、设置自动启动,不启动则使用disable
systemctl enable redis
systemctl enable php-fpm
systemctl enable mysqld
systemctl enable nginx
5、创建目录、创建文件
mkdir -p /usr/local/redis/bin //创建目录
touch a.txt //创建文件
6、移动文件、复制文件、修改名称
mv ./redis.conf /usr/local/redis/etc/ //移动文件
mv redis.conf test.conf 或者 cp a.txt b.txt //重命名
cp -r /usr/men /usr/zh //将men目录下的所有文件复制到zh下
7、防火墙
1、firewalld的基本使用
systemctl start firewalld //启动
systemctl status firewalld //查看状态
systemctl disable firewalld //停止
systemctl stop firewalld //禁用
systemctl restart firewalld //重启
2、service和chkconfig的功能
systemctl start firewalld.service //启动一个服务
systemctl stop firewalld.service //关闭一个服务
systemctl restart firewalld.service //重启一个服务
systemctl status firewalld.service //显示一个服务的状态
systemctl enable firewalld.service //在开机时启用一个服务
systemctl disable firewalld.service //在开机时禁用一个服务
systemctl is-enabled firewalld.service //查看服务是否开机启动
systemctl list-unit-files|grep enabled //查看已启动的服务列表
systemctl --failed //查看启动失败的服务列表
3、配置firewalld-cmd
firewall-cmd --version //查看版本
firewall-cmd --help //查看帮助
firewall-cmd --state //显示状态
firewall-cmd --zone=public --list-ports //查看所有打开的端口
firewall-cmd --reload //更新防火墙规则
firewall-cmd --get-active-zones //查看区域信息
firewall-cmd --get-zone-of-interface=eth0 //查看指定接口所属区域
firewall-cmd --panic-on //拒绝所有包
firewall-cmd --panic-off //取消拒绝状态
firewall-cmd --query-panic //查看是否拒绝
firewall-cmd --permanent --zone=public --add-port=80/tcp //永久开放80端口
firewall-cmd --permanent --zone= public --remove-port=80/tcp //永久删除80端口
firewall-cmd --list-all //列出当前防火墙的配置情况
firewall-cmd --permanent --zone=public --add-port=80/tcp //永久开放80端口
firewall-cmd --reload //让firewall-cmd重新加载配置
firewall-cmd --zone=work --add-service=smtp //添加服务
firewall-cmd --zone=work --remove-service=smtp //移除服务
8、查看系统套件版本信息
rpm -aq openssl
9、新增用户、删除用户、修改用户密码
useradd -d /alidata/www/wwwroot -s /sbin/nologin pwftp
userdel ftp
passwd www
10、赋予用户权限
chown -R git:git learngit.git //用来更改某个目录或文件的用户名和用户组的
chown 用户名:组名 文件路径(可以是就对路径也可以是相对路径)
11、查看开机启动项
systemctl list-unit-files
systemctl list-unit-files | grep enable
12、查看命令记录
history
---------------------------------------- 楼上的分割线你四不四傻 ----------------------------------------
PHP:
1、重启、启动、停止php-fpm
systemctl restart php-fpm 或者 service php-fpm restart //重启
systemctl start php-fpm 或者 service php-fpm start //启动
systemctl stop php-fpm 或者 service php-fpm stop //停止
---------------------------------------- 两智障 ----------------------------------------
Nginx:
1、修改nginx配置
vim /etc/nginx/nginx.conf
//基础配置信息
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
//https配置
# Settings for a TLS enabled server.
#
# server {
# listen 443 ssl http2 default_server;
# listen [::]:443 ssl http2 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# ssl_certificate "/etc/pki/nginx/server.crt";
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
2、重启、启动、停止nginx
systemctl restart nginx 或者 service nginx restart //重启
systemctl start nginx 或者 service nginx start //启动
systemctl stop nginx 或者 service nginx stop //停止
---------------------------------------- 卧槽你说谁呢@3楼分割线 ----------------------------------------
MySql:mysql8.0安装参考:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
1、mysql 配置
vim /etc/my.cnf
在[client] 下面添加
default-character-set=utf8 //设置编码
在 [mysqld] 下面添加 //设置编码
character_set_server=utf8
init_connect='SET NAMES utf8'
collation-server=utf8_general_ci
2、查看密码策略
show variables like '%password%';
3、设置密码策略参数
set GLOBAL validate_password_policy=0; 来修改
或者
修改 /etc/my.cnf文件validate_password_policy=0 #0(LOW),1(MEDIUM),2(STRONG)其中一种,注意2需要提供密码字典文件,如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:validate_password = off
4、获取初始密码
grep 'temporary password' /var/log/mysqld.log
5、修改用户密码
alter user root@localhost identified by 'copylian@aikehou.com'
6、添加一个可以在外部登陆的mysql用户
grant all privileges on *.* to "copylian"@"%" identified by "copylian@aikehou.com";
或者
grant all privileges on *.* to "copylian"@"%" identified by "copylian@aikehou.com" with grant option;
flush privileges;
但在mysql8中,上面的语句已经不再适用。
mysql8中必须要先创建一个用户,然后再进行授权,可以说是更加的规范了。
见官方说明:
https://dev.mysql.com/doc/refman/8.0/en/adding-users.html
这里参考:
https://cloud.tencent.com/developer/news/187555
https://www.cnblogs.com/zichuan/p/9203129.html
7、重启、启动、停止mysql
systemctl restart mysqld 或者 service mysqld restart //重启
systemctl start mysqld 或者 service mysqld start //启动
systemctl stop mysqld 或者 service mysqld stop //停止
8、php7的session无法传递解决方案:需要给存储session的目录session.save_path可写权限
session.use_trans_sid = 1 //参数被设为了1
chmod 777 /var/lib/php/session //修改存储session目录为可写
----------------------------------------极限三傻吗?你妹的分割线----------------------------------------
SVN:
1、创建版本库、启动版本库、停止svn服务
svnadmin create svntest //创建版本库
svnserve -d -r svntes //启动版本库
killall svnserve //停止svn服务
2、版本库账号密码、用户分组、用户权限
passwd用户账号密码:
[users]
svntest@copylian = svntest@copylian
authz用户权限:
[groups]
svntest = svntest@copylian,svntest12@copylian //svntest分组有两个用户
[/]
@svntest = rw //svntest分组的用户有rw权限
svnserve.conf配置文件:
anon-access = read //开启读
auth-access = write //开启写
password-db = ../../passwd //用户账号密码文件
authz-db = ../../authz //用户权限文件
realm = /copylian/www/svnroot/svntest //当前svn版本库的根目录
3、同步目录
/hooks/post-commit钩子文件(必须给777的权限):
REPOS="$1"
REV="$2"
export.UTF-8 //编码
svn update /copylian/www/svnweb/svntest --username svntest@copylian --password svntest@copylian
对/copylian/www/svnweb/svntest目录进行checkout:svn checkout svn://115.28.208.47/svntest
----------------------------------------乖巧安静的分割线----------------------------------------
GIT:
1、添加git仓库
git init --bare test.git
2、创建一个git用户并赋予密码、赋予权限
useradd git
passwd git
chown -R git:git test.git
3、禁用git用户shell登录(一定要禁用)
vi /etc/passwd
git:x:1000:1000::/home/git:/usr/bin/git-shell //将git用户修改为如下(一般在最后一行)
4、本地:git客户端,请先安装git
git config --global user.name "copylian"
git config --global user.email "copylian@aikehou.com"
5、本地创建秘钥并加入服务器列表中
ssh-keygen -t rsa -C "copylian@aikehou.com" //创建秘钥
C:\Users\Administrator\.ssh\id_rsa.pub //获取公钥
公钥内容:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfy+tBfZp6qZDznsznKPJev3W3eL2Jca93RL+rMK6c6hi50t99nHZKUE6HcJKLS9ZAE3SDRwBHYhkm1IGquNs6MSSHjSYsKd4RAFe1mwzG48gUJSiIiZhy2TBcWT6ga5cP4rfxFCtO+BaPtGoXWpMqFBxPoZR8seeGXgGYkbC1tUfZ96ZUBm3ex9kr798V8c+tczZanarLZb269hCthaT4X4TS8lXb9bIvGgHJJbgIbLyssdZuM8cfrZMJPGB2hW8fjQjzGZiO18gvIS1I2PN4eZ+/jiwV5GVjE7A9NLPKKmhGfuc6OgmnVUYmtaad+IE3LpukrpcZnNyagI2kpnKX copylian@aikehou.com
在将公钥加入服务器列表(服务器): vi /home/git/.ssh/authorized_keys
CentOS 7默认列表在/home/git/.ssh/authorized_keys,使用vi 编辑此文件输入刚才复制的内容,保存退出。
6、克隆git版本库
git clone git@101.101.101.101:/usr/local/git/learngit.git
7、同步
vi hooks/post-receive //创建post-receive文件
写入内容:
#!/bin/bash
git --work-tree=/copylian/www/gitweb/gittest checkout -f
设置权限:
chown git:git post-receive
chmod +x post-receive
更改目标目录的权限为777
chmod 777 /copylian/www/gitweb/gittest
8、使用TortoiseGit管理git 和 权限验证
TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥。也就是说使用 ssh-keygen -C "username@email.com" -t rsa 产生的密钥在TortoiseGit中不能用。
而基于github的开发必须要用到rsa密钥,因此需要用到TortoiseGit的 putty key generator 工具来生成既适用于github的rsa密钥也适用于TortoiseGit的ppk密钥,
push 可能遇到的问题:
Right click -> TortoiseGit -> Settings -> Network
SSH client was pointing to C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
Changed path to C:\Program Files (x86)\Git\bin\ssh.exe
我这地方直接就显示 C:\Program Files (x86)\Git\bin\ssh.exe 直接改成下面就行了
此时sync一下,试试肯定不能用。然后再把刚刚的修改改回去即:
Right click -> TortoiseGit -> Settings -> Network
SSH client was pointing to C:\Program Files (x86)\Git\bin\ssh.exe
Changed path to C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
9、TortoiseGit记住密码
在settings->git->Edit local .git/config,加上下面的内容,就能记住密码了。
[credential]
helper = store
测试似乎没啥用......
---------------------------------------- 宇宙最凶分割线 ----------------------------------------
Redis:
1、重启、启动、停止redis
service redis restart //重启
service redis start //启动
service redis stop //停止
/etc/init.d/redis {start|stop|restart|force-reload}
2、设置自动启动
chkconfig redis on
systemctl enable redis
/sbin/chkconfig redis on
3、Redis使用认证密码登录
vim /usr/local/redis/etc/redis.conf
requirepass copylian@aikehou.com //设置使用密码
daemonize yes //设置在后台运行
vim /etc/init.d/redis //将redis设置为系统服务
chmod +x /etc/init.d/redis //设置权限
chkconfig redis on //设置自动启动
4、登录验证
$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
使用密码认证登录,并验证操作权限:
$ ./redis-cli -h 127.0.0.1 -p 6379 -a copylian@aikehou.com
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "copylian@aikehou.com"
看到类似上面的输出,说明Reids密码认证配置成功。
除了按上面的方式在登录时,使用-a参数输入登录密码外。也可以不指定,在连接后进行验证:
$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth copylian@aikehou.com
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "copylian@aikehou.com"
5、客户端登录
修改 /etc/redis.conf 将 bind 127.0.0.1注释即可
---------------------------------------- 我才是霸气的分割线 ----------------------------------------
好了,最后还是附上文档附件吧:linux基本操作.txt
文明上网理性发言!