流量统计:
Rixu Blog (日需博客)
日需博客,每日必需来踩踩哦..
posts - 108,comments - 54,trackbacks - 0

只在vps服务器搭建vpn线路,显然有些浪费。比如还可以在Linux的vps服务器上安装lnmp网站服务器。

LNMP是指在linux系统下安装Nginx服务器、Mysql数据库、Php (Phpmyadmin)。安装LNMP过程很简单,另外也有LNMP一键安装包,因此甚至不需要进行一些LNMP配置,网站服务器就可以工作了。但是lnmp一键安装的缺点是如果安装过程出现了问题,配置起来就困难很多了。

为什么不用lamp,即没有采用Apache服务器的原因是该VPS配置性能不高,跑apache服务器将会非常吃力。而Nginx是一个高性能的http、反向代理服务器,Nginx的特点就是轻便和高性能,非常适合低配置的VPS搭建网站服务器。下面是远方博客在CentOS系统下安装和配置LNMP、安装FTP服务器vsftpd、并搭建wordpress博客网站的过程,记录供备忘并交流。

CentOS VPS 安装LNMP准备

Linux vps 服务器CentOS 系统最小化安装不一定会默认安装wget和unzip,而LNMP安装包和wordpress安装过程中却是会用到这两个服务命令的,因此必须首先安装。通过Putty连接vps务器之后,使用yum install wget和yum insatll unzip进行安装。

LNMP安装配置

1. 登陆连接vps服务器(Putty)

2. 安装licess提供的lnmp一键安装包,wget默认下载到当前目录:

wget -c http://soft.vpser.net/lnmp/lnmp0.4.tar.gz

3. 解压LNMP安装包:tar zxvf lnmp0.4.tar.gz ;然后转移到目录:cd lnmp0.4/

4. CentOS系统执行./centos.sh开始安装过程。

5. 输入要绑定到网站服务器根目录的域名(该域名必须首先做A记录解析到vps的IP地址才会生效)。

6. 输入域名按Enter后centos.sh脚本执行文件开始自动安装Nginx、编译php、安装配置MySQL、phpMyAdmin和Zend等组件。刚开始需要输入mysql root账号的密码,然后整个下载和安装编译的过程大概经过约10-30分钟。

7. 安装其他组件(可选):cd到lnmp0.4下执行./eaccelerator.sh则程序会自动安装eAcelerator,执行./pureftpd.sh则安装pureftpd FTP服务器,执行./vsftpd.sh安装vsftpd。因为希望最小化安装LNMP,所以这些都没选择安装。

8. 安装虚拟主机:cd到lnmp0.4下执行./vhost.sh自动开始创建虚拟主机并绑定域名到指定的目录(输入域名->指定绑定目录->设置是否启用静态规则->选择输入Wordpress->是否启用日志N)。若虚拟主机需要自定义伪静态规则,则输入WordPress时改为输入url重写静态化规则名称,然后在/usr/local/nginx/conf/自定义的伪静态名字.conf 里面添加自定义伪静态规则。或者直接编辑/usr/local/nginx/conf/nginx.conf 这个nginx配置文件。

9. LNMP安装结束后可以通过:/root/lnmp {start|stop|reload|restart|kill|status} 来对LNMP启动、停止、重启等状态进行管理。

LNMP安装配置过程出现的问题

1. 403 Forbidden 和 502 Bad Gateway

若没有上传文件到wwwroot根目录下,则输入绑定到LNMP网站根目录下的域名会显示403 Forbidden提示,上传相关index.php等文件即可。若出现 502 bad gateway 错误提示,可以试试重启LNMP:/root/lnmp restart,然后查看错误提示:

Reload LNMP...
Reload Nginx configure...
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
Nginx program is reloding!
Shutting down MySQL. SUCCESS!
Starting MySQL. SUCCESS!
/root/lnmp: line 70: /usr/local/php/sbin/php-fpm: No such file or directory

从上面的提示看出是缺少php-fpm,php编译没有成功。没有办法只有卸载lnmp重新编译php了,或者直接reimage重装vps系统,或许这样更快了。

2. ERROR! Manager of pid-file quit without updating file

这个错误原因的出现多半是因为重新安装配置LNMP一键安装包,但是原来的mysql服务又还没卸载,仍然占用了原来的3306端口。从查看mysq错误日志文件可知,编辑错误日志位置是:nano /usr/local/mysql/var/farlee.err(ls usr/local/mysql/找到.err后缀的文件):

