创建FTP锁定主目录的用户

1、安装ftp服务

# yum install vsftpd -y

2、修改配置文件,禁止匿名登录;

# vi /etc/vsftpd/vsftpd.conf
设置anonymous_enable=NO #禁止匿名用户
设置 chroot_list_enable=YES #锁定用户于主目录
设置chroot_list_file=/etc/vsftpd/chroot_list #锁定目录用户的列表
“:wq”保存退出

3、编辑锁定用户列表

# vi /etc/vsftpd/chroot_list
添加锁定目录用户的名称,例如“ftpuser”
“:wq”保存退出

4、添加Linux用户

# useradd -d /usr/share/nginx/html ftpuser
# passwd ftpuser #设置用户密码

5、添加防火墙端口

# firewall-cmd –permanent –add-service=ftp
# firewall-cmd –complete-reload #重新载入防火墙
# firewall-cmd –list-all #查看是否启动端口

6、启动FTP服务

# systemctl start vsftpd
# systemctl enable vsftpd #设置服务自动启动

7、登录FTP验证服务可用性

心思

青囡裸踝无畏寒,

老成岁月却枉然。

无穷寒雨萧萧落,

踌躇心思踌躇年。

CentOS7取消PHP上传文件2M限制

1、登录CentOS,取得root权限;

2、编辑PHP.ini配置文件;

# cp /etc/php.ini /etc/php.ini.back  #备份php.ini文件,此步选作
# vi /etc/php.ini  #编辑php.ini文件

在vi编辑器中,使用“/”指令,输入查找内容“upload_max_filesize”找到对应的代码,设置如下,此处设置文件大小为16兆,可以根据需求修改。
upload_max_filesize = 16M
同上,使用相似方式修改如下两项配置。
post_max_size = 16M
max_execution_time = 300
使用“wq”指令退出文件编辑器。

3、设置nginx服务器,如果使用nginx服务器,使用如下指令编辑配置文件;
# vi /etc/nginx/nginx.conf

4、添加以下代码中的粗体部分,使用“:wq”,保存退出;

location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
client_max_body_size 16M; #set max upload files
fastcgi_param SCRIPT_FILENAME document_root$fastcgi_script_name;
include fastcgi_params;
}

5、重启动启动PHP服务,重新启动Nginx或者Apache服务。

# systemctl restart php-fpm
# systemctl restart nginx

6、使用PHP系统上传文件测试修改效果。

CentOS7升级PHP

CentOS7默认安装的PHP是5.4版本,但是很多应用应用系统要求高版本的PHP支持,那么需要添加第三方仓库,安装更高版本。

1、查询PHP版本

# php -v

执行后显示如下版本信息,可以使用 “php -v ->php.info”,将版本信息重定向输出到一个文件中,为系统回滚做必要的准备。
php.x86_64 5.4.16-46.1.el7_7 @updates
php-cli.x86_64 5.4.16-46.1.el7_7 @updates
php-common.x86_64 5.4.16-46.1.el7_7 @updates
php-fpm.x86_64 5.4.16-46.1.el7_7 @updates
php-mysql.x86_64 5.4.16-46.1.el7_7 @updates
php-pdo.x86_64 5.4.16-46.1.el7_7 @updates

2、添加软件源

# 以下两条命令执行其中一条即可
# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

3、移除现有版本PHP

# yum remove php-common -y

4、安装新版本PHP依赖包,此处以7.2版本为例

#yum install -y php72w php72w-opcache php72w-xml php72w-mcrypt php72w-gd php72w-devel php72w-mysql php72w-intl php72w-mbstring php72w-cli php72-fpm

5、再次查询PHP版本,显示新的版本信息

6、重新配置PHP相关配置文件

7、重启PHP相关服务,重启Web服务,测试可用性

Nginx构建Web服务器http重定向https

1、确认服务器类型是由Nginx搭建

2、编辑Nginx配置文件

# vi /etc/nginx/nginx.conf

3、将原有的80号端口的http服务的代码使用“#”注销掉,注意结构完整。将以下代码添加到配置文件中,将http服务映射到https服务。

