第十一周作业

1、搭建php-fpm工作方式的LAMP环境,实现wordpress正常访问

2、什么是DML?常用SQL举例,每个命令至少1个例子,最多不超过3个例子

3、简述ftp的主动和被动模式,并实现基于pam认证的vsftpd

4、简述NFS服务原理及配置

5、简述samba服务,并实现samba配置

  • 搭建php-fpm工作方式的LAMP环境,实现wordpress正常访问
    • 确认系统上没有安装php
    • 安装如下程序包

yum install mariadb-server php-fpm httpd php-mysql

  • 选装的程序包

php-mcrypt:加解密用到,传输过程加解密

php-mbstring:多字节字符串支持.

php-xcache:缓存php,加速php运行

  • 配置php

服务配置文件:/etc/php-fpm.conf,/etc/php-fpm.d/*.conf

php环境配置文件:/etc/php.ini,/etc/php.d/*.ini

连接池:

/etc/php-fpm.d/www.conf

pm=static|dynamic

static:固定数量的子进程;pm.max_children;

pm.max_children = 50 最大的子进程数量

dynamic:子进程数据以动态模式管理;

pm.start_servers

pm.min_spare_servers

pm.max_spare_servers

pm.max_requests=500

创建session目录 并确保运行php-fpmjincheng的用户对此目录有读写权限;

​mkdir /var/lib/php/session

​   ​chown apache.apache /var/lib/php/session

  • 配置怎么和httpd服务器结合的

listen = 127.0.0.1:9000

/path/to/unix/socket 监听套接字…不用ip时 使用

listen.backlog = -1

配置队列长度,-1无限制

listen.allowed_clients = 127.0.0.1

配置那个机器可以请求PHP

pm.status_path = /pmstatus  pm的状态页面…可以直接访问

ping.path.response = pong 测试 是否可用

php_value[session.save_path] = /var/lib/php/session  自己需要创建此目录,并授权给apache,上面与创建

​     mkdir /var/lib/php/session

​   ​chown apache.apache /var/lib/php/session

  •     配置HTTPD
  1. 添加/etc/httpd/conf.d/fcgi.conf配置文件,内用类似:

DirctoryIndex index.php

ProxyRequests off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

  1. 虚拟主机配置

DirectoryIndex index.php

<VirtualHost *.80>

ServerName www.ilinux.io

DocumentRoot /data/www/html

ProxyRequests off ##关闭正向代理

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

ProxyPassMatch ^(/pmstatus.*)$ fcgi://127.0.0.1:9000/$1  #ping,status,反向代理.

测试:url/pmstatus?xml   /pmstatus?full

ProxyPassMatch ^(/pmstatus|ping)$ fcgi://127.0.0.1:9000/$1  #ping,status,反向代理.

<Directory “/data/www/html”>

Options None ## Options FollowSymLinks

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

  1. 压力测试

ab -n 100000 -c 20 http://192.168.0.200/index.php

  1. 测试连接

curl http://192.168.0.200/pma/index.php

phpMySQL 配置文件  cp config.sample.inc.php config.inc.php

  • 配置wordpress

解压wordpress到/var/www/html/blog

cp wp-config-sample.php wp-config.php

修改配置文件

/** WordPress数据库的名称 */

define(‘DB_NAME’, ‘wordpress’);

/** MySQL数据库用户名 */

define(‘DB_USER’, ‘wp’);

/** MySQL数据库密码 */

define(‘DB_PASSWORD’, ‘wppass’);

/** MySQL主机 */

define(‘DB_HOST’, ‘localhost’);

启动浏览器连接wordpress

http://192.168.0.200/blog/

 

 

  • 什么是DML?常用SQL举例,每个命令至少1个例子,最多不超过3个例子

DML:INSERT,DELETE,UPDATE,SELECT

 

INSERT [INTO] tb_name [(col1,….)] {VALUES|VALUE} (VAL1,….),(….),….

注意:

字符型:引号;

数值型:不能用引号;

phpMyAdmin  可视化管理mysql

INSERT INTO www3 VALUES (1,’tom’,’M’,’2011′);

