第十一周作业

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
下一篇 2018-07-20

相关推荐

  • sell 进阶

    删除shell函数:命令格式:unsrt function_name 创建函数:例 function func2 { echo fun2;}   fork  炸弹;:(){ :|&};: 脚本: cat  Bomb.sh #!/bin/bash ./$0./$0& 信号捕捉 trap ‘ehcho trap 15&#82…

    2018-05-10
  • 基础不牢,地动山摇——软链接与硬链接。

      inode 说明   说到软链接与硬链接就不得不提到一个概念——inode (索引节点号)。简单说linux系统中索引节点号与身份证号码一样,同一分区中文件将会被分配唯一的号码就是索引节点号。文件名是为了方便人使用,而索引节点号是计算机来区分文件的标志。 1.硬链接 硬链接(hard link)就是一个文件的一个或多个文件名。下面用试验说明硬链接特性 例…

    2018-07-29
  • 第三周,一些练习例题以及用户与组管理命令

    一、练习 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ● 实现命令 who | cut -d ” ” -f1 | sort –u ● 命令分解 who:显示已经登录的用户信息; |:管道,连接程序,用于实现将前一个命令的输出直接定向后一个程序当作输入数据流; cut:截取who命令显示结…

    2018-05-26
  • cp 常用选项

    cp 选项:

    Linux笔记 2018-04-01
  • Docker容器技术之Dokcer networking

    我们知道,docker容器中的资源用namespace进行了隔离,每一个容器中都有自己独立的一套网络资源,docker容器如何实现单机通讯与跨主机通讯呢?本节内容将为你解答这个问题。

    2018-08-08