目前流行的配置是Linux+Nginx+PHP+MySQL,简称LNMP。下面简单介绍一下配置方法。
一、安装CentOS和LNMP包。
安装CentOS 5.5,系统安装完后自带APACHE,先运行yum remove httpd,删除Apache!
用SSH登录LINUX,安装LNMP。
1、下载LNMP一键安装包:
wget -c http://soft.vpser.net/lnmp/lnmp0.5.tar.gz
http://soft.vpser.net/lnmp/lnmp0.5.tar.gz
或
http://soft.vpser.net/lnmp/lnmp0.5-full.tar.gz
2、解压LNMP一键安装包:
tar zxvf lnmp0.5.tar.gz
3、CentOS下安装步骤
# 下载版执行命令
cd lnmp0.5/
# 然后再执行
./centos.sh
,输入要绑定的域名,回车,再输入要设置的MySQL root的密码,再次回车确认。
程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。
虚拟主机管理
# 1、添加虚拟主机,执行如下命令:
./vhost.sh
根据提示输入要绑定的域名,回车,如果需要添加更多的域名,输入y,再输入要另外绑定的域名,多个域名可以用空格隔开。再输入域名绑定的目录(绝对 目录, 如/home/wwwroot/lnmp,如果不填默认是/home/wwwroot/绑定的域名),再选择是否添加伪静态规则,默认已经有了 Discuz、Wordpress、Sablog、emlog、dabr,可直接输入以上名称即可,如果需要添加自定义伪静态规则,直接输入一个想要的名 字,程序会自动创建伪静态文件,直接在/usr/local/nginx/conf/你自定义的伪静态名字.conf 里面添加伪静态规则就行。接下来会提示是否需要启用日志功能,一般情况下不需要启动,直接输入n就行,如需启动,输入y,再输入要定义的日志文件名字,回 车就会自动添加虚拟主机。
# LNMP状态管理:
/root/lnmp {start|stop|reload|restart|kill|status}
phpinfo : http://前面输入的域名或IP/phpinfo.php
phpMyAdmin : http://前面输入的域名或IP/phpmyadmin/
探针 : http://前面输入的域名或IP/p.php
MySQL root密码:如果不输入直接回车为root,否则为你输入的密码。
LNMP相关目录:
mysql : /usr/local/mysql
php : /usr/local/php
nginx : /usr/local/nginx
网站目录: /home/wwwroot
*添加虚拟主机域名也可以手动配置:
键入命令:
vi /usr/local/nginx/conf/nginx.conf
或者:
vi /usr/local/nginx/conf/vhost/*.conf
添加如下代码:
server
{
listen 80;
server_name www.***.com ***.com *.***.com;
index index.html index.htm index.php;
root /home/wwwroot/***;
location ~ .*\.(php|php5)?$
{
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log off;
}
***改成你的域名就行,再建虚拟主机只要在下面添加 同样的代码就行;
再执行
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
或者
/usr/local/nginx/sbin/nginx -s reload
之后虚拟机就生效了。
二、更新Nginx并重新编译Nginx使之支持IPv6(如果不需要IPv6支持,此部分可忽略)
请点这里:Nginx和Apache WEB服务器的IPv6设置
三、安装vsftpd
1.yum安装vsftpd:
yum install vsftpd
touch /var/log/vsftpd.log # 创建vsftp的日志文件
2.设置每次开机时自动运行及手工启动它:
chkconfig vsftpd on
service vsftpd start
netstat -tl
可以查看ftp端口是否在侦听了!
3.配置文件
配置/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list,#不能登陆FTP的用户;
配置 /etc/vsftpd/vsftpd.conf
#anonymous_enable=YES
anonymous_enable=NO #设定不允许匿名用户访问
chroot_local_user=YES #把系统内所有的FTP用户都限制在家目录中 xferlog_file=/var/log/vsftpd.log 设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来
ascii_upload_enable=YES
ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能。
pam_service_name=vsftpd PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
4.设定FTP目录
修改 /home/wwwroot 目录属性:
chmod -R 777 /home/wwwroot
递归地给此目录下所有文件和子目录的读、写、执行权限
chgrp -R ftp /home/wwwroot
递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组
5.增加FTP用户
adduser -d /home/wwwroot -g ftp -s /sbin/nologin 用户名
#增加用户,组是FTP,目录是/home/wwwroot
passwd 用户名
#设定用户密码
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
6.重启FTP
service vsftpd restart
guest_enable=YES 设定启用虚拟用户功能。
guest_username=ftp 指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf 设定虚拟用户个人vsftp的配置文件存放路径。存放虚拟用户个性的配置文件(配置文件名=虚拟用户名)
7.有时会出现上传多个小文件时卡住的情况,可以编辑/etc/vsftpd/vsftpd.conf如下:
connect_from_port_20=YES
pasv_min_port=49152
pasv_max_port=65534
data_connection_timeout=1
或者将文件打包上传到服务端再解压来解决此问题。
8.修改已有用户的FTP目录
usermod -d /home/www/abc.com abc
注: /home/www/abc.com 为修改的目标文件夹 abc 为要修改目录的用户名
9.vsftpd的默认设置是所有目录都可以被客户进入,极为不安全,因此要限制用户可以访问目录,设置方法如下:
chroot_local_user=YES
在vsftpd.conf最下面增加这一行,重启ftp即可
四、Linux系统常用命令
1.将tar.gz压缩文件在当前目录下解压缩命令:
tar zxvf filename.tar.gz
2.在CentOS中安装unzip
命令:
yum install unzip
将zip压缩文件在当前目录下解压缩
命令:
unzip filename.zip
3.建立目录命令为mkdir 目录名字
mkdir /home/wwwroot/abc.com
4.删除目录命令为 rm -rf 目录名字
rm -rf /home/wwwroot/abc.com
两个参数-rf 即:
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
删除文件使用 rm -f 文件名字
五、实例:安装WordPress设置固定链接教程
1.安装Wget
yum install wget
2.进入虚拟机所在目录
cd /home/wwwroot
3.下载WordPress到服务器并解压
wget http://wordpress.org/latest.tar.gz
tar zxvf latest.tar.gz
4.修改WordPress目录属性
chmod -R 777 /home/wwwroot/wordpress
chgrp -R ftp /home/wwwroot/wordpress
chown -R www /home/wwwroot/wordpress
5.nginx下WordPress的固定链接(Permalink)设置
编辑/usr/local/nginx/conf/nginx.conf文件,在server容器中添加下面这几行,其中wordpress目录按实际修改:
location /wordpress/ {
rewrite ^index\.php$ - last;
if ( !-e $request_filename ) {
rewrite . /wordpress/index.php last;
}
}
修改完成以后,执行如下命令重启lnmp即可:
/root/lnmp restart