前面已经讲过了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. PHP文件操作整理

    三种目录表示: ./     代表当前目录 ../    代表父级目录 /   代表根目录 常用的文件操作函数有 通用读写:                  fpen()  fwrite() fre ...

  2. JS中的函数和BOM

    文档注释:开头两个*.写在函数上方,在调用函数时, 可以看到文档中的描述信息:function aaa(){ } [函数的声明及调用] 1.函数的声明格式: function 函数名(参数1,参数2, ...

  3. Azure Powershell对ARM资源的基本操作

    本分主要介绍Windows Azure Powershell对ARM资源的基本操作 1.登陆ARM模式,命令:Login-AzureRmAccount -EnvironmentName AzureCh ...

  4. 基于NIOS-II的示波器:PART1 按键&显示屏驱动&界面

    NIOS II 相关资料以及基础入门 <NiosII的奇幻漂流> <Nios II那些事儿> 本文所有的硬件基础以及工程参考来自魏坤示波仪,重新实现驱动并重构工程. 基于NIO ...

  5. [iOS] file patterns: The `public_header_files` pattern did not match any file.

    由于之前集成私有pod,遇到问题, 默认的头文件目录设置为:s.public_header_files = ‘Pod/Classes/**/*.h’:但是如果Classes目录中,你的代码文件夹层次结 ...

  6. 避免subList/subString陷阱

    避免subList/subString陷阱 java.util.List 接口提供了一个实例方法 List<E> subList(int fromIndex, int toIndex), ...

  7. 201521123107 《Java程序设计》第5周学习总结

    第5周作业-继承.多态.抽象类与接口 1.本周学习总结 2.书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改 ...

  8. 团队作业8——第二次项目冲刺(Bata版本)--第二天

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 学号 成员 贡献比 201421123001 廖婷婷 15% 201421123002 翁珊 17% 201421123004 ...

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

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  10. iOS启动图-从网络获取的gif图,在本地一直是没有动画,还模糊的

    背景介绍:APP启动页,常有静态图加链接,gif加链接,短视频等几种形式.我们APP前期只有静态图这一种,功能已经实现.之后,有了添加gif的需求,按理说,只要添加一个类型判断,按照数据类型,通过不同 ...