INSERT INTO www3(name,gender) VALUES (‘gaofei’,’M’),(‘zhoayun’,’M’);

REPLACE INTO www3 VALUES (1,’tom’,’F’,’2019′);

SELECT

(1)SELECT * FROM tb_name[,tb_name2];

返回指定表的所有数据;慎用;

(2)SELECT col1,col2,…FROM tb_name;

显示时,字段可以显示为别名;

col_name AS col_alias

示例:

select name as student_name,gender from students;

(3)SELECT col,…FROM tb_name WHERE clause;  /klɔz/ 条件

WHERE clause:用于指明挑选条件;

col_name操作符value:

age>30;

 

select name as student_name,gender from students where stuid>2;

select name as student_name,gender from students where classid is null;

select name as student_name,gender from students where classid in (1,2,3);

select name as student_name,gender from students where name like ‘d%’;

select name as student_name,gender from students where name like ‘^d’;

select name as student_name,gender from students where name like ‘^d’ order by desc;

select count(*) as nus,gender from students group by gender;

seletc * from student where name like ‘D%’ and gender=’F’;

or

not

 

 

操作符:>,<,=,==,!=

组合条件:and,or,not

操作符2:

between …. and …

like ‘pattern’

通配符:

%:任意长度的任意字符;

-:任意单个字符;

rlike ‘pattern’

正则表达式对字符串做模式匹配;

IS NULL

IS NOT NULL

(4)SELECT col1,….FROM tab1_name [where clause] ORDER BY col_name,col_name2,….[ASC|DESC];

ASC:升序;

DESC:降序;

(5)分组:

Group by,为了聚合;

count

DELETE:删除行;

DELETE FROM tbl_name [where where_condition] [order by …] [limit row_count]

 

(1)delete from tbl_name where where_condition

(2)delete from tbl_name [order by] [limit row_count]

delete from students order by age desc limit 100;

delete from students order by age where age=100;

 

UPDATE:

update [low_PRIORITY] [IGNORE]table_reference set col_name1=value1 [,col_name2=value2]…[where where_condition] [order by]控制

 

update students set classid=2 where stuid=1;

3、简述ftp的主动和被动模式,并实现基于pam认证的vsftpd

  • ftp:

ftp:file transfer protocol,文件传输协议;

两类连接:

命令连接:传输命令

数据连接:传输数据

两种模式:

主动模式:port

server:20/tcp连接客户端的命令连接使用的端口向后的第一个可用端口;

被动模式:PASV

Server:打开一个随机端口,并等待客户端连接

  • vfs 配置

主程序:/usr/sbin/vsftpd
主配置文件:/et/pam.d/vsftpd  认证配置文件
数据根目录:/var/ftp
Systemd Unit File:/usr/lib/systemd/system/vsftpd.service

配置vsftpd:

用户类别:

匿名用户:anonymous–>ftp,/var/ftp#目录

系统用户:至少禁止系统用户访问ftp服务,/etc/vsftpd/ftpusers,PAM(/etc/pam.d/vsftpd);

虚拟用户:非系统用户;用户账号为非 /etc/passwd

默认认证方式,系统用户方式认证.

系统用户登陆后都在自己的家目录下 pwd 命令可以查看目录位置

默认可以自己有权限访问的所有路径间切换;禁锢用户于家目录中;

vsftpd:认证功能托管给pam;

基于何种存储服务来存储用户信息,以及对存储服务的驱动要靠pam实现;

安装pam认证的需要的软件包

yum install mariadb-devel pam-devel

pam_mysql:必须手动安装,用于连接mariadb:

准备编译环境

Yum group install “Development Tools” Server Platfrom Development”

tar -xf pam_mysql-0.7RC1.tar.gz

./configure –with-pam=/usr –with-mysql=/usr –with-pam-mods-dir=/usr/lib64/security

make && make install

安装后确认ls /usr/lib64/security/   有pam_mysql.so

 

创建数据库,授权用户,创建账号和密码;

MariaDB [(none)]> create database vsftpd;

MariaDB [(none)]> grant all on vsftpd.* to ‘vsftpd’@’127.0.0.1’ identified by ‘mageedu’;

MariaDB [(none)]>create table users(id int unsigned auto_increment primary key,name varchar(100) not null,password char(40) not null,unique(name));

MariaDB [(none)]> insert into users(name,password) values (‘test’,password(‘123’)),(‘user1’,password(‘123’));

提供配置文件:/etc/pam.d/vsftpd.vusers

auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

配置vsftpd,添加或修改以下选项:

pam_service_name=vsftpd.vusers

guest_enable=YES

guest_username=vuser

虚拟用户的写权限,通过匿名一样的指令进行定义;

还能实现不同的用户由不同的权限;

user_config_dir=/etc/vsftpd/vusers_config/

在此目录下创建不同用户的权限文件

例如数据库users表中test

anon_upload_enable=YES

anon_mkdir_write_enable=YES

~

同名.conf文件 权限同 anonymous 权限

 

  • 简述NFS服务原理及配置

nfs

nfs:Network File System
nls:Network Information Service;
ldap:lightweight directory access protocol;ldap over ssl/tls;

nfs时系统内核的一个模块
lsmod  可以查看
nfs服务需要安装  nfs-util实现提供服务;

NFSv1
NFSv2,NFSv3,NFSv4 目前最高版本

NFS监听的端口:2049 tcp/udp
不建议使用udp
NFS辅助类的服务:rpc,portmapper
rpc.mountd:认证;
rpc.locked:加锁;
rpc.statd:状态;
rpc:remote procedure call

NFS Server:
nfs-utils:
The nfs-utils package provides a daemon for the kernel NFS server and related tols,which provides a much higher level of performance than the traditional Linux
NFS server used by most users.

