共计 7193 个字符,预计需要花费 18 分钟才能阅读完成。
CentOS 是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同,在于 CentOS 并不包含封闭源代码软件。
CentOS 7 的安装在这里不进行介绍 (可自行 Google),这篇文章主要介绍 CentOS 7 最小化安装下 LAMP 环境的配置以及常见问题的解决方案。
一、配置网络
安装完 CentOS7 后第一件事情就是配置服务器网络,可以使用 ifconfig 命令查看当前网络信息,但 CentOS7 最小化默认是不提供该命令的,我们可以执行以下命令安装 ifconfig 工具。
# yum install –y net-tools // 完成后就可以使用 ifconfig 命令了
现在配置网络,注意需要 root 用户才能修改配置文件。
# cd /etc/sysconfig/network-scripts/
# cp ./ifcfg-enp0s3 ./ifcfg-enp0s3.bak // 修改配置文件前进行备份
# vi ifcfg-enp0s3
然后根据需要进行修改,这里采用默认配置(如果“ONBOOT”为“no”,将其改为“ye”,这样在下次启动服务器时就会自动打开网络服务),配置完成后保存,重启网络服务。
# service network restart
二、更新和升级 CentOS
定期的更新升级,安装已有软件的最新版本以及系统安装升级,可以让你的服务器更安全稳定。
# yum –y update && yum –y upgrade
三、修改 ssh 配置
CentOS 7 默认允许任何帐号透过 ssh 登入,为了不让 root 帐号被黑客暴力入侵,我们必须禁用 root 帐号的 ssh 功能,事实上 root 也没必要使用 ssh 登入服务器,因为只要使用 su (当然需要输入 root 的密码) 普通帐号便可以拥有 root 权限。
# vi /etc/ssh/ssh_config
将“#Protocol 1,2”改为“Protocol 2”,“#PermitRootLogin yes”改为“PermitRootLogin no”,添加“AllowUsers 你的普通账户名”,然后保存,重启 ssh 服务。
# vi systemctl restart sshd.service
四、安装 Apache HTTP 服务器
httpd 是 Apache 服务器的主程序,被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。接下来安装 httpd。
# yum –y install httpd
完成后开启 httpd 服务,并且让其在重启系统时自启动。
# systemctl start httpd.service
# systemctl enable httpd.service
接着配置防火墙允许服务器被外部访问
# firewall-cmd --permanent --add-service=http --add-port=80/tcp
//apache 默认为 80 端口,如果你修改了默认端口,这里要改为相应端口号
# firewall-cmd –reload
# systemctl restart httpd.service
五、安装 PHP
PHP 是一种通用开源脚本语言,使用广泛,主要适用于 Web 开发领域。Linux 操作系统下安装 PHP 非常简单,只需执行一下命令即可。
# yum –y install php
# systemctl restart httpd.service
六、安装 MariaDB 数据库
MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。MariaDB 的目的是完全兼容 MySQL,包括 API 和命令行,是目前最受关注的 MySQL 数据库衍生版,也被视为开源数据库 MySQL 的替代品。在 CentOS7 下安装 MariaDB,如下所示:
# yum –y install mariadb-server mariadb
# systemctl start mariadb.service
# systemctl enable mariadb.service
#firewall-cmd --add-service=mysql // 允许 MariaDB 被远程访问
安装完成后记得修改数据库密码。
# set password for 'root'@'localhost' =password('密码');
# systemctl restart mariadb.service
七、安装 phpMyAdmin
phpMyAdmin 是一个以 PHP 为基础,以 Web-Base 方式架构在网站主机上的 MySQL 的数据库管理工具,让管理者可用 Web 接口管理 MySQL 数据库。安装方式如下:
# yum –y install phpmyadmin
八、总结
到此,CentOS 7 + LAMP 环境就搭建完成了,可以将你的 PHP 网站部署到“/var/www/html”下,这样一台最基本的 WEB 服务器就搭建好了。当然,部署网站过程中可能会遇到一些问题,比如不能上传文件、上传文件类型大小限制等问题,以及要如何高效便捷地管理你的远程服务器,将在下一篇文章给大家介绍。
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-10/147273p2.htm
前面已经讲过了 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 过程中总结出来的经验,这些内容都是沧海一粟,要想让你的服务器更安全稳定,还需要更多系统运维方面的知识。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-10/147273.htm
CentOS 是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同,在于 CentOS 并不包含封闭源代码软件。
CentOS 7 的安装在这里不进行介绍 (可自行 Google),这篇文章主要介绍 CentOS 7 最小化安装下 LAMP 环境的配置以及常见问题的解决方案。
一、配置网络
安装完 CentOS7 后第一件事情就是配置服务器网络,可以使用 ifconfig 命令查看当前网络信息,但 CentOS7 最小化默认是不提供该命令的,我们可以执行以下命令安装 ifconfig 工具。
# yum install –y net-tools // 完成后就可以使用 ifconfig 命令了
现在配置网络,注意需要 root 用户才能修改配置文件。
# cd /etc/sysconfig/network-scripts/
# cp ./ifcfg-enp0s3 ./ifcfg-enp0s3.bak // 修改配置文件前进行备份
# vi ifcfg-enp0s3
然后根据需要进行修改,这里采用默认配置(如果“ONBOOT”为“no”,将其改为“ye”,这样在下次启动服务器时就会自动打开网络服务),配置完成后保存,重启网络服务。
# service network restart
二、更新和升级 CentOS
定期的更新升级,安装已有软件的最新版本以及系统安装升级,可以让你的服务器更安全稳定。
# yum –y update && yum –y upgrade
三、修改 ssh 配置
CentOS 7 默认允许任何帐号透过 ssh 登入,为了不让 root 帐号被黑客暴力入侵,我们必须禁用 root 帐号的 ssh 功能,事实上 root 也没必要使用 ssh 登入服务器,因为只要使用 su (当然需要输入 root 的密码) 普通帐号便可以拥有 root 权限。
# vi /etc/ssh/ssh_config
将“#Protocol 1,2”改为“Protocol 2”,“#PermitRootLogin yes”改为“PermitRootLogin no”,添加“AllowUsers 你的普通账户名”,然后保存,重启 ssh 服务。
# vi systemctl restart sshd.service
四、安装 Apache HTTP 服务器
httpd 是 Apache 服务器的主程序,被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。接下来安装 httpd。
# yum –y install httpd
完成后开启 httpd 服务,并且让其在重启系统时自启动。
# systemctl start httpd.service
# systemctl enable httpd.service
接着配置防火墙允许服务器被外部访问
# firewall-cmd --permanent --add-service=http --add-port=80/tcp
//apache 默认为 80 端口,如果你修改了默认端口,这里要改为相应端口号
# firewall-cmd –reload
# systemctl restart httpd.service
五、安装 PHP
PHP 是一种通用开源脚本语言,使用广泛,主要适用于 Web 开发领域。Linux 操作系统下安装 PHP 非常简单,只需执行一下命令即可。
# yum –y install php
# systemctl restart httpd.service
六、安装 MariaDB 数据库
MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。MariaDB 的目的是完全兼容 MySQL,包括 API 和命令行,是目前最受关注的 MySQL 数据库衍生版,也被视为开源数据库 MySQL 的替代品。在 CentOS7 下安装 MariaDB,如下所示:
# yum –y install mariadb-server mariadb
# systemctl start mariadb.service
# systemctl enable mariadb.service
#firewall-cmd --add-service=mysql // 允许 MariaDB 被远程访问
安装完成后记得修改数据库密码。
# set password for 'root'@'localhost' =password('密码');
# systemctl restart mariadb.service
七、安装 phpMyAdmin
phpMyAdmin 是一个以 PHP 为基础,以 Web-Base 方式架构在网站主机上的 MySQL 的数据库管理工具,让管理者可用 Web 接口管理 MySQL 数据库。安装方式如下:
# yum –y install phpmyadmin
八、总结
到此,CentOS 7 + LAMP 环境就搭建完成了,可以将你的 PHP 网站部署到“/var/www/html”下,这样一台最基本的 WEB 服务器就搭建好了。当然,部署网站过程中可能会遇到一些问题,比如不能上传文件、上传文件类型大小限制等问题,以及要如何高效便捷地管理你的远程服务器,将在下一篇文章给大家介绍。
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-10/147273p2.htm