Linode LEMP安装指南中安装的LEMP只是一个能用的状态,正式使用还需要配置一些参数。
vi /etc/nginx/nginx.conf
worker_rlimit_nofile 65535;
events {
# linux 2.6版本以后使用epoll性能会提升较大
use epoll;
worker_connections 65535;
}
# 开启gzip压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml application/json;
gzip_vary on;
# php fastcgi相关配置
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
如果vps是个人使用,完全可以没必要装ftp,上传文件可以用winscp搞定。但有时候要帮朋友放个小站而又不希望开放太多的权限时ftp就派上用场了,这次选中的ftp服务器是vsftp,支持虚拟用户,可以限制虚拟用户访问目录,这两个功能正是俺需要的。
登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。
虚拟用户登录+本地数据文件正好实现俺要的需求。
安装vsftp:
[root@TokyoHot ~]# yum install vsftpd
添加虚拟用户:
[root@TokyoHot ~]# vi /etc/vsftpd/vftpuser.txt
内容:
kaede # 用户名
123456 # kaede的密码
SolaAoi # 用户名
456789 # SolaAoi的密码
将vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件:
如果没有安装db4-utils要先安装一把:
[root@TokyoHot ~]# yum install db4-utils
转换成系统识别的口令认证文件:
[root@TokyoHot ~]# db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
编辑vsftpd的PAM认证文件:
[root@TokyoHot ~]# vi /etc/pam.d/vsftpd
将里面其他的都注释掉,添加下面这两行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
配置vsftpd.conf(设置虚拟用户配置项):
[root@TokyoHot ~]# vi /etc/vsftpd/vsftpd.conf
内容:
anonymous_enable=NO #禁用匿名用户
guest_enable=YES #开启虚拟用户
guest_username=ftp #FTP虚拟用户对应的系统用户
pam_service_name=vsftpd #PAM认证文件
anon_world_readable_only=NO #开放虚拟用户下载权限
anon_upload_enable=YES #开放虚拟用户上传权限
anon_mkdir_write_enable=YES #开放虚拟用户创建目录的权限
anon_other_write_enable=YES #开放虚拟用户删除和重命名的权限
user_config_dir=/etc/vsftpd/vsftpd_user_conf #具体每个虚拟用户的配置信息存放目录
anon_umask=022 #新建的目录 权限是755,文件的权限是 644
上面配置中的guest_username=ftp,其中ftp是系统中已经存在的用户名,centos默认已经创建了这个用户。
配置具体某个虚拟用户的信息(文件名和用户名一致):
[root@TokyoHot ~]# vi /etc/vsftpd/vsftpd_user_conf/kaede
内容:
local_root=/srv/www #限制kaede的访问目录只能是/srv/www目录
配置完成,重启下ftp服务器测试。
还是先参考linode知识库的安装指南 :-)
http://library.linode.com/lemp-guides/centos-5
不过文章中安装php-fastcgi处只将php-fastcgi设置为开机自动启动,而漏了启动php-fastcgi本身了,导致在后面测试php时,nginx一直报"502 Bad Gateway"错处,查找了半天才发现问题。
启动一下再测试。
#/etc/init.d/php-fastcgi start
直接使用安装指南中的配置,还会有一些小问题。比如上传文件大于1M多时,Nginx报“Nginx: 413 Request Entity Too Large Error”。
可以在站点配置的server块下加入:
client_max_body_size 20M; # 设置客户端最大能上传文件大小
@2011-11-19:参考安装指南中方法安装,php不支持gd库。
通过下面命令安装即可:
yum install php-gd
/etc/init.d/php-fastcgi restart
@2012-03-06:晕,隔一段时间没接触这方面内容现在又全忘了,以后多记点方便要配置时查阅。
默认php.ini配置文件路径/etc/php.ini
查找php.ini配置文件路径:
[ho@nikita ~]$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
上一篇blog中根据linode的知识库中指南用yum安装的LAMP各应用版本太低,装了个phpMyAdmin,提示需要PHP 5.2+以上的环境,目前默认的yum源里php版本为:5.1.6,mysql版本为5.0.77。
升级方法比较简单:添加一个第三方的源,update一下就OK了。
运行:
# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
创建一个新文件:
# vi /etc/yum.repos.d/utterramblings.repo
内容为:
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
更新程序:
# yum update php
# yum update mysql
phpMyAdmin还需要服务器安装php-mcrypt,不然提示“缺少 mcrypt 扩展。请检查 PHP 配置。”和“没有找到 PHP 扩展 mbstring……”
# yum install php-mcrypt
# yum install php-mbstring
升级完成后,PHP版本为:5.2.17,MySQL版本为:5.1.58
如果升级了MySQL,并且以前修改过my.cnf,还需要重新编辑下my.cnf:
“在Mysql 5.1.50版中已经废除了skip-bdb参数,而skip-locking改为了skip-external-locking,skip-innodb改为了loose-skip-innodb。”
修改完成后,运行一下mysql_upgrade:
# mysql_upgrade -u root -p
据说LEMP(Linux + Nginx + Mysql + Php)在小内存服务器下性能更好,相对来说对Apache还是熟悉一点,本着不折腾的原则还是首选Apache。9_9
可以直接参考linode知识库里的安装指南:
http://library.linode.com/lamp-guides/centos-6一路下来安装顺利。
free一下看看内存占用,嗯?!立马杯具,默认安装配置下来已经使用了147M内存,tinyvz保证内存只有128M,突发内存256M。超标了,可以优化下mysql配置来减少内存占用。
MySQL提示了几个不同的配置文件模板(如/usr/share/doc/mysql-server-5.0.77/my-small.cnf):
将my-small.cnf覆盖到/etc/my.cnf,重启试试,还是占用了140M内存。@!@~
如果数据库不需要使用InnoDB存储引擎来对事务的支持,在my-small.cnf里添加二行:
skip-innodb
skip-bdb
重启试试,free一下,目前整个LAMP占用51M内存。
---------------------------------------------------------------------
服务器启动命令:
/etc/init.d/httpd start
/etc/init.d/mysqld start
昨晚为了装pptp重装了几次系统,最后发现openvz在linux内核为2.6.32以上才支持??目前这台母鸡是2.6.27,pptp能成功安装&启动服务但客户端死活连接不上,杯具……
https://forum.ramhost.us/bbs/viewtopic.php?id=518
This is a list of features tat the upgrade from 2.6.26/2.6.27 to 2.6.32 should fix or enable:
* /dev/net/tun enabled instantly on boot instead of up to an hour later.
* iptables logging should work properly.
* tcpdump inside of vps should work.
* reboot command should reboot vps (instead of halt'ing it).
* various ip6tables firewall rules should work better.
* various performance improvements.
折腾了半天后重装时发现安装过程又不记得了,0_0!! 记下来,以后装新系统时参考。
CentOS
改主机名:
echo "HOSTNAME=plato" >> /etc/sysconfig/network
hostname "plato"
改时区:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime