技术饭

centos7下php7、mysql5.7、nginx、redis、git、svn知识整理

copylian    0 评论    1497690 浏览    2017.08.13

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

只袄早~~~
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!

文明上网理性发言!

  • 还没有评论,沙发等你来抢