阿里云
1024开发者盛宴之Java专家问答专场
发表主题 回复主题
  • 48815阅读
  • 42回复

阿里云主机手把手教你安装LNMP环境经验分享

级别: 程序猿
发帖
345
云币
163
— 本帖被 swking 从 弹性计算 移动到本区(2014-03-18) —
/){F0Zjjt  
}?[^q  
一句话开头:欲善其事,先利其器一直以来,在VPS上没少花时间折腾,本文针对新人,菜鸟级别的网站管理员,如果你是高手,请别吐槽,如发现我有错误,记得指点,小的先谢过。 GjTj..G/  
服务器配置硬件信息: }#0MJ6L  
CPU:Intel® Xeon® CPU E5620 @ 2.40GHz | 频率:2400.056 | 二级缓存:12288 KB | Bogomips:4800.11 wkNf[>jX?  
物理内存:1G eyq\a'tyB  
硬盘:60G ) D_ZZPq_  
LNMP 安装环境步骤
  1. 阿里云主机的Linux系统挂载数据盘;
  2. 采用LNMP0.9 军哥一键安装包;
  3. 添加域名(包括数据库,URL重写规则,301,404错位);
  4. 优化、配置(包括函数的开启,权限的配置)。
h M{&if  
第一步 阿里云主机的Linux系统挂载数据盘 fDe4 [QQ8  
适用系统:Redhat , CentOS X^204K%:  
Linux的云主机数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作。下面的操作将会把数据盘划分为一个分区来使用。
  1. 查看数据盘在没有分区和格式化数据盘之前,使用 “df –h”命令,是无法看到数据盘的,可以使用“fdisk -l”命令查看。如下图:
  2. 对数据盘进行分区执行“fdisk /dev/xvdb”命令,对数据盘进行分区;根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成。
  3. 查看新的分区使用“fdisk -l”命令可以看到,新的分区xvdb1已经建立完成了。
"mT95x\NA\  
  1. 格式化新分区使用“mkfs.ext3 /dev/xvdb1”命令对新分区进行格式化,格式化的时间根据硬盘大小有所不同。
  2. 添加分区信息使用“echo ‘/dev/xvdb1 /mnt ext3 defaults 0 0’ >> /etc/fstab”命令写入新分区信息。然后使用“cat /etc/fstab”命令查看,出现以下信息就表示写入成功。
  3. 挂载新分区使用“mount -a”命令挂载新分区,然后用“df -h”命令查看,出现以下信息就说明挂载成功,可以开始使用新的分区了。
! C}t)R]^  
OK,到此阿里云主机的Linux系统挂载数据盘搞定,其实很简单。 KKMzhvf]#  
安装LNMP0.9 军哥一键安装包 O5}/OH|j  
LNMP简介 n =SY66  
LNMP一键安装包是什么? OPm ?kr  
LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat、Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序。 e| AA7  
我们为什么需要它? $E=t6WvA  
编译安装需要输入大量的命令,如果是配置生产环境需要耗费大量的时间。不会Linux的站长或Linux新手想使用Linux作为生产环境…… X`xI~&t_  
它有什么优势? _PTo !aJL  
无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对VPS用户进行了优化。 Cjvgf .>$  
如何获取它? kk`BwRh)d;  
你可以自由 下载 并使用它在VPS(VDS)或独立服务器上,做为真正的生产环境或测试环境。 \)?mIwo7~  
它安装那些软件: _W@SCV)yH  
Nginx XD1 x*#  
MySQL  ]J= S\  
PHP R<r"jOd]  
PHPMyAdmin F[aow$",+}  
Zend Optimizer 5f54E|vD  
eAccelerator o;#{N~4[$  
Apache(可选) ~&E|;\G  
ionCube(可选) >v4k_JX  
PureFTPd(可选) WA);Z=  
imageMagick(可选) 'WqSHb7  
memcached(可选) 6{O#!o*g  
rWN#QL()*  
菜鸟们如何安装LNMP? 4fDo}~  
+B*8$^,V)  
] o!#]]   
LNMP的安装很简单,请查看LNMP安装教程网址: K;2]c3T  
http://lnmp.org/install.html (wJtEoB9^  
我这里就不提及如何安装了,主要是分享下安装成功后的经验: lYd#pNN  
经验提醒:第一次填写的域名最好是二级域名或IP,这样方便以后管理,如下图: ?FRR";  
-t9oL3J  
通常安装完之后:你会看到一下图片,表示LNMP环境成功了。 {Y5h*BD>  
1SBc:!2  
接下来,添加域名(包括数据库,URL重写规则,301,404错误页面) l3aG#4jj  
inBd.%Yr  
0w >DU^+  
添加域名 p71% -nV  
执行如下命令:/root/vhost.sh 3 )f=Z2U>  
根据提示输入要绑定的域名,回车,回车就会自动添加虚拟主机。 SwQ.tK1p  
这里经验分享: 网站目录我只定义输入到了 K{VF_S:  
/var/www/html/www.banyou001.com(请根据你的域名修改) Fqzk/m  
如果删除虚拟主机 GS{:7%=j  
ssh执行: rm /usr/local/nginx/conf/vhost/域名.conf IidZ -Il  
添加数据库 TGLkwXOkT  
通常你第一次输入的二级域名,就可以看到,也就是下图:里面的phpmyadmin。  OU=9fw  
经验分享:如果找不到数据库,可以用: _lQ+J=J$.R  
phpMyAdmin : http://前面输入的域名或IP/phpmyadmin/ 1at$_\{.(  
URL重写规则 ?xf59mY7  
LNMP自带了Discuz、Discuzx、Wordpress、Sablog、Emlog、Dabr、Phpwind、Wp2(二级目录wp伪静态),可直接输入以上名称即可; 3w )S=4lB  
如果需要添加自定义伪静态规则,直接输入一个想要的名字,程序会自动创建伪静态文件,直接在/usr/local/nginx/conf/你自定义的伪静态名字.conf 里面添加伪静态规则就行。 4qda!%  
经验分享:(添加完自定义伪静态规则执行/etc/init.d/nginx restart 重启生效)。 ;hs:wLVa"  
LNMP 将带www域名 301 到带www域名 c : *wev  
实现方法: 5q]u:  
http://banyou001.com/ 301到 http://www.banyou001.com/为例。 :0T]p"y4  
命令:
  1. cd /usr/local/nginx/conf/vhost下相应的.conf文件
  2. vi cd /usr/local/nginx/conf/vhost下相应的.conf文件
  3. i vhost下相应的.conf文件 开始修改
  4. 修改完之后,按ESC,再输入 :wq保存退出。
