centos 6 安装LNMP
安装步骤:
1、使用putty或类似的SSH工具登陆VPS或服务器;
登陆后运行:screen -S lnmp
如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装,详细内容参考screen教程。
2、下载并安装LNMP一键安装包:
您可以选择使用下载版(推荐国外或者美国VPS使用)或者完整版(推荐国内VPS使用),两者没什么区别,只是完整版把一些需要的源码文件预先放到安装包里。
安装LNMP执行:
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp
参考地址:https://lnmp.org/install.html
这一步,有些情况会get不到文件,多试几次就可以了。
默认安装lnmp可不写,如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpa或lamp即可。
如下载速度慢请更换其他下载节点,详情请看下载页面。LNMP下载节点具体替换方法。
按上述命令执行后,会出现如下提示:
需要设置MySQL的root密码(不输入直接回车将会设置为root)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除。输入后回车进入下一步,如下图所示:
询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y ,如果确定确实不需要该引擎可以输入 n,输入完成,回车进入下一步
选择MySQL版本,目前提供了较多版本的MySQL和MariaDB,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择:
输入对应MySQL或MariaDB版本前面的序号,回车进入下一步,选择PHP版本:
注意:选择PHP7等高版本时需要自行确认是否与自己的程序兼容。
输入要选择的PHP版本的序号,回车进入下一步,选择是否安装内存优化:
可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。
如果是LNMPA或LAMP的话还会提示“Please enter Administrator Email Address:”,需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上。
再选择Apache版本
按提示输入对应版本前面的数字序号,回车。
提示”Press any key to install…or Press Ctrl+c to cancel”后,按回车键确认开始安装。
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。
安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。
3、安装完成
如果显示Nginx: OK,MySQL: OK,PHP: OK
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示Install lnmp V1.3 completed! enjoy it.的话,说明已经安装成功。
====================================================================================================
LNMP使用
====================================================================================================
一般情况下每个虚拟主机就是一个网站,网站一般通过域名进行访问。
本文为教程适合LNMP 1.2+,各个版本的添加过程基本类似,按提示操作即可。1.4版添加了SSL选项可以选择Letsencrypt和自备SSL证书,多PHP版本选择等功能。1.3版增加了FTP和数据库的创建等。LNMP 1.4的跨目录同时增加在fastcgi.conf中进行管控,LNMP1.2的防跨目录也由原来在php.ini中设置移至网站根目录下的.user.ini 进行控制。
LNMP 1.1及之前的版本采用/root/vhost.sh 进行添加虚拟主机。
LNMP 1.2开始使用lnmp命令进行管理,具体可以参看更新记录
虚拟主机管理基本命令介绍:lnmp vhost {add|list|del}
之前版本的LNMP都可以升级到新版的lnmp管理脚本,升级到1.4教程
##添加网站(虚拟主机)##
如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除。
执行:lnmp vhost add 出现如下界面:
这里要输入要添加网站的域名,我们已添加www.vpser.net域名为例,如上图提示后输入域名 www.vpser.net 回车后提示
这里询问是否添加更多域名,直接再输入要绑定的域名,这里我们将 vpser.net 也绑上,多个域名空格隔开,如不需要绑其他域名就直接回车。
(注:带www和不带www的是不同的域名,如需带www和不带的www的域名都访问同一个网站需要同时都绑定)。
下面需要设置网站的目录
网站目录不存在的话会创建目录。也可以输入已经存在的目录或要设置的目录(注意如要输入必须是全路径即以/开头的完整路径!!!)。不输入直接回车的话,采用默认目录:/home/wwwroot/域名
伪静态可以使URL更加简洁也利于SEO,如程序支持并且需要设置伪静态的话,如启用输入 y ,不启用输入 n 回车(注意LNMPA或LAMP模式没有该选择项!)。
默认已经有了discuz、discuzx、discuzx2(Discuz X二级目录)、wordpress、wp2(WordPress二级目录)、typecho、typecho2(Typecho二级目录)、sablog、emlog、dabr、phpwind、、dedecms、drupal、ecshop、shopex等常用的Nginx伪静态配置文件,可以直接输入名称进行使用,如果是二级目录则需要对应配置文件里的二级目录的名称。
这一步是设置日志,如启用日志输入 y ,不启用输入 n 回车。
如果启用需要再输入要设置的日志的名称,默认日志目录为:/home/wwwlogs/ 默认文件名为:域名.log 回车确认后,会询问是否添加数据库和数据库用户。
如果需要添加数据库输入 y ,不添加数据库输入 n 回车。
如果要添加,需要先验证MySQL的root密码(注:输入密码将不显示)
提示Enter database name: 后输入要创建的数据库名称,要创建的数据库用户名会和数据库同名,回车确认。
提示Please enter password for mysql user 数据库名: 后输入要设置的密码,回车确认。
如果安装了FTP服务器会询问是否添加FTP账号
如果需要添加输入 y ,不添加输入 n 回车。
提示Enter ftp account name: 后输入要创建的FTP账号名称,回车确认。
提示Enter password for ftp account FTP账号: 后输入要设置的密码,回车确认。
接下来是1.4新增的添加SSL功能
如果需要添加输入 y ,不添加输入 n 回车。
选择了添加SSL会提示
有两个选项,1 选项为使用自己准备好的SSL证书和key。
> > 提示Please enter full path to SSL Certificate file 后输入要SSL证书的完整路径和文件名,回车确认。
> > 提示Please enter full path to SSL Certificate Key file: 后输入输入要key文件的完整路径和文件名,回车确认。
2 选项为使用免费SSL证书提供商Letsencrypt的证书,自动生成SSL证书等信息。
需要输入一个邮箱回车确认。
提示 Press any key to start create virtul host… 后,回车确认便会开始创建虚拟主机。
添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP等相关信息,如下图:
##伪静态管理##
LNMPA或LAMP可以直接使用网站根目录下放.htaccess 来设置伪静态规则(具体规则可以去程序官网网站找google百度),但是在LNMP下,需要使用Nginx伪静态规则。
伪静态可以随时添加或删除,如果添加完虚拟主机后忘记或没有添加伪静态,可以通过修改配置文件来添加伪静态。
虚拟主机配置文件在:/usr/local/nginx/conf/vhost/域名.conf
伪静态规则文件需要放在/usr/local/nginx/conf/ 下面。
编辑虚拟主机配置文件,可以使用vi、nano或winscp,后2个工具对新手来说简单些。
例如前面我们添加的虚拟主机,打开后前半部分配置会显示如下:
在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
##列出网站(虚拟主机)##
执行:lnmp vhost list
##删除网站(虚拟主机)##
执行:lnmp vhost del
删除网站会先列出当前已有虚拟主机,按提示输入要删除的虚拟主机域名 回车确认。
这里只是删除虚拟主机配置文件,网站文件并不会删除需要自己删除。
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,该文件在网站根目录下,可以修改.user.ini 里面的open_basedir的值来设置限制访问的目录或删除来移除防跨目录的设置。
.user.ini文件无法直接修改,如要修或删除需要先执行:chattr -i /网站目录/.user.ini
可以使用winscp文件管理、vim编辑器或nano编辑器进行修改。
删除的话rm -f /网站目录/.user.ini 就可以。
修改完成后再执行:chattr +i /网站目录/.user.ini
.user.ini不需要重启一般5分钟左右生效,也可以重启一下php-fpm立即生效。
如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!!
LNMP 1.4上如果不想用防跨目录或者修改.user.ini的防跨目录的目录还需要将 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param PHP_ADMIN_VALUE “open_basedir=$document_root/:/tmp/:/proc/”; 在该行行前添加 # 或删除改行,需要重启nginx。
LNMP 1.4上也可以直接使用lnmp1.4/tools/ 目录下的 ./remove_open_basedir_restriction.sh 进行移除。
LNMPA或LAMP 模式1.2版本以上的防跨目录的设置使用的对应apache虚拟主机配置文件(lnmp管理工具添加的话文件是 /usr/local/apache/conf/vhost/域名.conf )里的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
LNMP相关软件安装目录
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : 0.9版为/home/wwwroot/phpmyadmin/ 1.0版为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版为 /home/wwwroot/ 1.0版为 /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
PureFtpd 目录:/usr/local/pureftpd/
PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
Proftpd 目录:/usr/local/proftpd/
Redis 目录:/usr/local/redis/
LNMP相关配置文件位置
Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
/root/vhost.sh添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf
Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
Redis 配置文件:/usr/local/redis/etc/redis.conf
LNMPA相关目录文件位置
Apache目录:/usr/local/apache/
Apache配置文件:/usr/local/apache/conf/httpd.conf
Apache虚拟主机配置文件目录:/usr/local/apache/conf/vhost/
====================================
设置Mysql远程连接,防火墙设置:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT service iptables save service iptables restart
删除iptables规则
查看当前规则
iptables -L -n
iptables -L -n –line-number
iptables -D INPUT 3
====================================
给用户权限
grant all on *.* to 用户名@”%” identified by “密码”;
flush privileges;刷新权限
====================================
首先需要你有root权限,SSH登录,进入到wp的安装目录:
给予所有的写权限:
chmod 777 wordpress目录名
接下来给你的博客的文章上传一张图片,WP会生成一个目录, 然后查看是哪个用户创建了文件夹。一般情况下,这个用户名叫“ apache”,也有不少人发现这个用户是“nobody”,在VPS上安装的是LNmp, 这个用户是“www”
接下来把wordpress目录权限还原到 755::
cd ..
chmod 755 wordpress目录
下来就是实际修复的命令了, 改变wp所在文件夹的拥有者为刚找到的这个用户www:
cd ..
chown -R www:www wordpress目录 OK,问题解决了
发表评论