阿里云和Linode VPS安装Web环境 LNMP1.2安装和维护 虚拟主机安装

申明:本讲义由【卡拉科技】整理,免费分享地址:https://www.kalated.com/go/lnmp
转载请注明出处:【卡拉科技】https://www.kalated.com/1888.html
适合人群:服务器零基础者,VPS零基础者,想独立在Linux服务器上安装Web环境者
 
1,认识阿里云和Linode VPS;
 
个人认为阿里云和Linode分别是国内和国外的首选服务器,购买服务器主要从速度、稳定性和安全性考虑;本教程讲到的LNMP安装WEB环境,分别在这两个服务器上都成功测试并完美运行WordPress网站。
 
2,什么是LNMP?
 
A. Linux、Nginx、MySQL、PHP
 
B. Linux有不同的发行版,本教程只讲CentOS;
 
C. Nginx是engine x的缩写,相对Apache服务器引擎来说,其高效率和轻量级的优点,成为小型网站服务器系统的首选。(企业站和外贸站等充其量叫微小站,所以请别花费精力去对比Nginx和Apache谁更适合你)
 
D. MySQL和PHP能够完美结合,前者是数据库软件,后者是编程语言(软件)。这两个东西解释起来比较麻烦,如果你了解过最好。如果不了解也没有关系,只要注意一点:WordPress,Discuz!,Ecshop,phpwind,dedecms、drupal、ecshop、shopex等程序需要MySQL和PHP支持才能运行。
 
3-a,软件准备:
下载一个SSH工具登录VPS
下载一个FTP工具

下载NotePad++

3-b,购买VPS并安装CentOS
 
 
3-c,使用Xshell登录VPS
第一步:新建一个连接;
第二步:填写连接名称(无要求)、IP地址、
登录账号和密码;
第三步:连接,并接受保存授权;
 
4,安装LNMP
 
screen -S lnmp 新建一个LNMP的会话,避免连接中断引起安装失败;
 
A. 下载并安装LNMP一键安装包
wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp
 
B. 安装FTP软件:./pureftpd.sh
 
C. 安装zip/unzip软件 #yum install zip    #yum install unzip
 
5,添加虚拟主机
 
lnmp vhost add/list/del
 
例A. 添加主域名        yanweipai.com    www.yanweipai.com
例B. 添加二级域名    en.yanweipai.com
 
6,使用FTP登录服务器
 
7,建站
A. FTP上传文件或使用wget下载WordPress程序;
B. 执行:chown -R www /home/wwwroot/网站目录
C. 安装WordPress;
D. 启用scandir()函数;
/usr/local/php/etc/php.ini
重启PHP,以便修改生效;
/etc/init.d/php-fpm restart
8,管理phpMyAdmin,导出SQL文件,备份数据库;
*********************FAQS*************************
1,如何修改VPS登录密码?
阿里云:进入“实例”,重置密码;Linode:进入“Rescue”,重置密码;
 
2,Linode邮件提示
A. ToS Violation – SBL Listing
B. ToS Violation – Spam
 
3,IP被墙后,如果更换Linode VPS的IP
 
4,无法启动MySQL时,或因为空间已满
使用df -h查询服务器空间使用情况
 
5,隐藏phpMyAdmin管理路径
 
6,zip和unzip使用基础:
解压,#unzip x.zip
压缩,#zip -r xx.zip ./*
 

7,伪静态修改,/usr/local/nginx/conf/vhost/???.conf

修改后必须运行:/etc/init.d/nginx restart
 
*************************************LNMP状态管理命令***********************************
lnmp vhost add/list/del
lnmp ftp add/list/del
LNMP 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 1.2各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart} 
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
如重启LNMP,输入命令:/root/lnmp restart 即可,单独重启mysql:/etc/init.d/mysql restart

阿里云购买、备案和建站的一般步骤

 

1,购买阿里去ECS;

购买之前需要先在阿里云完成注册用户和认证;接着进入购买选项,企业站或小型站如图选择即可:

第一步,选购配置:阿里云 弹性计算

第二步:确认定单,输入推荐码【WT6SMY 】,享受9折优惠

阿里云 弹性计算2

 

第三步:支付。

2,进入“管理控制台”-> “备案管理”

备案管理

第一步:先申请“备案服务号”;

第二步:进入“ICP备案系统”,这里可以看成是另一个系统,专门用于备案,需要注册账号,这里不再赘述。要特别提示的一点,在这里进入申请备案时,会用到第一步申请的“备案服务号”;

第三步:提交备案后,等待直接备案成功;

3,建站

安装LNMP,绑定已备案的域名,即可完成建站。

Nginx下完美解决WordPress的伪静态

最近刚刚换了阿里云的VPS,使用的是admin5提供的主机宝镜像(这个如果是购买阿里云ECS服务器的话是免费的,否则需要另外购买,像我一样使用阿里云ECS的初学者比较适合,面板很小白很简单),由于使用的是Nginx服务器而不是Apache,传统的Apache伪静态规则不使用,主机宝后台有自带的专门用于Nginx的伪静态规则,添加好了。

Nginx

安装wordpress,使用固定链接,一切正常!然后安装No Category Base(便于搜索引擎收录嘛),出问题了!前台category是去掉了,但是后台的任何功能都无法访问了,直接显示 404 Not Found nginx页面,仔细看一下地址栏的路径,全是类似”http://shuibengzhijia.com/edit.php”这样的,关键就在于他们都少了”/wp-admin/”这条路径,路径都不对了,肯定404!