3Gn2@`GC  
原代码如下:server { listen 80; server_name www.banyou001.com banyou001.com; index index.html index.htm index.php default.html default.htm default.php; root /var/www/html/www.banyou001.com; include none.conf; 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; } kt1f2cj  
修改为:server { listen 80; server_name www.banyou001.com;(#这里去除banyou001.com) index index.html index.htm index.php default.html default.htm default.php; root /var/www/html/www.banyou001.com; include none.conf; 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; } (这里添加以下代码) server { server_name banyou001.com; rewrite ^(.*) http://www.banyou001.com$1 permanent; } SU# S'  
最后结果代码如下:server { listen 80; server_name www.banyou001.com; index index.html index.htm index.php default.html default.htm default.php; root /var/www/html/www.banyou001.com; include none.conf; 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; } server { server_name banyou001.com; rewrite ^(.*) http://www.banyou001.com$1 permanent; } z@y* jT  
OK 现在访问 http://banyou001.com/ jTw s0=F*  
试试看,是不是到了 http://www.banyou001.com/ 了呢? 6o;lTOes  
404错误页面 zi>f436-  
404错误页面对于SEO和用户体验来说都是很重要的。 |iM*}Ix-  
那么,LNMP如何实现呢?其实也很简单:  CjQ_oNI  
第一步 编辑Nginx配置文件; },a|WL3^  
命令是:vi /usr/local/nginx/conf/nginx.conf ! # tRl  
在http区段添加下面代码:fastcgi_intercept_errors on; v,>F0ofJ  
如图: #Mbt%m  
第二步骤编辑网站配置文件,比如本站:命令是: W&06~dI1!  
vi /usr/local/nginx/conf/vhost/www.banyou001.com.conf k9 *0xukJ  
在server 区段添加下面代码: .M>u:,v  
error_page 404 = /404.html; 0nie>  
如下图: 2L<TqC{,-  
第三步 测试配置文件是否正确: x6DH0*[.  
命令:/usr/local/nginx/sbin/nginx -t M`?/QU~  
返回下面代码通过: ;8 McG83  
the configuration file /usr/local/nginx/conf/nginx.conf syntax is okconfiguration file /usr/local/nginx/conf/nginx.conf test is successful 56<LMY|d  
第四步 重启LNMP生效: U}A+jJ  
命令:/root/lnmp restart '&<-,1^L  
404错误页面制作的注意事项:
  1. 不要将404错误转向到网站主页,否则可能会导致主页在搜索引擎中被降权或消失
  2. 不要使用绝对URL,如果使用绝对URL返回的状态码是302 200,这样会产生大量的重复网页。
  3. 404页面设置完成,一定要检查是否正确。http头信息返回的一定要是404状态。这个可以通过服务器头部信息检查工具进行检查。
  4. 404页面不要自动跳转,让用户来决定去向。
  5. 自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面。
