考虑到在众多linux发行版中,centos是比较优秀的一个,因为它是基于原来的Redhat Linux,是相对于RHEL(Red Hat Enterprise Linux,现已收费)的免费版本,性能优良,可用文档等资源也很丰富。而在众多的面板中,从资源占用、易用性等方面综合考虑,kloxo(原 lxadmin)无疑最比较适合vps新手的,而且它的基本功能是免费的,比起价格昂贵的cpanel面板来说还是相当不错的,唯一的商业限制是不能绑定超过40个域名,其实这对我们一般用户来说完全够用。因此centos+kloxo平台是我们这种不懂linux系统的人搭建web服务非常不错的选择。
下面分几步来说明拿到新安装的服务器/vps后初始化设置的步骤,仅作简单记述以备忘。下面的方法主要来自网上收集。
——————————- 第一步 ——————————-
因为拿到的服务器一般是安装了centos完全版的,自带有apache等组件,我们要使用kloxo自带的服务器组件,就需要先卸载自带的apache、mysql等。
卸载Mysql
# rpm -qa | grep mysql
mysql-3.23.58-9
php-mysql-4.3.4-11
mod_auth_mysql-20030510-4.1
mysql-server-3.23.58-9
说明:rpm -qa | grep mysql 命令是为了把mysql相关的包都列出来,卸载从最下面的一个包开始,直到卸载掉第一个为止。
比如:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方法如下:
rpm -e mysql-server
说明:rpm -e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,比如我们下一步卸载mod_auth_mysql-20030510-4.1包,方法如下:
rpm -e mod_auth_mysql
卸载Apache
# rpm -qa | grep httpd
卸载PHP
# rpm -qa | grep php
注意:卸载的时候如果卸载不掉,系统一般会提示包的依赖关系,并且列出依赖的包的名称,先卸载提示依赖的包就可以了。如果实在实在有卸载不掉的包,可以加-nodeps这个参数来卸载,比如我们卸载php-4.3.4-11,实在卸不掉了。就用:
rpm -e php-4.3.4-11 -nodeps
命令很强硬,应该行的。
——————————- 第二步 ——————————-
centos系统安全设置
1、更改SSH端口,最好改为10000以上,别人扫描到端口的机率也会下降
vi /etc/ssh/ssh_config
vi /etc/ssh/sshd_config
然后修改为port为需要的端口号
以root身份service sshd restart
2、删除系统臃肿多余的账号:
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
userdel ftp 如果你不允许匿名FTP,就删掉这个用户帐号
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
groupdel pppusers
3、增加普通账号,并禁止root远程登录:
useradd newuser //添加新用户
passwd newuser //修改密码
usermod -G10 newuser
或usermod -G wheel newuser //将用户加入wheel组,允许使用 su – 命令提权成root
vi /etc/ssh/sshd_config
添加一行:
PermitRootLogin no //禁止root远程登录
vi /etc/pam.d/su
#auth required /lib/security/$ISA/pam_wheel.so use_uid ← 找到此行,去掉行首的“#”
echo “SU_WHEEL_ONLY yes” >> /etc/login.defs //以上为禁止不在wheel组的用户使用su -命令
重启sshd服务
#service sshd restart
4、更改下列文件权限,使任何人没有更改账户权限:
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
5、编辑“host.conf”文件(vi /etc/host.conf)加入下面这些行:
order bind,hosts
multi on
nospoof on
chmod 600 /etc/xinetd.conf
vi /etc/xinetd.conf 禁止所有不需要的服务,如:ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth等等,也可以直接通过setup命令来设置服务项。
改变了“inetd.conf”文件之后,别忘了给inetd进程发一个SIGHUP信号:
killall -HUP xinetd
chattr +i /etc/xinetd.conf //把inetd.conf设成不可改变,如果要改变xinetd.conf文件,你必须先清除这个不允许改变的标志:
chattr -i /etc/inetd.conf
又是为了服务器安全,可以配置防ping:
先用/sbin/ifconfig查看网卡信息,找到外网网卡名字,如venet0
运行
/sbin/iptables -A OUTPUT -o venet0 -p icmp -j ACCEPT
/sbin/iptables -A INPUT -i venet0 -p icmp –icmp-type echo-reply -j ACCEPT
/sbin/iptables -A INPUT -i venet0 -p icmp –icmp-type echo-request -j DROP
/sbin/service iptables save
看到OK后重启即可。
也可以通过使用MySQLTuner分析优化MySQL。MySQLTuner是一个Perl脚本,用来分析你的MySQL性能,并给出优化建议。
下载,执行:
# wget http://mysqltuner.com/mysqltuner.pl
# chmod +x mysqltuner.pl
# ./mysqltuner.pl
——————————- 第三步 ——————————-
安装kloxo
wget http://download.lxlabs.com/download/kloxo/production/kloxo-install-master.sh
sh ./kloxo-install-master.sh
yum install php-bcmath /*高精度数学运算组件,默认没安装,MD5运算时用到*/
yum check-update /*检查全部更新*/
yum update /*更新全部更新*/
yum clean all /*清理全部缓存的安装文件以节省空间*/
这就安装完了kloxo,可以web登陆面板了。
地址:https://yourdomain:7777/ /*安全连接*/
http://yourdomain:7778/ /*普通链接,常用*/
一般出于安全考虑要在面板里修改掉默认的7777和7778端口,修改后要ssh里运行:
/script/restart
重启kloxo服务使之生效。
下面就可以按照面板里的说明添加网站了。
/* 使用说明 */
cd /etc/yum.repos.d[进入yum.repos.d目录]
mv CentOS-Base.repo CentOS-Base.repo.save[修改源文件名称备份]
wget http://centos.ustc.edu.cn/CentOS-Base.repo.5[下载]
mv CentOS-Base.repo.5 CentOS-Base.repo[下载后的文件更名]
1. 更新系统内核到最新.
yum -y update
系统更新后,如果yum安装时提示错误信息,请执行以下命令修复.
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*
2. 安装Apahce, PHP, Mysql, 以及php连接mysql库组件
yum -y install httpd php mysql mysql-server php-mysql
//安装mysql扩展
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
//安装php的扩展
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc
//安装apache扩展
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
一次性粘贴安装:
yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql
3. 启动服务配置
/sbin/chkconfig httpd on [设置apache为自启动]
/sbin/chkconfig –-add mysqld [mysql服务]
/sbin/chkconfig mysqld on [mysqld服务]
/sbin/service httpd start [自启动 httpd 服务]
/sbin/service mysqld start [自启动mysqld服务]
4.设置mysql数据库root帐号密码。
mysqladmin -u root password ‘新密码' [引号内填密码]
让mysql数据库更安全
mysql -u root -p [此时会要求你输入刚刚设置的密码,输入后回车即可
mysql> DROP DATABASE test; [删除test数据库]
mysql> DELETE FROM mysql.user WHERE user = ”; [删除匿名帐户]
mysql> FLUSH PRIVILEGES; [重载权限]
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root'@'192.168.1.13′ IDENTIFIED BY ‘密码' WITH GRANT OPTION; [增加远程链接用户]
按照以上的安装方式, 配置出来的默认站点目录为/var/www/html/
测试环境
rpm -qa |grep mysql
rpm -qa |grep httpd
rpm -qa |grep php
推荐大家浏览下一篇文章。
我们知道php配置有几种:
1、CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少。
特点是:稳定,但效率太低。
2、ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广。
特点是:多线程,效率较高,但不够稳定。
3、FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了。
特点是:高效率,高稳定性,属于将来发展趋势。
我试过其他的特别麻烦,PHP 5.3发布的Windows版已经不支持ISAPI模式了,所以我打算按微软推荐的FastCGI方式运行PHP。
我用的就第三种,也是最好最快的,因为FastCGI大大加强了IIS处理PHP的能力,能迅速提高PHP站点的反应速度和生产力,
并具有更高的稳定性和安全性.
下载地址:http://windows.php.net/download/ 里面有好多种,要那种呢?
PHP现在推出5.3.2版本了,不过下载的时候有几个不同版本选择。那就是VC6 X86和VC9 X86。
首先我来解答:
VC6是什么?
VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。
VC9是什么?
VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。
那我们如何选择下载哪个版本的PHP呢?
如果你是在windows下使用Apache+PHP的,请选择VC6版本;
如果你是在windows下使用IIS+PHP的,请选择VC9版本;
那Non Thread Safe是什么?
Non Thread Safe就是非线程安全;
Thread Safe 是什么?
Non Thread Safe 是线程安全;
官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。
下载安装,我安装默认路径了:
记得选中第三项:IIS FASTCGI
如果没有安装IIS FASTCGI的 下一步会提示没有安装的,下载安装就行了
FastCGI for IIS 6 7 http://www.iis.net/expand/fastcgi
安装好后,继续下一步,我按照默认了:
安装完毕后,就是配置了。
这种配置有两种方法,我用cmd配置,一条命令就行了。
转到刚才安装CGI的目录下:
>cd C:\WINDOWS\system32\inetsrv
>cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\Program Files\PHP\php-cgi.exe"
注意:path:"xxxx\php-cgi.exe” 是你安装php的目录
> cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:10000
> cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000
ok!完毕!
测试下:
新建一个.php文件,里面
<?php
phpinfo();
?>
保存!运行,出现下面页面,说明配置成功了!
这样的方法 IIS就不用怎么配置,他都会自动配置好了!微软提供的配置更加详细 !
如果按上面的教程配置好后,运行php测试页面,出现了500错误。
那就设置php.ini中的date.timezone项。
我这里设置成上海时区:date.timezone = Asia/beijing
设置完后就一切正常了!