最近弄到个阿里云主机,装的CentOS 6.2 64位系统。拿到手后发现这玩意儿什么软件都没装,询问客服后说不给装,不得不说,国内这些服务商的服务质量是真的远不如国外的,这也算天朝特色之一吧。

于是乎就开始自己摸索着配置LAMP环境了。

首先想到的是直接去下XAMPP,结果发现这个集成环境不支持64位系统,于是只好利用yum命令自己一个个装了。

首先是SSH工具,阿里推荐用XShell,这玩意儿确实还不错,免费,有中文版。

然后是安装apache,mysql和php

//安装apache
// yum命令会自动去下载rpm包并安装。小玩玩就不去下源码自己编译了,怕搞不定。
// -y 参数的意思是对所有询问的自动回答yes
yum -y install httpd httpd-devel
//启动apache
service httpd start
//安装mysql
yum -y install mysql mysql-devel mysql-server mysql-libs
//启动mysql
service mysqld start
//安装php
yum -y install php

不做任何rpm源配置的话,安装的版本分别的

Apache 2.2.15

MySQL 5.1.67

PHP 5.3.3

配置Apache

1. 配置PHP相关

然后在SSH中编辑/etc/httpd/conf/httpd.conf文件,修改

DirectoryIndex index.html index.html.var

DirectoryIndex index.php index.html index.html.var

DocumentRoot 默认为"/var/www/html",在此路径下放一个index.php测试文件,便可以被解析执行了。

2. 随机启动

chkconfig httpd on

配置MySQL

1. 设置mysq root用户l密码

/usr/bin/mysqladmin -u root password 'fayfox';
2. 添加一个新用户
//首先进入mysql
mysql -u root -p
Enter password: //输入密码(linux下输入密码无任何提示,不想windows下会出现*,光标也不会移动)
//添加一个叫fayfox的用户,密码为karma
grant all on *.* to fayfox@'%' identified by 'karma';
//all表示所有权限(包括增 删 改 查等权限)
//*.* 表示所有数据库
//fayfox为添加的用户名
//%为匹配的所有主机
//karma为密码
flush privileges; //刷新系统权限表

PS:这么配置后,在php中用localhost连接数据库并不能成功,还得再加一条

grant all on *.* to fayfox@'localhost' identified by 'karma';

又PS:我很迷茫为什么直接把root的Host列改为%依旧无法远程访问,所以只好新加了个用户。

3. 随机启动

chkconfig mysqld on

配置PHP

安装PHP扩展。这个就完全是看个人需要了,最常用的几个

yum -y install php-mysql php-gd php-pdo php-mbstring
123

安装FTP服务

yum -y install vsftpd
//添加用户
useradd fayfox -s /sbin/nologin
//启动vsftpd
service vsftpd start

若连接FTP时遇到这个错误:500 OOPS: cannot change directory:/home/karma

则运行setsebool -P ftp_home_dir on即可。(没看懂这参数干嘛用的)

配置防火墙

阿里云主机的防火墙默认是关闭的,可以通过service iptables status 查看防火墙状态。

先设置一些防火墙规则。

一下只是写例子而已,这个按实际情况来设置。

首先第一条就是先把22端口打开,一旦屏蔽掉这个端口,ssh就断开了,那就完了。

//接受所有来自22端口的数据
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
//接受所有从22端口出去的数据
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

然后配置默认规则(当无匹配规则时执行的规则)

//除非设置了接受,否则屏蔽所有进来的数据
//注意-P为大写
iptables -P INPUT DROP
//除非设置了屏蔽,否则放行所有出去的数据
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

继续写规则

//开放80端口,因为我是拿来做服务器的
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
//开放20,21端口,FTP
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
//开放3306端口,MySQL
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
//允许ping
iptables -A INPUT -p icmp -j ACCEPT

一般网上都会说,开启20,21端口,ftp就能正常工作了,实际上,仅仅按照上面添加防火墙规则的话,ftp基本上会卡到超时。

解决办法:再加一条规则

iptables -A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

最后保存以上配置(不保存的话重启一下这些规则就没了)

/etc/rc.d/init.d/iptables save