F$ h/k^  
* )]SsM1  
LNMP 优化、配置(包括函数的开启,权限的配置) /@#)j( eY/  
KktTR`W  
B8s|VI  
函数的开启 =D[h0U  
目前LNMP 0.9禁用了部分危险函数: M.OWw#?p:_  
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen G~esSL^G/  
手动开启函数 pfsockopen、fsockopen:由于禁用了pfsockopen、fsockopen 会造成 Discuzx Discuz X通行失败,通过Socket连接SMTP无法发送邮件 或wordrpess的Akismet 无法工作: bfpW ^y  
解决方法:目前最常可能用到的就是pfsockopen、fsockopen,如果将这2个函数从禁用列表里删除可以执行: d'3'{C|kk  
sed -i 's/disable_functions =.*/disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket/g' /usr/local/php/etc/php.ini 1~`g fHI4  
然后执行:/etc/init.d/php-fpm restart重启生效 4|+ |L_  
手动开启函数scandir +mxYz#reX  
wordpress3.4后主题管理不显示其他的主题? H>7!+&M  
原因在于scandir没有启用,打开就可以了, NX=dx&i>+  
解决办法:将scandir打开。 WG}QLcP  
执行: }bnkTC  
sed -i 's/disable_functions =.*/disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket/g' /usr/local/php/etc/php.ini nVM`&azD  
同理执行:/etc/init.d/php-fpm restart重启生效 rRt<kTk!U  
用户的权限的配置 &YMVoyVD  
WordPress后台不能修改主题或插件不能自动升级通常的原因在于权限不够。无法在线修改主题或者更新插件,修改主题无更新选项按钮,升级插件会弹出输入FTP信息的输入框界面,出现此类情况一般都是主题文件权限问题,需要把权限设置给www用户组,比如wordpress安装目录为/var/www/html/www.banyou001.com/ued/ sIy$}_  
解决办法:用Putty或Oppenssh登录VPS,执行: ud#8`/!mq  
chown -R www /var/www/html/www.banyou001.com/ued/ fzio8m KVX  
伴游云集版权所有 未经应许不得转载 g1{wxBFE  
-"nYCF  
AN1bfF:C  
级别: 程序猿
发帖
345
云币
163
只看该作者 沙发  发表于: 2012-08-08
Re阿里云主机手把手教你安装LNMP环境经验分享
对大家没帮助吗?
级别: 程序猿
发帖
200
云币
150
只看该作者 板凳  发表于: 2012-08-08
Re阿里云主机手把手教你安装LNMP环境经验分享
一直用wdcp 一键安装的
级别: 研究猿
发帖
4672
云币
1641
只看该作者 地板  发表于: 2012-08-08
回 1楼(ap1598f4m) 的帖子
楼主是来发外链的
级别: 程序猿
发帖
345
云币
163
只看该作者 4楼 发表于: 2012-08-08
回2楼baker95935的帖子
不喜欢,那个太多用不上的东东,LNMP适合新手。慢慢自己玩配置横有乐趣。
级别: 程序猿
发帖
200
云币
150
只看该作者 5楼 发表于: 2012-08-08
Re阿里云主机手把手教你安装LNMP环境经验分享
要是不是做站就慢慢玩了,站都假设好了 不能乱玩了吧
级别: 布道狮
发帖
2389
云币
2588

只看该作者 6楼 发表于: 2012-08-08
回 3楼(ap6214f2r) 的帖子
本来我想顶一个,看到外链就木有回帖的欲望了。。
级别: 程序猿
发帖
345
云币
163
只看该作者 7楼 发表于: 2012-08-08
回6楼liming837的帖子
哪有~~~我自己写的。我的博客上。
级别: 程序猿
发帖
345
云币
163
只看该作者 8楼 发表于: 2012-08-08
回3楼ap6214f2r的帖子
我写在博客上的哈。给大家例子嘛。
级别: 布道狮
发帖
2389
云币
2588

只看该作者 9楼 发表于: 2012-08-08
回 7楼(ap1598f4m) 的帖子
有木有你知道我知道大家都知道
级别: 程序猿
发帖
345
云币
163
只看该作者 10楼 发表于: 2012-08-08
回9楼liming837的帖子
希望能帮到大家。
级别: 程序猿
发帖
268
云币
222
只看该作者 11楼 发表于: 2012-08-08
Re阿里云主机手把手教你安装LNMP环境经验分享
有点外链其实无所谓了。。写了这么多,对新手还是有点用的。 谢谢分享
级别: 程序猿
发帖
345
云币
163
只看该作者 12楼 发表于: 2012-08-08
回11楼fileshare的帖子
对~
级别: 程序猿
发帖
345
云币
163
只看该作者 13楼 发表于: 2012-08-08
回11楼fileshare的帖子
开明的主儿呀。
级别: 程序猿
发帖
345
云币
163
只看该作者 14楼 发表于: 2012-08-08
Re阿里云主机手把手教你安装LNMP环境经验分享
关键吧。链接是nofollow.
发表主题 回复主题
« 返回列表
«123»
共3页
上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个