Q 发布的文章

一、查询一个栏目所有父级栏目

SELECT
	T1.lvl,
	T2.* 
FROM
	(
	SELECT
		@r AS _id,
		( SELECT @r := `上级ID字段名` FROM `栏目表名` WHERE `栏目ID字段名` = _id ) AS parent_id,
		@l := @l + 1 AS lvl 
	FROM
		( SELECT @r := `要查询的栏目ID值`, @l := 0 ) vars,
		`栏目表名` h 
	WHERE
		@r <> 0 
	) T1
	JOIN `栏目表名` T2 ON T1._id = T2.`栏目ID字段名` 
ORDER BY
	`栏目ID字段名`;

二、查询一个栏目所有子级栏目

SELECT
	* 
FROM
	(
	SELECT
		t1.*,
		CASE 
		WHEN `栏目ID字段名` = @pids THEN 1 
		WHEN find_in_set( `上级ID字段名`, @pids ) > 0 THEN @pids := concat( @pids, ',', `栏目ID字段名`) ELSE 0 
		END ischild 
	FROM
		( SELECT * FROM `栏目表名` t ORDER BY `上级ID字段名`, `栏目ID字段名` ) t1,
		( SELECT @pids := 要查询的栏目 ID值 ) t2 
	) t3 
WHERE
	ischild != 0

上述代码中带中文的地方要根据实际数据库结构修改

一、安装vsftpd

yum install -y vsftpd 

二、进入vsftpd配置文件目录

cd /etc/vsftpd

三、修改vsftpd.conf配置文件

vim /etc/vsftpd/vsftpd.conf

四、输入以下配置范本:

#启用被动传输模式,设置被动模式使用的端口范围 
#这些端口必须在防火墙和阿里云盾中放行 
pasv_enable=YES 
pasv_max_port=22000 
pasv_min_port=21000 
#禁止匿名用户登录 
anonymous_enable=NO 
#允许本地用户模式 
local_enable=YES 
write_enable=YES 
#本地用户创建文件umask 
local_umask=022 
#虚拟用户创建文件umask 
anon_umask=022 
#启动“禁止名单”,名单文件为ftpusers和user_list 
userlist_enable=YES 
#设定启用虚拟用户功能 
#开启虚拟用户功能 
guest_enable=YES 
#虚拟用户的宿主本地用户名 
guest_username=www 
#虚拟用户配置文件夹 
user_config_dir=/etc/vsftpd/vconf 
#指定pam文件 
pam_service_name=vsftpd 
# 是否激活目录欢迎信息功能 
# 当用户用CMD模式首次访问服务器上某个目录时,FTP服务器将显示欢迎信息 
# 默认情况下,欢迎信息是通过该目录下的.message文件获得的 
# 此文件保存自定义的欢迎信息,由用户自己建立 
dirmessage_enable=NO 
# 是否让系统自动维护上传和下载的日志文件 
# 默认情况该日志文件为/var/log/vsftpd.log,也可以通过下面的xferlog_file选项对其进行设定 xferlog_enable=YES 
#xferlog_file=/var/log/vsftpd.log 
#主动模式进行数据传输时使用20端口 
connect_from_port_20=YES 
#采用标准格式记录日志 
xferlog_std_format=YES 
#启用以ASCII方式传输数据 
ascii_upload_enable=YES 
ascii_download_enable=YES 
# 用户登录FTP服务器后是否具有访问自己目录以外的其他文件的权限 
# 设置为YES时,用户被锁定在自己的home目录中,vsftpd将在下面chroot_list_file选项值的位置寻找chroot_list文件 
# 必须与下面的设置项配合 
chroot_list_enable=YES 
# 与上面的设置配合 
chroot_list_file=/etc/vsftpd/chroot_list 
# 锁定在主目录后必须设置以下设置才可以有写入权限 
allow_writeable_chroot=YES 
# 是否允许监听。 
# 如果设置为YES,则vsftpd将以独立模式运行,由vsftpd自己监听和处理IPv4端口的连接请求 
listen=NO 
# 设定是否支持IPV6。如要同时监听IPv4和IPv6端口, 
# 则必须运行两套vsftpd,采用两套配置文件 
# 同时确保其中有一个监听选项是被注释掉的 
listen_ipv6=YES 
# 是否使用tcp_wrappers作为主机访问控制方式。 
# tcp_wrappers可以实现linux系统中网络服务的基于主机地址的访问控制 
tcp_wrappers=YES

