一、搭建php-fpm工做方式的LAMP环境,实现wordpress正常访问
1)安装程序包php
[root@silassu ~]# yum install mariadb-server php-fpm httpd php-mysql
2)Mysql服务的搭建html
[root@silassu ~]# cat /etc/my.cnf.d/server.cnf # # These groups are read by MariaDB server. # Use it for options that only the server (but not clients) should see # # See the examples of server my.cnf files in /usr/share/mysql/ # # this is read by the standalone daemon and embedded servers [server] # this is only for the mysqld standalone daemon [mysqld] # this is only for embedded server [embedded] # This group is only read by MariaDB-5.5 servers. # If you use the same .cnf file for MariaDB of different versions, # use this group for options that older servers don't understand [mysqld-5.5] # These two groups are only read by MariaDB servers, not by MySQL. # If you use the same .cnf file for MySQL and MariaDB, # you can put MariaDB-only options here [mariadb] [mariadb-5.5] [root@silassu ~]# systemctl start mariadb.service [root@silassu ~]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 50 *:3306 *:* [root@silassu ~]# mysql_secure_installation [root@silassu ~]# mysql -uroot -p123qwe MariaDB [(none)]> create database wordpress; MariaDB [(none)]> GRANT ALL ON *.* to 'wordpress'@'120.79.170.206' IDENTIFIED BY '123qwe'; MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'wpuser'@'120.79.170.206' IDENTIFIED BY '123qwe'; MariaDB [(none)]> FLUSH PRIVILEGES;
3)Php-fpm服务器的搭建mysql
[root@silassu ~]# vi /etc/php-fpm.d/www.conf #修改相关参数 [root@silassu ~]# mkdir -pv /var/lib/php/session [root@silassu ~]# chown apache:apache /var/lib/php/session/ [root@silassu ~]# systemctl start php-fpm.service [root@silassu ~]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 128 127.0.0.1:9000 *:* LISTEN 0 50 *:3306 *:* [root@silassu ~]# systemctl status php-fpm.service ● php-fpm.service - php-fpm Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled) Active: activating (start) since Mon 2018-12-17 15:14:01 CST; 1min 14s ago Main PID: 10980 (code=exited, status=78); : 11027 (php-fpm) CGroup: /system.slice/php-fpm.service ├─11027 php-fpm: master process (/etc/php-fpm.conf) ├─11029 php-fpm: pool www ├─11030 php-fpm: pool www ├─11031 php-fpm: pool www ├─11032 php-fpm: pool www └─11033 php-fpm: pool www Dec 17 15:14:01 silassu systemd[1]: Starting php-fpm...
4)搭建httpd服务linux
[root@silassu ~]# httpd -M | grep fcgi proxy_fcgi_module (shared) [root@silassu ~]# cat /etc/httpd/conf.d/fcgi.conf Listen 8080 <VirtualHost *:8080> DirectoryIndex index.php ServerName www.silassu.com DocumentRoot /var/www/html ProxyRequests off ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1 ProxyPassMatch ^/(ping|pmstatus)$ fcgi://127.0.0.1:9000/$1 <Directory "/var/www/html"> options none Allowoverride None Require all granted </Directory> </VirtualHost>
5)建立测试文件sql
[root@silassu ~]# cat /var/www/html/index.php <?php phpinfo(); ?> [root@silassu ~]# cat /var/www/html/mysql.php <?php $conn = mysql_connect('120.79.170.206','wordpress','123qwe'); if ($conn) echo "Connected to mysql."; else echo "Fail"; ?>
6)搭建wordpressshell
[root@silassu ~]#unzip wordpress-5.0.1-zh_CN.zip -d /var/www/html/
二、什么是DML?经常使用SQL举例,每一个命令至少1个例子,最多不超过3个例子数据库
DML( Data Manipulation Language):数据库操做语言:SQL中处理数据库中的数据;其主要命令有SELECT,INSERT,UPDATE,DELETE等。 SELECT 1)查询指定表的全部数据 SELECT * FROM table_name 2)查询指定字段的数据,字段名能够显示别名 SELECT field1,field2,…FROM table_name; 3)根据指定条件查询数据,分组,排序 SELECT field,…FROM table_name WHERE condition GROUP BY field HAVING COUNT(*) >= '' ORDER BY field [ASC|DESC]; condition:用于指明挑选条件 GROUP BY:分组 ORDER BY:排序 ASC:升序 DESC:降序
INSERT 1)默认根据表结构插入数据 INSERT INTO table_name VALUES (value1,value2,value3,value4); 2)往指定字段插入数据,剩余字段不能为非空 INSERT INTO table_name (field1,field2,field3,field4) VALUES (value1,value2,value3,value4);
UPDATE :表数据更新 UPDATE table_name SET field=new_value WHERE condition; condition:用于指明挑选条件
DELETE:删除行数据 DELETE FROM table_name WHERE condition condition:用于指明挑选条件
DDL( Data Definition Language):数据库服务器端命令的一种语言类型,表示数据定义语言,主要用于管理数据库组件,例如数据库,表,索引,视图,用户,存储过程等;经常使用命令有CREATE,ALTER,DROP等; CREATE(建立) CREATE DATABASE 建立数据库 CREATE TABLE 建立表 CREATE USER 建立用户
SHOW(查看) SHOW CREATE DATABASE 查看建立的数据库 SHOW CREATE TABLE 查看建立的表
ALTER(修改) ALTER DATABASE 修改数据库 ALTER TABLE 修改表
DROP(删除) DROP DATABASE 删除数据库 DROP TABLE 删除表 DROP USER 删除用户
三、简述ftp的主动和被动模式,并实现基于pam认证的vsftpdapache
FTP(File transfer Protocl):文件传输协议,是用于在网络中控制文件的双向传输的协议。FTP协议运行在TCP/21和20端口,一般来讲21端口是命令端口、20端口是数据端口,但根据FTP的工做模式的不一样,数据端口也有可能跟着改变。 链接方式: 命令链接:传输命令 数据链接:传输数据 工做模式: 主动模式(PORT):服务器向客户端发起数据传输请求;服务器端口是固定的; 缺点:服务器带客户端的FTP链接很容易被传输过程当中的路由器、防火墙所影响或拦截。
被动模式(PASV):客户端向服务器端发起数据传输请求;服务器端口:半随机,是随机的; 为了解决主动模式所面临的服务器到客户端的链接会被拦截阻塞的问题,FTP发展出了被动模式。在被动模式中,命令链接和数据链接都由客户端来发起,这样就能够解决从服务器到客户端的数据端口的入方向链接被防火墙拦截的问题。
vfs 配置 主程序:/usr/sbin/vsftpd 主配置文件:/etc/vsftpd/vsftpd.conf 数据根目录:/var/ftp Systemd Unit File :/usr/lib/systemd/systemd/vsftpd.service 禁止登录用户列表:/etc/vsftpd/ftpusers 用户列表/etc/vsftpd/user_list 1)数据库设置
[root@silassu ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 173 Server version: 5.6.21-log MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> CREATE DATABASE vsftpd; Query OK, 1 row affected (0.00 sec) MySQL [(none)]> USE vsftpd; Database changed MySQL [vsftpd]> CREATE TABLE users(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,name CHAR(50) BINARY NOT NULL,password CHAR(48) BINARY NOT NULL); Query OK, 0 rows affected (0.02 sec) MySQL [vsftpd]> DESC users; +----------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | char(50) | NO | | NULL | | | password | char(48) | NO | | NULL | | +----------+----------+------+-----+---------+----------------+ 3 rows in set (0.00 sec) MySQL [vsftpd]> INSERT INTO users(name,password) VALUE('PaulCormier',password('RedHat')); Query OK, 1 row affected (0.08 sec) MySQL [vsftpd]> INSERT INTO users(name,password) VALUE('CamilleGutt',password('CentOS')); Query OK, 1 row affected (0.00 sec) MySQL [vsftpd]> SELECT * FROM users; +----+-------------+-------------------------------------------+ | id | name | password | +----+-------------+-------------------------------------------+ | 1 | PaulCormier | *023141D26FD2A879F5D82DE673D789E1508C9008 | | 2 | CamilleGutt | *2273FEDA7433D659EE517A065F38BE5B8035F2C2 | +----+-------------+-------------------------------------------+ 2 rows in set (0.00 sec) MySQL [vsftpd]> GRANT SELECT ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY 'RedHat'; Query OK, 0 rows affected (0.00 sec) MySQL [vsftpd]> GRANT SELECT ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'RedHat'; Query OK, 0 rows affected (0.00 sec) MySQL [vsftpd]>
2)安装vsftpd服务
[root@silassu ~]# setenforce 0 [root@silassu ~]# iptables -F [root@silassu ~]# yum install mariadb-devel pam-devel openssl-devel -y [root@silassu ~]# tar -xf pam_mysql-0.7RC1.tar.gz [root@silassu ~]# cd pam_mysql-0.7RC1/ [root@silassu pam_mysql-0.7RC1]# ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security [root@silassu pam_mysql-0.7RC1]# make && make install [root@silassu ~]# cd /usr/lib64/security/ [root@silassu security]# ls pam_access.so pam_deny.so pam_filter pam_lastlog.so pam_mkhomedir.so pam_pwhistory.so pam_selinux.so pam_tally2.so pam_unix_auth.so pam_wheel.so pam_cap.so pam_echo.so pam_filter.so pam_limits.so pam_mysql.so pam_pwquality.so pam_sepermit.so pam_time.so pam_unix_passwd.so pam_xauth.so pam_chroot.so pam_env.so pam_ftp.so pam_listfile.so pam_namespace.so pam_rhosts.so pam_shells.so pam_timestamp.so pam_unix_session.so pam_console.so pam_exec.so pam_group.so pam_localuser.so pam_nologin.so pam_rootok.so pam_stress.so pam_tty_audit.so pam_unix.so pam_cracklib.so pam_faildelay.so pam_issue.so pam_loginuid.so pam_permit.so pam_securetty.so pam_succeed_if.so pam_umask.so pam_userdb.so pam_debug.so pam_faillock.so pam_keyinit.so pam_mail.so pam_postgresok.so pam_selinux_permit.so pam_systemd.so pam_unix_acct.so pam_warn.so [root@silassu ~]# yum install vsftpd -y [root@silassu ~]# mkdir /ftproot/vuser -pv mkdir: created directory ‘/ftproot’ mkdir: created directory ‘/ftproot/vuser’ [root@silassu ~]# useradd -s /sbin/nologin -d /ftproot/vuser/ vuser useradd: warning: the home directory already exists. Not copying any file from skel directory into it. [root@silassu ~]# chmod u-w /ftproot/vuser/ [root@silassu ~]# cd /etc/pam.d/ [root@silassu pam.d]# vim vsftpd.mysql [root@silassu pam.d]# cat vsftpd.mysql auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=redhat host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=redhat host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 [root@silassu pam.d]# vim /etc/vsftpd/vsftpd.conf [root@silassu pam.d]# cat /etc/vsftpd/vsftpd.conf ...... pam_service_name=vsftpd.mysal guest_enable=NO guest_username=vuser userlist_enable=YES tcp_wrappers=YES [root@silassu ~]# cd [root@silassu ~]# cd /etc/vsftpd/vusrs_conf/ [root@silassu vusrs_conf]# vim PaulCormier anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES [root@silassu vusrs_conf]# vim CamilleGutt anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO [root@silassu ~]# systemctl start vsftpd
3)客户端测试
[root@SilasSZL ~]# yum install ftp -y [root@SilasSZL ~]# ftp 192.168.2.100 Connected to 192.168.2.100 (192.168.2.100). 220 (vsFTPd 3.0.2) Name (10.9.3.244:root): PaulCormier 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> lcd /etc Local directory now /etc ftp> put issue local: issue remote: issue 227 Entering Passive Mode (192.168.2.100,24,224). 150 Ok to send data. 226 Transfer complete. 47 bytes sent in 0.000194 secs (242.27 Kbytes/sec) ftp> mkdir sharetest 257 "/upload/sharetest" created ftp> rm sharetest 250 Remove directory operation successful. [root@SilasSZL ~]# ftp 192.168.2.100 Connected to 192.168.2.100 (192.168.2.100). 220 (vsFTPd 3.0.2) Name (192.168.2.100:root): CamilleGutt 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> lcd /etc Local directory now /etc ftp> mkdir share 550 Permission denied. ftp> put issue local: issue remote: issue 227 Entering Passive Mode (192.168.2.100,24,175). 550 Permission denied.
四、简述NFS服务原理及配置vim
NFS(Network File System):网络文件系统,它容许网络中的计算机之间经过TCP/IP网络共享资源。在NFS中,客户端能够透明读写服务器端上的文件,就像访问本地文件同样,经过挂载的方式将服务器的文件挂载到本地,如同本地磁盘同样。 NFS服务的优缺点 优势: 节省本地存储空间,将经常使用的数据存放在一台能够经过网络访问的服务器上 简单容易上手 方便部署很是快速,维护十分简单 缺点: 容易发生单点故障,须要作备份处理 在高并发环境中效率性能有限 客户端没有认证机制,数据经过明文传输,缺少安全性 对数据的完整性不作验证 多台机器挂载NFS服务器时,链接管理维护比较麻烦
1)nfs服务端配置安全
[root@silassu ~]# yum -y install nfs-utils.x86_64 [root@silassu ~]# yum -y install rpcbind [root@silassu ~]# mkdir /tmp/test [root@silassu ~]# vi /etc/exports [root@silassu ~]# cat /etc/exports /tmp/text 192.168.2.104(rw,sync,root_squash) [root@silassu ~]# systemctl start rpcbind [root@silassu ~]# systemctl status nfs-server.service
2)客户端挂载共享目录
[root@silassu ~]# showmount -e 192.168.2.103 Export list for 192.168.2.103: /tmp/test 192.168.2.104 [root@silassu ~]# mkdir /tmp/test [root@silassu ~]# mount -t nfs 192.168.2.103:/tmp/test /tmp/test [root@silassu ~]# cd /tmp/test [root@silassu test]# ls [root@silassu test]# vi nfs-share.txt this is a client nfs share file
3)服务端验证
[root@silassu ~]# cd /tmp/test/ [root@silassu test]# ls nfs-share.txt [root@silassu test]# cat nfs-share.txt this is a client nfs share file
五、简述samba服务,并实现samba配置
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通讯协议,它为局域网内的不一样计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机经过该协议能够访问服务器上的共享文件系统、打印机及其余资源。例如Windows和Linux,Windows和Unix等,能够使用samba服务器来解决两者传输问题。 SAMBA主要提供的是SMB/CIFS或者NETBIOS协议的。 samba用户管理:smbpasswd命令; smbpasswd [options] USERNAME -a:添加 -x:删除 -d:禁用 -e:启用 pdbedit -L:列出samba服务中的全部用户; -a, --create:添加用户为samba用户; -u, --user=USER:要管理的用户; -x, --delete:删除用户; -t, --password-from-stdin:从标准输出接收字符串做为用户密码;使用空提示符,然后将密码输入两次;
samba服务的程序安装和配置
[root@silassu ~]# yum install samba -y [root@silassu ~]# rpm -ql samba /etc/openldap/schema /etc/openldap/schema/samba.schema /etc/pam.d/samba /usr/bin/eventlogadm /usr/bin/smbstatus /usr/lib/systemd/system/nmb.service /usr/lib/systemd/system/smb.service ...... [root@silassu ~]# rpm -ql samba-common /etc/logrotate.d /etc/logrotate.d/samba /etc/samba /etc/samba/lmhosts /etc/samba/smb.conf /etc/samba/smb.conf.example /etc/sysconfig/samba /usr/lib/tmpfiles.d/samba.conf /usr/share/man/man5/lmhosts.5.gz /usr/share/man/man5/smb.conf.5.gz /usr/share/man/man5/smbpasswd.5.gz /usr/share/man/man7/samba.7.gz /var/lib/samba /var/lib/samba/lock /var/lib/samba/private /var/log/samba /var/log/samba/old /var/run/samba /var/run/winbindd [root@silassu ~]# iptables -F [root@silassu ~]# setenforce 0 [root@silassu ~]# mkdir /share [root@silassu ~]# vim /etc/samba/smb.conf [root@silassu ~]# cat /etc/samba/smb.conf ...... [share] comment=share path=/share guest ok=yes read only=no [root@silassu ~]# testparm [root@silassu ~]# useradd samba [root@silassu ~]# pdbedit -a samba new password: retype new password: Unix username: samba NT username: Account Flags: [U User SID: S-1-5-21-3402031604-584554795-1042339899-1000 Primary Group SID: S-1-5-21-3402031604-584554795-1042339899-513 Full Name: Home Directory: \\silassu\samba HomeDir Drive: Logon Script: Profile Path: \\silassu\samba\profile Domain: SILASSU Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: Wed, 06 Feb 2036 23:06:39 CST Kickoff time: Wed, 06 Feb 2036 23:06:39 CST Password last set: Wed, 19 Dec 2018 11:51:23 CST Password can change: Wed, 19 Dec 2018 11:51:23 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [root@silassu ~]# systemctl start smb