>一般情况下每个虚拟主机就是一个网站,网站一般通过域名进行访问。LNMP 1.2使用lnmp命令进行管理,具体可以参看 [更新记录](http://lnmp.org/changelog.html "更新记录") 虚拟主机管理基本命令介绍:lnmp vhost {add|list|del} ### 添加网站(虚拟主机) >如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除。 执行:`lnmp vhost add` 出现如下界面: ![](http://oss.wangyd.com/article/e9708d54dc8a303d932165717c12cf1b.png) 这里要输入要添加网站的域名,我们已添加 `www.vpser.net` 域名为例,如上图提示后输入域名 `www.vpser.net` 回车后提示 ![](http://oss.wangyd.com/article/93fbffd63cca16f1064f1985f72b4ba9.png) 这里询问是否添加更多域名,输入 y 回车后添加,如不添加输入 n 会有如下提示: ![](http://oss.wangyd.com/article/a6de9a2da15d789e574f5fe589670503.png) 如果需要添加更多域名或加上 `vpser.net` ,输入后回车确认。 >(注:带www和不带www的是不同的域名,如需带www和不带的www的域名都访问同一个网站需要同时都绑定)。 下面需要设置网站的目录,网站目录不存在的话会创建目录。也可以输入已经存在的目录或要设置的目录(注意如要输入必须是全路径即以/开头的完整路径!!!)。不输入直接回车的话,采用默认目录:`/home/wwwroot/`域名 ![](http://oss.wangyd.com/article/b5889ae4feac1c43b184384fd6ca6231.png) 伪静态可以使URL更加简洁也利于SEO,如程序支持并且需要设置伪静态的话,如启用输入 y ,不启用输入 n 回车。 ![](http://oss.wangyd.com/article/933ca2aef3372cd4d3266c9e0f82f818.png) 默认已经有了discuz、discuzx、discuzx2(Discuz X二级目录)、wordpress、wp2(WordPress二级目录)、typecho、typecho2(Typecho二级目录)、sablog、emlog、dabr、phpwind、、dedecms、drupal、ecshop、shopex等常用的Nginx伪静态配置文件,可以直接输入名称进行使用,如果是二级目录则需要对应配置文件里的二级目录的名称。 ![](http://oss.wangyd.com/article/424075d18c7fe8319031f0f8f8eb0f02.png) 这一步是设置日志,如启用日志输入 y ,不启用输入 n 回车。 再输入要设置的日志的名称,默认目录为:`/home/wwwlogs/` 默认文件名为:`域名.log` 回车确认后,会询问是否添加数据库和数据库用户。 ![](http://oss.wangyd.com/article/1c54d5e4141408549543f258336b32c4.png) 如果需要启用输入 y ,不启用输入 n 回车。 需要验证MySQL的root密码 提示Enter database name: 后输入要创建的数据库名称,要创建的数据库用户名会和数据库同名,回车确认。 提示Please enter password for mysql user 数据库名: 后输入要设置的密码,回车确认。 如果安装了FTP服务器会询问是否添加FTP账号 ![](http://oss.wangyd.com/article/f7c962a49ae0c0d68988c9169880e53f.png) 如果需要添加输入 y ,不添加输入 n 回车。 提示`Enter ftp account name`: 后输入要创建的FTP账号名称,回车确认。 提示`Enter password for ftp account` FTP账号: 后输入要设置的密码,回车确认。 提示 `Press any key to start create virtul host`... 后,回车确认便会开始创建虚拟主机。 添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP等相关信息,如下图: ![](http://oss.wangyd.com/article/2cae241c314ede2464c3a37176a8d05d.png) ### 伪静态管理 LNMPA 或 LAMP 可以直接使用网站根目录下放 `.htaccess` 来设置伪静态规则(具体规则可以去程序官网网站找google百度),但是在LNMP下,需要使用Nginx伪静态规则。 伪静态可以随时添加或删除,如果添加完虚拟主机后忘记或没有添加伪静态,可以通过修改配置文件来添加伪静态。 虚拟主机配置文件在:`/usr/local/nginx/conf/vhost/域名.conf` 伪静态规则文件需要放在 `/usr/local/nginx/conf/` 下面。 编辑虚拟主机配置文件,可以使用vi、nano或winscp,后2个工具对新手来说简单些。 例如前面我们添加的虚拟主机,打开后前半部分配置会显示如下: ![](http://oss.wangyd.com/article/e27aef9cea16eec94c21d287863bc01d.png) 在 `root /home/wwwroot/www.vpser.net;` 这一行下面添加: include wordpress.conf; 上面的 `wordpress.conf` 为伪静态文件,如需要其他伪静态文件自己创建个并上传到 `/usr/local/nginx/conf/` 下面并 `include 伪静态.conf`; 加完保存,执行:`/etc/init.d/nginx restart` 重启生效,如果报错可能是添加有误或伪静态规则有误。 ### 上传网站程序 如果已经安装FTP服务器可以直接使用ftp客户端通过你的FTP信息登录后上传网站或sftp等软件上传网站,设置好相关权限开始安装即可。 上传网站后建议执行:`chown www:www -R /path/to/dir` 对网站目录进行权限设置,`/path/to/dir`替换为你网站目录。 为了安全可以将一些不需要PHP运行的上传文件之类的目录去掉执行权限,参考:[http://www.vpser.net/security/lnmp-remove-nginx-php-execute.html](http://www.vpser.net/security/lnmp-remove-nginx-php-execute.html "http://www.vpser.net/security/lnmp-remove-nginx-php-execute.html") ### 列出网站(虚拟主机) 执行: lnmp vhost list ![](http://oss.wangyd.com/article/7a9da5fb1d4a8332493cd7cfc6065d4f.png) ### 删除网站(虚拟主机) 执行: lnmp vhost del ![](http://oss.wangyd.com/article/6e32b7e9bba38e1c2702e47961452176.png) 删除网站会先列出当前已有虚拟主机,按提示输入要删除的虚拟主机域名 回车确认。 这里只是删除虚拟主机配置文件,网站文件并不会删除需要自己删除。 LNMP 1.2下需要执行:chattr -i /网站目录/.user.ini 后才能删除网站目录。 当执行chown或chmod对网站目录属主属组或权限进行操作时可能会提示chown: changing ownership of `/home/wwwroot/default/.user.ini': Operation not permitted,不需要理会,如果有强迫症可以参考前面先进行chattr -i的操作。 ### 默认网站(虚拟主机) LNMP默认网站配置文件:`/usr/local/nginx/conf/nginx.conf` LNMPA默认网站配置文件:`/usr/local/nginx/conf/nginx.conf` 和 `/usr/local/apache/conf/extra/httpd-vhosts.conf` LAMP默认网站配置文件:`/usr/local/apache/conf/extra/httpd-vhosts.conf` ### 其他事项 LNMP 1.1及之前的版本使用php.ini里面,`open_basedir` 设置 LNMP 1.2及更高版本防跨目录功能使用 `.user.ini`,该文件在网站根目录下,可以修改 `open_basedir` 的值来设置限制目录的访问。 `.user.ini` 文件无法直接修改,可以使用winscp文件管理、vim编辑器或nano编辑器进行修改。 如要修或删除需要先执行:`chattr -i /网站目录/.user.ini` 删除的话 `rm -f /网站目录/.user.ini` 就可以。 修改完成后再执行:`chattr +i /网站目录/.user.ini` `.user.ini` 不需要重启一般5分钟左右生效,也可以重启一下 `php-fpm` 立即生效。 如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!! LNMP 1.4上如果不想用防跨目录还需要将 `/usr/local/nginx/conf/fastcgi.conf` 里面的 `fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";` 删除,需要重启nginx。 LNMPA或LAMP 1.2上的防跨目录的设置使用的对应apache虚拟主机配置文件里的 `php_admin_value open_basedir`参数进行设置。如果不需要设置可以在前面加 # 进行注释,或自行修改目录的限制。 重启apache生效。 ### pathinfo设置 LNMP上各个版本pathinfo各个版本的设置基本一样: lnmp v1.1上,修改对应虚拟主机的配置文件 去掉#include pathinfo.conf前面的#,把try_files $uri =404; 前面加上# 注释掉。 1.2,1.3上,修改对应虚拟主机的配置文件 将include enable-php.conf;替换为include enable-php-pathinfo.conf; 修改pathinfo需要重启nginx生效。 ### 数据库管理 1.3以上版本,可以在添加虚拟主机时选择创建数据库,也可以单独使用 lnmp database add 按提示添加数据库,添加的用户名和数据库名是同名的。 添加数据库命令:`lnmp database add` 编辑数据库用户密码命令:`lnmp database edit` 删除数据库命令:`lnmp database del` 列出所有数据库命令:`lnmp database list`