zoukankan      html  css  js  c++  java
  • CentOS 7搭建LAMP环境(二)

    前面已经讲过了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。

  • 相关阅读:
    SharedPreferences.Editor 的apply()与commit()方法的区别
    Android 解决方法数 65536 (65k) 限制
    Android RatingBar 自定义样式
    自定义 checkbox 新玩法 ?
    Android 透明度百分比对应的 十六进制
    Linux文件权限rwx简单了解
    Linux学习之Vim使用
    Linux学习之用户管理
    Linux学习之sudo命令
    一元稀疏多项式加法运算
  • 原文地址:https://www.cnblogs.com/zkh101/p/7638100.html
Copyright © 2011-2022 走看看