Red Hat Enterprise Linux (RHEL) 7.0 基本配置

扩展系统Yum源

  • EPEL(Extra Packages for Enterprise Linux)

官方地址:http://dl.fedoraproject.org/pub/epel/OS版本号/x86_64/

  • Eg: CentOS7 使用 rpm 安装源:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

1
yum install epel-release

最常用的源,不多说了。

国内的话,可以使用镜像来提高速度:

  • 网易:http://mirrors.163.com/centos/7/extras/x86_64/Packages/epel-release-7-5.noarch.rpm

  • USTC:http://centos.ustc.edu.cn/centos/7/extras/x86_64/Packages/epel-release-7-5.noarch.rpm

  • REMI

官方地址:http://rpms.famillecollet.com/enterprise/版本号/

  • Eg: CentOS7 使用 rpm 安装源:
1
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

REMI拥有最新的PHP资源,截至2015-06-07 PHP版本为5.6.9,可直接使用yum安装

1
rpm -Uvh http://rpms.famillecollet.com/enterprise/7/php56/x86_64/php-5.6.9-1.el7.remi.x86_64.rpm

⚠:REMI源安装完毕后需要手动启用:

1
vi /etc/yum.repos.d/remi.repo

修改所需源 enabled=0 为 enabled=1

更改系统默认防火墙

关闭firewalld

  • 停止firewalld
1
systemctl stop firewalld.service
  • 禁止firewalld开机启动
1
systemctl disable firewalld.service

安装iptables

  • 安装熟悉的iptables:
1
yum install iptables-services
  • 安装后使用
1
iptables -L

查看已启用规则,一般文件内默认有22端口规则,
若没有添加默认规则,则需手动添加iptables规则:

1
vi /etc/sysconfig/iptables

以下例子开启了SSH,HTTP,MYSQL端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

编辑完文件后,按ESC,输入 :wq! #保存退出,回车确认

  • 重启防火墙使配置生效
1
systemctl restart iptables.service
  • 确认设置无误后,设置开机启动,若设置有误则重启后重新编辑配置文件
1
systemctl enable iptables.service

安装组件

安装网页服务器,解释语言

Apache HTTPd
1
yum install httpd
  • 启动httpd:
1
systemctl start httpd.service
  • 停止httpd:
1
systemctl stop httpd.service
  • 重启httpd:
1
systemctl restart httpd.service
  • 设置httpd开机启动:
1
systemctl enable httpd.service
PHP
1
yum install php

默认安装版本较旧(5.4.x),若需最新版本,请安装php后继续添加REMI源安装”PHP+版本”:

  • Eg: 安装PHP 5.6.9:
1
yum install php56
  • Eg: 安装PHP 7.0+:
1
yum install php70
  • 按需安装PHP组件:
1
yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
  • 按需安装PHP 7组件:
1
yum install php70-php-mysqlnd php70-php-gd libjpeg* php70-php-ldap php70-php-pear php70-php-xml php70-php-xmlrpc
  • 用于开发的话,推荐安装xDebug:
1
yum install php-pecl-xdebug

安装数据库服务器

  • MariaDB:
1
yum install mariadb mariadb-server
  • 拷贝配置文件:(注:重名请覆盖)

安装后默认提供5个配置文件,选择合适的复制至/etc/my.cnf

1
2
3
4
5
my-huge.cnf
my-innodb-heavy-4G.cnf
my-large.cnf
my-medium.cnf
my-small.cnf
  • 配置中型数据库:
1
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
  • 启动MariaDB:
1
systemctl start mariadb.service
  • 停止MariaDB:
1
systemctl stop mariadb.service
  • 重启MariaDB:
1
systemctl restart mariadb.service
  • 设置开机启动:
1
systemctl enable mariadb.service
  • 安装完成并启动数据库后,执行数据库自带初始化安装:
1
mysql_secure_installation

一路Y与回车,设置数据库root密码,直到出现 Thanks for using MariaDB!

  • 至此MariaDB安装结束,若需要远程登录(%权限)则:
1
mysql -u root -p

输入密码后按回车,进入mysql控制台,接着输入

1
2
use mysql;
update user set host = '%' where user = 'root';

接着会报错找到多个root用户,不用管他,还是会修改第一个root的访问权限为’%’

最后别忘记刷新权限,使修改生效:

1
FLUSH PRIVILEGES;

配置组件

配置Apache Httpd

  • 一般情况下修改Httpd配置文件:
1
vi /etc/httpd/conf/httpd.conf

选项:

1
Options Indexes FollowSymLinks

修改为(禁止列目录):

1
Options FollowSymLinks

选项:

1
AllowOverride None

修改为(允许.htaccess文件Override设置):

1
AllowOverride All

配置PHP

  • 一般情况下修改Httpd配置文件:
1
vi /etc/php.ini

选项disable_functions可阻止PHP运行高危函数:

1
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

选项open_basedir可限制PHP文件夹权限(此处限制到默认html文件夹以及tmp临时目录):

1
open_basedir = /var/www/html/:/tmp/

至此RHEL7服务器配置基本完成,关于SELinux,个人不建议关闭,可根据实际应用权限修改相应的设置以达到使安全性、可用性平衡的目的。