- 搭建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
- 添加/etc/httpd/conf.d/fcgi.conf配置文件,内用类似:
DirctoryIndex index.php
ProxyRequests off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$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>
- 压力测试
ab -n 100000 -c 20 http://192.168.0.200/index.php
- 测试连接
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
- [global]
-
客户机使用方式:
安装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= :超时时间
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/103363