热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

128M小内存VPS主机安装LNMP服务器环境

买了个128MB内存的VPS,想装WordPress折腾下。软件当然首选LNMP,系统尝试了几次还是选Debian。话说高配置的机器还是推荐Centos,文档多,出了问题也好解决。但是像128MB内存的机器还是Debian省资源。从lnmp.org下了一键安装包。可是尝试无数次都失败。最后
买了个128MB内存的VPS,想装WordPress折腾下。软件当然首选LNMP,系统尝试了几次还是选Debian。话说高配置的机器还是推荐Centos,文档多,出了问题也好解决。但是像128MB内存的机器还是Debian省资源。
从lnmp.org下了一键安装包。可是尝试无数次都失败。最后看log发现是mysql安装失败。nginx和php都编译并安装,唯独mysql编译的时候out of memory了。于是想用一键安装包的脚本安装nginx和php等软件,mysql用apt-get安装。研究下了一键安装脚本,发现过于繁琐,虽然lnmp.org提供的一键安装包省事而且也能提高网站的访问体验,但是系统开销是很大的。
找来找去无意中看到了一个很神奇的脚本lowendbox的lowendscript。研究下了果断决定用这个脚本安装。
下面是LEB脚本包含的软件和对系统的修改
安装/替换的软件
dropbear to replace openssh. Invoked from xinetd.
inetutils-syslogd to replace rsyslog.
exim4 to replace sendmail (if installed). Re-configured to allow Internet delivery.
cron
nginx
mysql. Re-configured to remove innodb support, remove query cache and reduce key buffer size.
php with built-in FastCGI interface. Running only 1 child process and respawn after 5,000 requests.
对系统/软件的修改:
Removing some commonly bundled applications that should not be there in the first place for a minimal distro (apache2, sendmail, bind9, samba, nscd, etc).
MySQL root is given a new password (which can be found in ~root/.my.cnf)
Installing each WordPress site under /var/www/. It will create appropriate database, users and password for the site.
安装步骤:
1.下载lowendscript
wget ?no-check-certificate https://github.com/lowendbox/lowendscript/raw/master/setup-debian.sh
2.优化系统
bash setup-debian.sh system
其实该命令包含:
remove_unneeded//移除不必要的组件,具体请参考脚本
update_upgrade//apt-get update 和upgrade
install_dash//安装dash代替bash
install_syslogd//安装轻量级syslogd代替rsyslog
install_dropbear//安装dropbear代替openssh
3.安装exim4代替sendmail
bash setup-debian.sh exim4
4.安装Nginx
bash setup-debian.sh nginx
5.安装PHP
bash setup-debian.sh php
默认开启一个php-cgi进程,修改方法:
echo “PHP_FCGI_CHILDREN=3″  > /etc/default/php-cgi
6.安装MySQL
bash setup-debian.sh mysql
root密码存放在/root/.my.cnf
我安装完重启mysql会报错Access denied for user ‘debian-sys-maint’@'localhost’ (using password: YES),解决办法:
cat /etc/mysql/debian.cnf
查看到相关的passwod,替换下面的$passwod
GRANT ALL PRIVILEGES ON *.* TO ‘debian-sys-maint’@'localhost’ IDENTIFIED BY ‘$passwod’  WITH GRANT OPTION;
7.安装Wordpress
bash setup-debian.sh wordpress $domain
这步除了安装wordpress文件,还会建立名为$domain的数据库,修改wp-config.php里的信息。并在/etc/nginx/sites-enabled/下建立名为$domain.conf的配置文件。注意该配置文件和普通的配置文件有点区别:
一般的nginx会使用php-cgi监听TCP port localhost:9000,典型配置为:
location ~ \.php$ {
root           /usr/share/nginx/sites-enabled/$host;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/sites-enabled/$host$fastcgi_script_name;
include        fastcgi_params;
}
但是lowendscript 使用unix:/var/run/www/php.sock for FastCGI。作者说Unix domain socket is slightly faster and good enough for a single box setup.
所以$domain.conf配置文件里只有简单一句include /etc/nginx/fastcgi_php;
我在安装wordpress时发现无法加载css和图片,解决办法是在上面的配文件里加上:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
{
root $pwd;
if (-f $request_filename) {
expires 1d;
break;
}
}
另外附上Nginx下WordPress的固定链接&伪静态设置:
lnmp的/usr/local/webserver/nginx/conf 下面已经有了 discuz.conf 和 wordpress.conf文件,它们和nginx.conf在同一个文件夹。
编辑/usr/local/nginx/conf/nginx.conf文件
include discuz.conf; 或者 include wordpress.conf;
如:
server
{
listen       80;
server_name www.server110.com;
index index.html index.htm index.php;
root  /home/wwwroot;
include wordpress.conf;
location ~ .*\.(php|php5)?$
{
fastcgi_pass  unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
location /status {
stub_status on;
access_log   off;
}
然后执行如下命令重启lnmp即可:
/root/lnmp restart
或者只重启 nginx 用命令:
/etc/init.d/nginx  reload
UPDATE1:怪不得BuyVM的VPS都抢,同样是128MB的内存,BuyVM的VPS就能编译通过lnmp.org的一键安装包,而123Systems的就不行。
UPDATE2:脚本下载地址:setup-debian.sh


推荐阅读
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
author-avatar
huanghxn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有