前面已经讲过了CentOS 7下LAMP环境的配置过程,一台简单的WEB服务器已搭建完成,但后期在网站部署的过程中也许会碰到各种各样头疼的问题。下面我们来讲讲怎么解决这些问题,以及如何高效地管理服务器和部署网站。


一、 表单上传文件限制

为了防止服务器遭到恶意攻击,以及用户上传非法的文件,导致服务器异常和带宽占用,我们必须对用户上传的文件进行过滤,Apache和PHP都默认在这方面进行了限制。那如何修改默认配置呢?接下来给大家讲讲CentOS7+LAMP下(其它LAMP环境的配置过程也类似)上传文件限制的修改过程。

首先,修改PHP的上传文件限制,只需修改php.ini配置文件即可。

# vi /etc/php.ini

根据你的需要修改以下内容:

upload_max_filesize = 允许上传的最大文件大小
post_max_size = 允许post的最大文件大小(一般与上面一项保持一致)
max_file_uploads = 允许单次文件上传个数
upload_tmp_dir = 上传临时文件目录(最好修改为“/var/www/tmp”,方便以后的权限配置)

注意:“upload_max_filesize”和“post_max_size”两项都需要进行配置

然后保存修改,如果修改了临时文件目录,别忘了给指定目录赋权限。

# chmod 777 临时文件目录

接下来,修改Apache的上传文件限制。

在 Fedora 和 Red Hat Enterprise Linux 上默认安装了SELinux,0SELinux是一种基于“域-类型”模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。

为了安全考虑,SELinux会禁止Apache向系统中创建文件,那Apache怎样才能上传文件呢?关闭SELinux可以实现,但不建议这样做,这会大大削弱服务器的安全性。我们可以使用chcon命令修改SELinux安全上下文。修改方式如下:

  • 步骤1:
# ls –Zd 上传文件目录(如“/var/www/html/upload”)

会看到以下内容:

drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/upload
  • 步骤二:使用chcon命令进行修改
# chcon –R –t httpd_sys_content_t_rw /var/www/html/upload
  • 步骤三:使用第一步的命令,查看修改结果,如果内容如下则表示修改成功
drwxr-xr-x root root system_u:object_r:httpd_sys_rw_content_t:s0 /var/www/html/upload
  • 步骤四:修改上传文件目录主人和用户组
# chown –R apache.apache /var/www/html/upload

到此,限制上传文件的配置就结束了,现在你就可以通过表单方式上传文件了,如果还是不能上传,可以通过以下命令查看你上传的文件类型是否被支持,并修改使其支持你的文件类型。

# vi /etc/mime.types

二、 通过SecureCRT管理服务器

SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。

在上一篇文章中已经对CentOS的SSH进行了配置,我们只须在Windows下使用SecureCRT进行连接即可。步骤如下:

  • 步骤一:下载和安装SecureCRT(请自行谷歌下载安装)

  • 步骤二:打开软件,点击“快速连接”

  • 步骤三:填写连接服务器信息

注意:这里的用户名须填写在上一篇文章中ssh配置文件里你允许访问的用户名,其它选项默认即可。

  • 步骤四:输入密码,完成连接

现在你就可以更便捷地访问你的远程服务器或虚拟机了,SecureCRT还默认提供上传文件的功能,但体验不是很好,下面介绍一种更方便快捷的文件上传方式:FTP文件上传。

三、 使用FTP上传文件

FTP 是File Transfer Protocol(文件传输协议)的英文简称,用于Internet上的控制文件的双向传输。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。

首先我们需要在CentOS上安装VSFTP服务器,VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,命令如下:

# yum –y install vsftp
# systemctl start vsftpd
# systemctl enable vsftpd

接着需要创建一个专门用于ftp上传文件的用户,该用户属于root用户组

# useradd -g root -M -d /var/www/html -s /sbin/nologin 用户名
// 一般以WEB根目录为FTP上传目录,用于部署网站
# passwd 密码
# chown -R 用户名.root /var/www/html
// 将html目录主人修改为指定FTP用户

注意:如果html目录中包含表单上传文件目录,需将该目录主人修改为apache,用户组为apache

配置vsftp

# vi /etc/vsftpd/vsftpd.conf

禁用匿名登录,将“anonymous_enable”设为“NO”,保存修改,同样需要使SELinux允许FTP上传文件到服务器,命令如下:

# getsebool -a | grep ftp
# setsebool -P ftpd_full_access on

FTP是一个C/S系统,用户机需要从外部访问FTP服务器,所以需要让FTP服务通过防火墙

# firewall-cmd --permanent --zone=public --add-service=ftp
# firewall-cmd –reload