100726 16:26:28 mysqld_safe mysqld from pid file /usr/local/mysql/var/kjmykjmy.pid ended
100726 16:28:22 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
100726 16:28:22 [Warning] The syntax '--skip-locking' is deprecated and will be removed in a future release. Please use --skip-external-locking instead.
100726 16:28:22 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
100726 16:28:22 [ERROR] Do you already have another mysqld server running on port: 3306 ?
100726 16:28:22 [ERROR] Aborting

提示仍有另外一个mysqld 服务器占用了3306端口,修改mysql配置文件nano /etc/my.cnf ,将port端口改成其他的,同时把skip-locking改成skip-external-locking。保存退出后重启mysql:service mysql start。再次重启lnmp发现ERROR! Manager of pid-file quit without updating file 这个错误没有了。

3. phpmyadmin: #1045 无法登录 MySQL 服务器Access denied for user ‘root’@'localhost’ (using password: YES)

安装完lnmp安装包之后,很多人反应无法登陆mysql数据库,出现Access denied for user ‘root’@'localhost’ (using password: YES)的错误。这有可能是由于前面设置mysql密码没有成功,所以导致了我们使用设置的mysql root密码无法登陆服务器。这时可以尝试使用mysql 默认的root账号的空密码登陆数据库。

若果使用空密码登陆时又出现:空密码登录被禁止 (参见 允许空密码)的类似错误。则要修改/home/wwwroot/phpmyadmin/libraries/config.default.php 文件,找到下面两行

$cfg['Servers'][$i]['nopassword'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

将两个false改为true,同时设置 $cfg['Servers'][$i]['password'] = '';通过这样设置配置文件后phpmyadmin 就会允许以空密码方式登录mysql数据库了。若重新以空密码方式登录phpmyadmin有时仍无法登陆,请清除cookie或关闭原来的phpmyadmin 登录窗口,重新使用空密码登录。若这时候仍然显示空密码登陆被禁止,试试随便输入几个字符当作密码看是否能够登陆成功。登陆mysql服务器之后尽快将mysql密码在phpmyadmin中修改过来。或者在SSH客户端修改mysql密码:cd /usr/local/mysql/bin 然后执行命令:./mysqladmin -u root -p password http://farlee.info/ passwd。最后在mysql的user表中删除除root以外所有用户。

LNMP安装vsftpd FTP服务器

1. 安装vsftpd服务器,我们就可以通过flashfxp、filezilla等ftp客户端上传文件了:yum -y install vsftpd
2. 设置开机启动 vsftpd:chkconfig --level 35 vsftpd on
3. 禁止匿名登陆,修改/etc/vsftpd/vsftpd.conf文件。将anonymous_enable=YES,改为anonymous_enable=NO
4. 修改www密码:passwd www 连续两次输入新的密码
5. 赋予目录权限和www用户权限: chown -R root:www /home/wwwroot 和  chmod 770 /home/wwwroot
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
6. 重启vsftpd:service vsftpd start,   service vsftpd restart

LNMP 安装wordpress 博客

1. 通过phpmyadmin创建mysql数据库;下载wordpress.zip,解压后修改config.php文件;全选wordpress文件夹内的所有文件及目录,右键压缩成zip格式。
2. 将重新压缩的wordpress.zip 通过FTP(SFTP)上传到/home/wwwroot 根目录下。 若上传或解压路径错了,删除目录重来:rm -rf /home/wordpress。
3. cd /home/wwwroot    unzip wordpress.zip 解压到wwwroot根目录,访问绑定的域名开始安装wordpress博客

Nginx 服务器和Apache .htaccess 文件

nginx 默认不支持网站根目录下的.htaccess 文件;必须在nginx服务器配置文件目录如/usr/local/nginx/conf/的.conf文件中进行相关设置。比如上文中介绍已经自动生成了wordpress的伪静态url重写规则,若另外要手动设置顶级域名301跳转到www域名,则可以在conf配置文件中写入:

server {
listen   80;
server_name  farlee.info;
rewrite ^(.*) http://www.farlee.info$1 permanent;
}
server {
listen 80;
server_name  www.farlee.info;
...
}

若只是需要302跳转,则上面红色rewrite 规则替换为如下即可:

rewrite   ^  http://www.farlee.info$request_uri?;

也可以在.htaccess文件中设置相关的rewrite 规则,然后在nginx.conf 服务器配置文件中将该.htaccess文件include进来:

include /var/www/html/168pc/bbs/.htaccess;
Logo
作者:Gezidan
出处:http://www.rixu.net    
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2011-08-12 00:27 日需博客 阅读(2197) 评论(0)  编辑 收藏 引用 所属分类: Linux技术文章转载

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理