购买阿里云ECS(aliyun Elastic Compute Service)
建议最初可以选择最低配置,因为后续升级也非常容易。参考:在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境
- 操作系统建议选择Linux,资源占用低,网络性能好,不过是纯命令行的,如果不喜欢可以选择Windows;
- 建议选择比较流行的且较快的Ubuntu,版本建议选择最新的长期支持版本14.04,如果不习惯也可以选择CentOS;
- 一般情况下,Linux系统盘的20G够用了(可用18G),如果网站还要上传图片和音视频则需要购买数据盘;
安装LNMPA
LNMPA是什么?
也许大家对LAMP、LNMP比较熟悉,LAMP代表Linux下Apache、MySQL、PHP这种网站服务器架构;LNMP代表的是Linux下Nginx、MySQL、PHP这种网站服务器架构。LNMPA代表的是Linux下Nginx、MySQL、PHP、Apache这种网站服务器架构,是结合LAMP与LNMP各自的优点而产生的新的网站服务器架构。
我们为什么采用LNMPA这种架构?
采用Linux、PHP、MySQL的优点我们不必多说。
Nginx是一个小巧而高效的Linux下的Web服务器软件,与Apache相比,消耗资源更少,支持的并发连接,更高的效率,反向代理功能效率高、静态文件处理快等。
Apache是一款老牌的Web服务器软件,在高并发时对队列的处理比FastCGI更成熟,Apache的mod_php效率比php-cgi更高且更稳定、对伪静态支持好,不需要转换、多用户多站点权限等方面有着更好的效果……
LNMPA这种架构有什么优势?
LNMPA使用Nginx作为前端服务能够更快更及时的静态页面、js、图片等,当客户端请求访问动态页面时由Nginx的反向代理给Apache处理,Apache处理完再交予Nginx返回给客户端。
采用LNMPA能够更好的解决LNMP架构中由于PHP-FPM方面产生的502错误,同时能够为提供更安全的多用户多站点环境。
Windows登陆远程主机
下载Putty解压并运行putty.exe,输入远程主机的公网IP,点击打开,输入账号(Linux为root)和密码登陆即可。
首先安装LNMP:http://lnmp.org/install.html
安装MySQL会询问是否安装InnoDB存储引擎,一般网站不需要,如果是做大数据处理的则需要安装。
参考:MySQL: InnoDB 还是 MyISAM?、Default storage engine设置安装PHP的版本,推荐 5.3.28,性能有所提升,也是大势所趋:
参考:PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析MySQL版本选择,首次安装建议选择5.5,如果是5.1的没必要升级到5.5:
在低并发情况下,MySQL5.1跟MySQL5.5性能持平,而实际应用中大部分并发数都低于10,因此绝大部分用户没有必要立即更换至5.5版本;
在高并发情况下,MySQL5.5的性能优势明显。
参考:
MySQL5.5与MySQL5.1 性能(比较)对比测试—MySQL实验室
MYSQL5.5和MYSQL5.1性能对比
MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要区别
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。
安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。
安装完成后命令行提示:
在浏览器里输入公网IP可以看到默认页面:
然后安装Apache:http://lnmp.org/lnmpa.html
注意:低于1G内存不建议使用LNMPA,升级到LNMPA后无法降回LNMP。
启用 InnoDB(一键LNMP已安装InnoDB,只是没有启用)
/etc/init.d/mysql stop
vim /etc/my.cnf
将默认引擎改为InnoDB,并注释掉loose-skip-innodb
:/etc/init.d/mysql start
参考:MySql中启用InnoDB数据引擎的方法
如果没有安装InnoDB需要安装:
mysql中如何安装innodb plugin、mysql 安装innodb支持
MySQL命令:MySQL命令行登录、MySQL数据库命令行工具
LNMP状态管理命令
LNMP状态管理命令:
LNMP状态管理: /root/lnmp {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}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
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
LNMPA状态管理命令:
LNMPA状态管理: /root/lnmpa {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}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
Apache状态管理:/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}
挂载数据盘
购买的数据盘默认没有格式化和分区,需要手动操作:Linux 系统挂载数据盘
其他
Linux内存占用高的原因:Linux VPS内存占用那么多?- 解析Linux内存机制
Putty连接异常中断后如何注销其他用户:如何注销其他已登录的用户?