server {
        listen       80;
	server_name your_domain_name;
	rewrite ^ https://$http_host$request_uri? permanent;
    }

4、映射之后,如果原有证书是针对端口生成的,那么从http进入的流量会显示证书无效,可以使用站点根目录重新生成证书。

# certbot certonly --webroot -w /usr/share/nginx/html -d your_domain_name

5、重新启动Nginx服务,无论访问http服务,还是https服务,都可以在网址前显示小锁头图标。

# systemctl restart nginx

centos7,nginx,mysql,php,certbot搭建网络服务器

1、安装CentOS7系统,取得root权限;

2、添加防火墙端口;

# sudo firewall-cmd --permanent --add-service=http # 打开 HTTP 端口
# sudo firewall-cmd --permanent --add-service=https # 打开 HTTPS 端口
# sudo firewall-cmd --complete-reload # 重新加载防火墙配置

3、安装MariaDB数据库并设置自动启动;

# sudo yum install mariadb mariadb-server #安装数据库
# sudo systemctl start mariadb #启动数据库
# sudo systemctl enable mariadb #设置自动启动
# with mysql_secure_installation #初始化数据库

4、安装Nginx;

# sudo yum install nginx -y #安装nginx
# sudo systemctl enable nginx #设置nginx服务自动启动
# sudo systemctl start nginx #启动nginx服务

5、安装PHP运行环境,并设置自动启动PHP-FPM;

# yum install php-fpm php-mysql php-cli php #安装PHP-FPM、PHP、PHP-CLI
# sudo systemctl enable php-fpm #设置PHP-FPM服务自动启动
# sudo systemctl start php-fpm #启动PHP-FPM服务

6、配置Nginx与PHP-FPM协同工作;

# sudo vi /etc/php.ini #编辑PHP配置文件
cgi.fix_pathinfo=0 #查找cgi.fix_pathinfo,并设置等于0
#vi中使用wq指令保存并退出编辑
# sudo vi /etc/php-fpm.d/www.conf #编辑www.conf配置文件
listen = /run/php-fpm/php-fpm.sock #使用Unix接口替换9000号端口

listen.owner = nginx #查找listen.owner,将值设置成nginx
listen.group = nginx #查找listen.group,将值设置成nginx

user = nginx #查找Unix用户关键字user,将值设置成nginx
group = nginx #查找Unix用户组关键字group,将值设置成nginx
#vi中使用wq指令保存并退出编辑
# sudo systemctl restart php-fpm #重启动PHP-FPM
# sudo vi /etc/nginx/conf.d/default.conf #创建nginx默认配置文件
#将一下代码粘贴在文件中,对文件中的参数进行必要修改,并保存退出。

server {
    listen	 80;
    server_name  your_server_ip; #此处用你的服务器IP地址或者域名替代your_server_ip
    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
# sudo systemctl restart nginx #重启动nginx服务

7、验证PHP运行

# sudo vi /usr/share/nginx/html/test.php #创建一个测试网页
#在文件中输入如下代码并保存退出
<?php phpinfo(); ?>
http://server_IP_address/test.php #在浏览器中输入网址,使用服务器IP或者域名替换server_IP_address,如果打开服务器PHP统计信息页,则服务器搭建完成

8、生成证书

# sudo yum install certbot #安装certbot,准备生成证书
# 使用以下两种方法之一生成证书
# sudo certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com #可以指定服务器路径和域名生成证书
# sudo certbot certonly --standalone -d example.com -d www.example.com #也可以不指定路径,对服务器443端口生成证书
# 成功生成证书后会提示证书保存路径,请记录,后续待用

9、启动https服务

# sudo vi /etc/nginx/conf.d/default.conf #修改nginx默认配置文件
#将一下代码粘贴在文件中末尾的空行中,对文件中的参数进行必要修改,并保存退出。
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name your_server_ip; #此处用你的服务器IP地址或者域名替代
root /usr/share/nginx/html;
index index.php index.html index.htm;

ssl_certificate "your_cert_path_and_filename"; #设置证书路径和文件名
ssl_certificate_key "your_private_key_path_and_filename"; #设置私钥证书路径和文件名
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
  }
}