CentOS 5.5 系统配置
关键点:安装系统
使用最小化安装,即不指定安装类型,也不安装任何附加组件,安装耗时很短,基本上不到10分钟就完成了。
关键点:启用网络
编辑配置文件/etc/sysconfig/network
view sourceprint?1 NETWORKING=yes #启用网卡
NETWORKING_IPV6=no #禁用网卡IPv6功能
HOSTNAME=localhost.localdomain #系统主机名
另外如果彻底不需要IPv6网络的支持,也可以禁用IPv6以提高系统性能,方法是编辑/etc/modprobe.conf文件,最末行添加:
view sourceprint?1 alias net-pf-10 off
alias ipv6 off
关键点:配置网卡信息
可以通过ifconfig命令看到,一般网卡的默认名称都是以eth0、eth1、…这样的形式命名,假如需要配置eth0网卡为静态IP方式,则编辑配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,内容如下:
view sourceprint?01 DEVICE=eth0 #网卡对应的设备别名
BOOTPROTO=static #获取IP的方式:static、dhcp、bootp
BROADCAST=192.168.56.255 #广播地址
HWADDR=08:00:27:F0:19:21 #网卡MAC地址
IPADDR=xxx.xxx.xxx.xxx #指定的IP地址
IPV6INIT=no #禁止初始化IPv6
IPV6_AUTOCONF=no #禁止自动配置IPv6
NETMASK=255.255.255.0 #指定的子网掩码
NETWORK=xxx.xxx.xxx.xxx #网卡对应的网络地址
ONBOOT=yes #系统启动时激活该网卡
假如需要配置eth1网卡为DHCP方式,则编辑配置文件/etc/sysconfig/network-scripts/ifcfg-eth1,内容如下:
view sourceprint?1 DEVICE=eth1
BOOTPROTO=dhcp
HWADDR=08:00:27:DA:9F:D7
IPV6INIT=no
IPV6_AUTOCONF=no
ONBOOT=yes
DHCP_HOSTNAME=localhost.localdomain
关键点:修改DNS
编辑配置文件/etc/resolv.conf
view sourceprint?1 search
nameserver 8.8.8.8
nameserver 8.8.4.4
所有配置完成后,可以重启一下网络服务,让刚才的配置生效:
view sourceprint?1 service network restart
关键点:更新系统组件
官方会不定期的为系统组件做更新,尤其是内核组件的更新,往往涉及安全性和稳定性,所以经常检查更新是很有必要的,另外更新完重要组件后,最好是重启一下服务器:
view sourceprint?1 yum update #使用官方源自动更新系统所有已装组件
shutdown -r now #立即重启服务器
关键点:配置SSH服务
限制所有的IP连接,编辑文件/etc/hosts.deny,在最末行添加:
view sourceprint?1 sshd:ALL #限制所有IP都无法连接
允许指定的IP地址段连接,编辑文件/etc/hosts.allow,在最末行添加:
view sourceprint?1 sshd:xxx.xxx.xxx. #指定xxx.xxx.xxx.*网段可以连接,注意最后的点
生成密钥对
view sourceprint?1 mkdir ~/.ssh #创建密钥对文件存放目录
cd ~/.ssh
ssh-keygen -t rsa #生成密钥对,其间询问保存文件名和证书口令
cat id_rsa.pub >> authorized_keys #重命名生成的公钥文件
rm -rf id_rsa.pub #删除默认生成的公钥文件
chmod 700 ~/.ssh #设置适当权限保障文件夹安全
chmod 400 authorized_keys #设置适当权限保障文件安全
通过SFTP客户端下载id_rsa和authorized_keys文件到本地,并将authorized_keys重命名为id_rsa.pub,即可通过SecureCRT以证书方式连接。
编辑配置文件/etc/ssh/sshd_config,检查并修改配置:
view sourceprint?1 Port 10880 #指定SSH连接端口号
Protocol 2 #仅使用SSH2协议
ServerKeyBits 1024 #使用1024bit加密
PermitRootLogin no #禁止root登录
RSAAuthentication yes #启用RSA加密验证方式
PubkeyAuthentication yes #启用Pubkey验证方式
AuthorizedKeysFile .ssh/authorized_keys #指定验证文件路径及文件名
PasswordAuthentication no #禁用密码验证方式
PermitEmptyPasswords no #禁止空密码
修改防火墙规则配置/etc/sysconfig/iptables,把默认的22端口改为刚才指定的10880端口,找到端口22那行,改成如下:
view sourceprint?1 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10880 -j ACCEPT
全部修改完成后重启防火墙服务及SSH服务
view sourceprint?1 service iptables restart
service sshd restart
关键点:添加EPEL软件仓库
使用如下命令启用EPEL repo:
view sourceprint?1 rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm
导入EPEL key,使用如下命令:
view sourceprint?1 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
以后就可以用过yum install xxx的方式来安装软件了。
关键点:添加yum更新源
如果你跟我一样倾向于选择比较新的版本,则推荐给你21andy.com的源,新建文件/etc/yum.repos.d/CentOS-21andy.repo,内容如下:
view sourceprint?1 [21Andy.com]
name=21Andy.com Packages for Enterprise Linux 5 - $basearch
baseurl=http://www.21andy.com/centos/5/$basearch/
enabled=1
gpgcheck=0
protect=1
关键点:安装WEB服务器和数据库服务器
这里选择的是Nginx+PHP-fpm+MySQL的组合,其他组合方式的安装过程也是大同小异的。使用命令:
view sourceprint?1 yum install nginx mysql-server php-fpm php-mysql php-mcrypt php-mbstring php-gd
修改MySQL默认管理员密码:
view sourceprint?1 service mysqld start
mysqladmin -u root password 123456 #务必使用强密码
service mysqld stop
配置开机启动:
view sourceprint?1 chkconfig --level 345 mysqld on
chkconfig --level 345 php-fpm on
chkconfig --level 345 nginx on
关键点:安装ntsysv组件并配置自启动服务
通过ntsysv可以配置服务的启动项,避免无关的服务启动占用内存。
view sourceprint?1 yum install ntsysv
ntsysv #启动ntsysv组件
将会显示一个文本界面显示当前服务列表,前面有星号的代表将会自启动的服务项。以我的例子,我设置了如下的服务为自启动:iptables、mysqld、network、nginx、php-fpm、sshd、syslog。
关键点:配置Nginx服务器和PHP-fpm
修改防火墙规则配置/etc/sysconfig/iptables,增加80端口规则:
view sourceprint?1 -A RH-Firewall-1-INPUT -p tcp --dport 80 -j ACCEPT
编辑Nginx配置文件/etc/nginx/nginx.conf,修改如下配置:
view sourceprint?1 server_name 192.168.56.101;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
找到如下代码将前面的注释#删除:
view sourceprint?1 location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
这里要注意:fastcgi_pass里的9000端口须跟PHP-fpm里定义的端口保持一致,否则Nginx无法将请求转发给PHP引擎。另外/usr/share/nginx/html为网站根目录所在位置。
检查PHP-fpm配置文件/etc/php-fpm.conf,找到如下部分:
view sourceprint?1 <value name="listen_address">127.0.0.1:9000</value>
确保跟Nginx配置文件里定义的端口保持一致。
编辑PHP配置文件/etc/php.ini,指定session文件夹:
view sourceprint?1 session.save_path = "/var/lib/php/session"
由于PHP引擎需要权限对该文件夹进行读写操作,所以要配置一下权限:
view sourceprint?1 chown -R root:nobody /var/lib/php/session
chmod -R 777 /var/lib/php/session
重启Nginx、PHP-fpm、防火墙服务以应用刚才的修改:
view sourceprint?1 service nginx restart
service php-fpm restart
service iptables restart
最后在默认的网站根目录下放置一个含有phpinfo()的.php文件,用浏览器访问下看看服务器能否顺利解析。到此主要的安装过程结束。