五、保存并开启vsftpd

systemctl start vsftpd

六、创建用户

useradd -d /dirtoroot -s /sbin/nologin -p 123456 -g groupname ftpusername

七、使用ftp软件测试连接是否成功。

在PHP中使用curl进行HTTP请求,`$usePost`设置为true可以使用post请求。

<!--?php
header("Content-type: text/html; charset=utf-8"); //设置返回内容编码
/**
 * 模拟HTTP请求
 * @param string $url
 * @param array $post_data
 */
function request($url = '',$post_data = array(),$usePost=false) {
    if (empty($url) || empty($post_data)) {
        return false;
    }
    $ch = curl_init();//初始化curl
    curl_setopt($ch, CURLOPT_URL,$url);//设置网址
    curl_setopt($ch, CURLOPT_HEADER, 0);//不要返回的Header区域内容
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串
    curl_setopt($ch, CURLOPT_POST, $usePost);//是否以post方式提交数据
    curl_setopt($ch, CURLOPT_ENCODING, "");//设置自动解压压缩的返回内容
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//设置提交的数据
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书下同
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书下同
    $data = curl_exec($ch);//运行curl
    curl_close($ch);
    return $data;
}

$url = 'https://some.domain/somepath';
$post_data = array('param1'=>'value1','param2'=>'value2');
$res = request($url, $post_data); 
echo $res;

 

一、Nginx安装

yum install nginx -y

二、PHP-FPM安装

yum install epel-release -y 
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

安装php7.1 

yum install php71w-fpm php71w-gd php71w-common php71w-mysql 

安装php7.2

yum install php72w-fpm php72w-gd php72w-common php72w-mysqlnd 

三、安装MariaDB

vim /etc/yum.repos.d/maradb.repo

输入以下内容保存

# MariaDB 10.3 CentOS repository list - created 2019-05-11 08:24 UTC 
# http://downloads.mariadb.org/mariadb/repositories/ 
[mariadb] 
name = MariaDB 
baseurl = http://yum.mariadb.org/10.3/centos7-amd64 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1
yum install -y MariaDB-server MariaDB-client

 

一、创建用户 命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

说明:
username - 你将创建的用户名,
host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%.
password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.


示例,其中`%`代表授权的ip为无限制:

create user 'username'@'%' identified by 'user password'; GRANT ALL ON *.* TO 'username'@'%' with grant option; 
flush privileges;

二、 授权 命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' 

说明:
privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;
databasename - 数据库名,
tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
例子:

GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; GRANT ALL ON *.* TO 'pig'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

三、设置与更改用户密码 命令:

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

如果是当前登陆用户用

SET PASSWORD = PASSWORD("newpassword"); 

 例子:

SET PASSWORD FOR 'username'@'%' = PASSWORD("123456"); 
flush privileges; //刷新权限

四.撤销用户权限 命令:

REVOKE privilege ON databasename.tablename FROM 'username'@'host'; 

说明: privilege, databasename, tablename - 同授权部分.
例子:

REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):

GRANT SELECT ON test.user TO 'pig'@'%'

则在使用命令:

REVOKE SELECT ON *.* FROM 'pig'@'%';

并不能撤销该用户对test数据库中user表的SELECT 操作. 相反,如果授权使用的是

GRANT SELECT ON *.* TO 'pig'@'%';

则命令:

REVOKE SELECT ON test.user FROM 'pig'@'%';

也不能撤销该用户对test数据库中user表的Select 权限. 具体信息可以用命令

SHOW GRANTS FOR 'pig'@'%'; 

查看.

五.删除用户 命令:

DROP USER 'username'@'host';