这样一台FTP服务器就配置好了,可以通过各种FTP客户端软件进行访问,以Windows下的FileZilla为例,只需填写服务器IP、FTP用户名和密码就能成功连接,可以直接用拖拽方式上传/下载服务器文件了。

四、 总结

以上是一些CentOS 7的常见问题解决方案以及对服务器的一些优化,都是博主在使用CentOS过程中总结出来的经验,这些内容都是沧海一粟,要想让你的服务器更安全稳定,还需要更多系统运维方面的知识。

本文为作者kMacro原创,转载请注明来源:http://www.jianshu.com/p/4ee156c25e3d。

CentOS 7搭建LAMP环境(二)的更多相关文章

  1. CentOS下搭建LAMP环境详解

    前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发. •LAMP: Linux + Apache + PHP + Mysql. •系统: CentOS ...

  2. CentOS 7搭建LAMP环境(一)

    CentOS是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentO ...

  3. CentOS快速搭建LAMP环境

    LAMP --  Linux Apache MySQL PHP 在CentOS安装的顺序,我一般是Apache -> MySQL -> PHP 第一步.安装并配置Apache 1.使用yu ...

  4. centos下搭建lamp环境

    1 在线安装所有的服务 yum -y install httpd mysql mysql-server php php-mysql postgresql postgresql-server php-p ...

  5. CentOS下编译搭建LAMP环境

    搭建LAMP环境须知 搭建LAMP环境时,需要安装的所有软件都要按照一定的顺序安装,我们按照Apache->MySQL->PHP的顺序安装.但是在安装PHP之前,应先安装PHP5需要的最新 ...

  6. CentOS 6.6 yum 搭建LAMP环境

    CentOS 查看操作系统版本 [root@oa ~]# cat /etc/redhat-releaseCentOS release 6.6 (Final) 参考linux centos yum安装L ...

  7. CentOS 6.5 下源码搭建LAMP环境

    参考网站: http://wenku.baidu.com/link?url=Cvkqss2E9mnxXOZigMWPaCfqwsBxnm0sZ4aKE2oLAgQ888XxeC0DWOChxVqiHz ...

  8. centos 下 搭建 php 环境

    本文详细阐述在 Linux 系统中搭建 PHP 环境,由于 PHP 就是由 C 语言编写的,最初也是运行在 Linux 系统中,所以Linux 是 PHP 的最佳环境. 关于本文中使用到的软件,请点击 ...

  9. Linux手动搭建LAMP环境

    当你看到标题里的“手动搭建”,你是不是会想,难不成还有“自动搭建”?当然......不是,这里的“手动搭建”是指按部就班的搭建Apache.MySQL.PHP环境,是相对于集成软件包而言的.所以你是不 ...

随机推荐

  1. Tornado框架简介

    -------------------简介------------------- 1.概念:     Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器 ...

  2. jQuery的基础跟JS的正则

    大家好,我是唯芸星,这是我的一点点学过的知识,呈现给大家                   1:正则表达式 包括: 1:正则表达式包括两部分 ①:定义正则表达式的规则 ②:正则表达式的规模(i/g/ ...

  3. Windows下Docker承载ASP.NET Core 应用

    基本配置: Win7 64系统,Docker Toolbox, 主要步骤: [1]发布ASP.NET Core MVC应用,CD到项目根目录,执行dontnet publish [2]新建一个Dock ...

  4. 设置input的placeholder样式

    自定义input默认placeholder样式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 inpu ...

  5. Linux的netstat查看端口是否开放见解(0.0.0.0与127.0.0.1的区别)

    linux运维都需要对端口开放查看  netstat 就是对端口信息的查看 # netstat -nltp p 查看端口挂的程序 [root@iz2ze5is23zeo1ipvn65aiz ~]# n ...

  6. mybatis 一对多和多对一关联查询

    首先  数据库量表之间字段关系(没有主外键) studentmajor表的id字段对应student表里major字段 两个实体类 package com.model; import java.uti ...

  7. 201521123063 《Java程序设计》 第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 这次就不弄思维导图了,就直接总结了 遍历Map的方法 (1)使用键值对for循环 Map<String, ...

  8. 201521123002 《Java程序设计》第2周学习总结

    <Java程序设计>第2周学习总结 1. 本章学习总结 String 1.String类的对象是不可变(immutable)的 2.拼接(+号) "PG"+13; (一 ...

  9. 201521123064 《Java程序设计》第1周学习总结

    1. 本章学习总结 1.了解Java与C/C++的区别,Java语言所写程序较为繁琐,C/C++较为简洁. 2.学会使用cmd进行程序的编译及运行. 3.学会利用JDK辅助Java编程. 4.使用ec ...

  10. 201521123050 《Java程序设计》第10周学习总结

    1. 本周学习总结 2. 书面作业 1.finally,题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? 只有执行过try才会执行finally ...