百度了半天,查到了一些解决方法,但是由于我不懂代码,而且主机宝的系统貌似保护起来了,用putty访问不到需要修改的文件,没有办法尝试一一尝试那些方法的正确与否。放弃了..最后百度到了另外一个简单有效的办法,直接修改伪静态规则,测试了一下,成功了,原来的伪静态规则一大推,修改之后非常简洁: “try_files $uri $uri/ /index.php;”

由于我不懂代码,将来会不会出其他的问题还不知道,目前前台后台一切正常,希望朋友们多多交流指导:)

办法来源于百度经验,我这里摘抄过来,有兴趣的朋友也可以去看原文链接:http://jingyan.baidu.com/article/fa4125acae758928ac7092cd.html

在Nginx下,设置Wordpress伪静态的教程,网上一大堆,且相似度极高,大家也都知道差不多都是copy过来的。不是说它们不能解决问题,但是,没有弄明白为什么,而纯粹的copy,除了给庞大的网络信息里增加一些垃圾,对任何人都没有帮助。

我们先分析一下Wordpress在apache下的伪静态规则:

<IfModule mod_rewrite.c>

RewriteEngine On RewriteBase /

RewriteRule ^index.php$ -[L]

RewriteCond %{REQUEST_FILENAME}!-f

RewriteCond %{REQUEST_FILENAME}!-d

RewriteRule . /index.php[L]

</IfModule>

这里意思其实很简单,把对所有访问index.php的文件重定向到当前根,当访问其它文件或者目录时,如果都不存在,所有请求都重定向到index.php,这样一来,我们可以访问网站上的已经存在的文件或目录,对于实际不存在的文件则交给index.php来处理。当请求交到index.php时,如果请求的是文档的固定链接,则可以查询数据库,返回文章,如果不是,则可以用index.php来生成更加友好的404页面,而不是服务器自带的404页面。那么在nginx下怎么去设置wordpressd的伪静态呢?其实在这之前,网上也能够查到很多答案,大致都是一样的结果,我摘录一下:

location / {

if(-f $request_filename/index.html){

rewrite(.*)$1/index.html break;

}

if(-f $request_filename/index.php){

rewrite(.*)$1/index.php;

}if(!-f $request_filename){

rewrite(.*)/index.php;}

}

可以看到,这样设置起来实际上是非常麻烦的,特别是当在一个站点下有多个wordpress目录时,需要对每个目录都单独设置,特别容易出错。如果对Nginx真的非常熟悉,就知道它有一个“try_files”指令,用来判断资源是否存在,用法如下:

1, try_files uri1 uri1 … urin

这里是逐个判断资源是否存在,有则返回,没有则继续找下一个资源

2,try_files uri1 uri2 … =404

这里是逐个判断资源是否存在,有则返回,没有则继续找下一个资源,如果都没有,则返回404

那么,实际上这个指令正好满足wordpress伪静态的需求:当访问一个资源时,首先查看它是否在服务器上存在,如果不存在,则查看相同名称的文件夹是否存在,如果都不存在,则交给wordpress的index.php处理。所以,最终我们只需要一句代码就可以实现wordpress的伪静态:

try_files $uri $uri/ /index.php;

文章到最后,说一句,多尝试学习才是学习之道,要警惕网络上的很多答案,因为很多人懂得很少,却说的很多。

编者按:感谢“一米阳光”的投稿;来源(http://www.shuibengzhijia.com

阿里云服务配置LNMP一键包之更改MYSQL目录

阿里云服务器来回折腾重装了三四次,根据LNMP包安装成功。由于这次升级了服务器的配置,添置了一块数据盘,根据教程挂载和重新安装了LNMP。在涉及到更改MYSQL目录时,发现一个问题记录一下,目前还不知是否正确。毕竟添置数据盘的目的就是为了将网站文件和数据远离系统盘以免系统问题而挂掉。

根据军哥的教程整理如下:

1.停掉mysql服务器

/etc/init.d/mysql stop

2.下面新目录以/home/wwwroot/mysql/ 为例,复制到新目录:

cp -R /usr/local/mysql/var/* /home/wwwroot/mysql/

3.授权为mysql用户组

chown mysql:mysql -R /home/wwwroot/mysql/

4.修改配置

vi /etc/my.cnf

查找[mysqld] ,在下面加入

datadir = /home/wwwroot/mysql/

5.启动mysql

/etc/init.d/mysql start

完成这些操作后通过PHPMYADMIN添加了一个测试数据库testdb,但进入新目录/home/wwwroot/mysql/下却没有发现生成数据库文件testdb,而在/usr/local/mysql/var/下却找到了它。这说明以上5步的操作只是将之前的数据搬过来,如果有新网站建立,数据库文件是不会在新目录下建立的。那么这时候我就怀疑了,新目录下的数据库会随着网站数据的更新而写入吗?

于是重走以上步骤,在第4步时我把默认目录设置注释掉,并添加datadir = /home/wwwroot/mysql。结束后再进入PHPMYADMIN添加数据库,在新目录下就可以看到生成文件,旧目录下就没有生成了。这说明旧目录已失效,以后的数据添加和修改都会在新目录更新。

2013-12-27 2-53-42