nfs 用户权限配置文件
/etc/exports  或者/etc/exports.d/*
格式:/PATH/TO/SOME_DIR CLIENTS1(EXPORT_OPTIONS,….) CLIENTS2(EXPORT_OPTIONS,…..)

CLIENTS:
single host:ipv4,ipv6,FQDN;
network:address/netmask,长度格式掩码都支持;
wildcards:主机名通配,例如:*.mageedu.com;
netgroups:NIS域内的主机组;@group_name;
anonymous:使用*通配所有主机;
EXPORT_OPTIONS
ro:只读;
rw:读写;
sync:同步;
async:异步;
User ID Mapping:
root_squash:压缩root用户,一般指将其映射为nfsnobody;
no_root_squash:不压缩root用户;
all_squash:压缩所有用户;
anonuid and anongid:将压缩的用户映射为此处指定的用户;

示例:/dat/mysql     172.16.0.200(rw,no_root_squash) 172.167.0.0/16(ro)

/etc/sysconfig/nfs  配置文件  配置rpc等属性配置

NFS clinet:
mount -t nfs servername:/path/to/share /path/to/mount_point [-rvVwfnsh] [-o options]

#exportfs -ar
#exportfs -au
-r:重新导出;
-a:所有文件系统;
-v:详细信息;
-u:取消导出文件系统;

showmount :show mount information for an NFS server
showmount命令 可以显示nfs提供的挂载信息

showmount -e NFS_SERVER_IP:查看指定的NFS Server上导出的所有文件系统;
showmount -a 在NFS server上查看nfs所有的客户端列表;

其他参考文档:
man nfs:获取nfs文件系统专用的挂载选项;

 

  • 简述samba服务,并实现samba配置

samba:

​smb:service message block

​cifs:common internet filesystem

​samba:Andrew Tridgell

​    ​功能:文件系统共享;

​    ​打印共享;

​    ​NetBIOS协议;

​程序环境:

​    ​服务端程序包:samba 依赖samba-common,samba-libs

​    ​安装程序:

​    ​    ​yum install samba

​    ​启动服务:

​    ​    ​systemctl start smb nmb

​    ​主配置文件:/etc/samba/smb.conf,有samb-common提供;

​    ​主程序:

​    ​    ​    ​nmbd:NetBIOS name server

​    ​    ​    ​smbd:SMB/CIFS service

​    ​Unit File:

​    ​    ​smb.service

​    ​    ​nmb.service

​    ​监听的端口:

​    ​    ​137/udp,138/udp,139/tcp,445/tcp

​   ​d:\data\tools:共享,共享名(software)  windows路径是”\”

​    ​配置samba:

​    ​    ​/etc/samba/smb.conf

​    ​    ​配置测试:

​    ​    ​​testparm

      • [global]
        interfaces = lo ens33     ##如果是ip的话,后面必须跟端口;
        log file = /var/log/samba/log.%m
        max log size = 50
        security = USER
        server string = Samba Server Version %v
        workgroup = MYGROUP
        idmap config * : backend = tdb[homes]
        browseable = No
        comment = Home Directories
        read only = No

        [printers]
        browseable = No
        comment = All Printers
        path = /var/spool/samba
        printable = Yes

客户机使用方式:

​安装samba-client:交互式命令行客户端,类似于lftp.

挂在文件系统:mount.cifs

​sambclient 使用:

​smbclient -L 192.168.0.200  查看共享的资源

​smbclient //192.168.0.200/test -U test -C 123 访问资源

​创建用户账户:

​  ​useradd test

​  smbpasswd

​    ​    ​    ​    ​    ​    ​    ​-a:add user

​    ​    ​    ​    ​    ​    ​    ​-d:disable user

​    ​    ​    ​    ​    ​    ​    ​-e:enable user

​    ​    ​    ​    ​    ​    ​    ​-n:set no password

​    ​    ​    ​    ​    ​    ​    ​-i:interdomain trust account

​    ​    ​    ​    ​    ​    ​    ​-m:machine trust account

​    ​    ​    ​    ​    ​    ​    ​-W:use stdin ldap admin password

-w PASSWORD:ldap admin password

​    ​    ​    ​    ​    ​    ​    ​-x:delete user

​    ​  ​-R ORDER:name resolve order

 

​共享文件系统配置

​三类:

​[homes]:为每个samba用户定义其是否能够通过samba服务访问自己家目录;

​[printers]:定义打印服务;

​[shared_fs]:定义文件共享系统;

常用的指令:

​comment:注释信息;

​path:当前共享所映射的文件系统路径;

​browseable:是否可浏览,是否可被其他用户查看;

​guest ok:是否允许来宾账户访问;

writable:是否可写;

write list:拥有写权限的用户列表;

用户名

​@组名

​+组名

​read only:是否可读;

示例:

[mytest]

comment = A test share directory.

path = /data/samba/files

public = yes

writable = yes###或者write list = +groupname

browseable = yes

用户必须对共享的文件有权限:可以用setfacl 授权

用挂载命令挂载使用

-o选项可以定义

Rsize= :读缓存

Wsize= :写缓存

Actimeo= :超时时间

123

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/103363

(0)
上一篇 2018-07-20 21:48
下一篇 2018-07-20 23:12

相关推荐

  • 数组,字符串切片,高级变量

    数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合 数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引 bash4.0版本之后开始支持 bash –version   查看bash版本 bash的数组支持稀疏格式(索引不连续) 声明数组: de…

    Linux笔记 2018-05-13
  • 计算机的基础

    基础知识

    2018-07-23
  • MYSQL数据库笔记(一)

    二进制格式安装7.4 1、检查环境 2、下载对应的二进制包 3、 useradd -r -d /data/mysqldb -s /sbin/nologin mysql 创建账号 getent passwd mysql 确认 创建软连接; chown -R root: mysql/ 创建物理卷; 创建逻辑卷;   创建文件系统; mkdir /dat…

    2018-06-07
  • 第四周作业

    第四周作业
    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2018-06-07
  • 使用gpg工具实现公钥加密

    本实验通过gpg工具 实现 用非对称密钥加密方法,对Centos 7 主机的文件fstab,用Centos6的公钥加密,并且到Centos6 用私钥解密文件。

    2018-05-16
  • 特殊权限

    若是无缘再见,白堤柳帘垂泪好几遍;若是有缘再见,断桥残雪沉默了语言。

    2018-04-15