Debian LNMP/LEMP/WordPress一键脚本

自己修改Actgod的Damnp.sh一键脚本,服务器环境从Nginx+Apache+MySQL+PHP替换成了Nginx+MariaDB+PHP。继承了该脚本的优点,占用资源小,三局命令安装Wordpress,全部用官方源包安装,不用编译节省大量时间。

#脚本和文章介绍部分都修改自actgod.com,在这里再次表示我的由衷感谢
本站已经创建VPS交流群Telegram群,欢迎各位加入:Telegram群 查看二维码

Tylemp.sh详情 Linux+Nginx+MariaDB+PHP

  • L – Linux: 脚本目前适用于Debian8的32及64位系统
  • E – Enginex(Nginx): 高性能省资源的服务器
  • M – MariaDB: SUN被Oracle合并之后,MySQL有被封闭风险情况下,MySQL创始人倡导的MySQL替代品
  • P – PHP: 流行的WEB语言

因为我的所有网站应用的都是Wordpress,Nginx日趋完善,一些新的功能例如HTTP/2也能很好地实现,Apache就不是那么必要了。加之一直想切换到MariaDB,所以花了一些时间进行修改,方便自己使用。脚本目的在于快速部署基本的生产环境和Wordpress,Typecho, Carbon Forum等常用CMS/博客/论坛系统,如果需要更强大的功能请再行寻找或者留言讨论。

目前所能做到的就是快速部署可用的LNMP环境,性能调优方面还没有深入研究,需要更多的建议。

#Nginx前端+Maria数据库+PHP
#所安装包全部来自官方源,仅对配置文件进行参数调优,没有任何添加
#无需长时间编译
#三条命令即可开始wordpress
#一键自由更改ssh端口,增强安全性
#优化VPS性能,小内存可用
#增加在线gmail代理工具Rainloop的一键安装
请一定注意系统,Debian9, Debian8,Debian7选择对应脚本

Debian 9

适用于Debian9的32位及64位系统

wget http://w3.gubo.org/pubfiles/tylemp/9/tylemp.sh 

Debian 8 及小内存

适用于Debian8的32位及64位系统

wget http://w3.gubo.org/pubfiles/tylemp/tylemp.sh 

适用于小内存64M~128M的VPS,Debian8的32位及64位系统。

wget http://w3.gubo.org/pubfiles/tylemp/64m/tylemp.sh 

Debian 7 及小内存

适用于Debian7的32位及64位系统, 建议内存大于等于256M. Debian7不带MariaDB,故使用MySQL作为数据库

wget http://w3.gubo.org/pubfiles/tylemp/7/tylemp.sh 

适用于Debian7的32位及64位系统, 建议在内存在64M到128M之间使用

wget http://w3.gubo.org/pubfiles/tylemp/64m/7/tylemp.sh 

Debian8 五分钟/一键安装Wordpress

有点标题党好吧,其实是三句命令,但是很简单很快速这点没有骗人哦
#命令范例默认是Debian8。Debian7和Debian8小内存版本请看上面脚本下载地址

#Debian8下载脚本
wget http://w3.gubo.org/pubfiles/tylemp/tylemp.sh 
#安装稳定版Nginx+PHP+MariaDB
bash tylemp.sh stable
#安装wordpress,www.yourdomain.com即为你的域名
bash tylemp.sh wordpress www.yourdomain.com 

五分钟/一键安装typecho

#命令范例默认是Debian8, Debian7和小内存版本请看上面脚本下载地址

#Debian8下载脚本
wget http://w3.gubo.org/pubfiles/tylemp/tylemp.sh 
#安装稳定版Nginx+PHP+MariaDB
bash tylemp.sh stable
#安装Typecho,www.yourdomain.com即为你的域名,数据库用户名和密码会显示在屏幕上
bash tylemp.sh typecho www.yourdomain.com 

重要:更改SSH端口

默认的22端口会经常被黑客扫描,所以更改端口是一定要做的。如果用的是Bandwagonhost等默认随机化端口的服务商,用完这个脚本之后端口会被恢复为22,需要更改一次端口才能登陆。

#更改端口为22022,数字可以自由更换
bash tylemp.sh sshport 22022
#重启使新端口生效
reboot

命令列表说明

bash tylemp.sh system # 优化系统,删除不需要组件,dropbear替代sshd 
bash tylemp.sh exim4 # 更轻量级邮件系统 
bash tylemp.sh mysql # 安装mysql 
bash tylemp.sh nginx # 安装nginx,默认一个进程,可调整
bash tylemp.sh php # 安装php,包含php5-gd,可使用验证码
bash tylemp.sh stable # 安装上面所有,软件是debian官方stable源,版本较旧
bash tylemp.sh wordpress www.yourdomain.com # 一键安装wordpress, 数据库自动配置好。 
bash tylemp.sh vhost www.yourdomain.com # 一键安装静态虚拟主机。
bash tylemp.sh dhost www.yourdomain.com # 一键安装动态虚拟主机,方便直接上传网站程序。
bash tylemp.sh typecho www.yourdomain.com # 安装typecho,提供数据库名,密码等自主添加完成安装
bash tylemp.sh phpmyadmin www.yourdomain.com # 一键安装phpmyadmin 数据库管理软件,用http://www.yourdomain.com/phpMyAdmin访问 
bash tylemp.sh addnginx 2 #调整nginx进程,这里2表示调整后的进程数,请根据vps配置(cpu核心数)更改
bash tylemp.sh sshport 22022 #更改ssh端口号22022,建议更改10000以上端口。重启后生效。
bash tylemp.sh rainloop www.yourdomain.com  # 增加Gmail的web客户端一键安装
bash tylemp.sh carbon www.yourdomain.com  # 增加Carbon Forum的一键安装

配置文件列表

/etc/nginx/nginx.conf  #nginx配置文件,可根据vps的cpu核心数更改进程数最大限度利用
/etc/php5/fpm/php.ini    #php配置文件
~/.my.cnf                 #mysqlroot密码保存文件
/etc/nginx/conf.d/          #nginx下各个具体网站配置文件所在文件夹

日志Log文件列表

/var/log/nginx   #nginx的log文件所在文件夹,所有网站都在一个文件中
/var/log/php5-fpm.log  #php的log文件,所有网站都在一个文件中

Tylemp.sh 项目地址

#我建了一个代码项目,放在Bitbucket上,有兴趣的朋友可以查阅一下
https://bitbucket.org/yylzcom/tylemp.sh

出错反馈办法

如果运行脚本过程中有任何出错提示,请打包以下文件发送到我的邮箱 guboorg@gmail.com

/tmp/tylemp.log

Nginx出于CPU负担等考虑,默认不启用Gzip,想开启Gzip的朋友请参考:Nginx启用gzip

天毅

Linux/php菜鸟,喜欢修修补补,喜欢分享,喜欢写博客,其实主要是喜欢找速度快的国外空间(剁手癌晚期,买VPS完全停不下来)...

72 thoughts to “Debian LNMP/LEMP/WordPress一键脚本”

  1. 求教出现如下错误
    mv: cannot move ‘/tmp/wordpress.24976/wordpress’ to ‘/var/www/www.chris-shen.com/wordpress’: Directory not empty
    mysqladmin: connect to server at ‘localhost’ failed
    error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)’
    Check that mysqld is running and that the socket: ‘/var/run/mysqld/mysqld.sock’ exists!
    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

    1. 你之前已经有过/var/www/www.chris-shen.com/wordpress这个目录,而且mysql数据库错误。
      请把/tmp/tylemp.log发给我,或者在面板重装系统之后再次执行脚本,注意选择正确的系统和对应的脚本。

  2. 你好博主,请教一下,原有wordpress用mysql数据库,转到MariaDB数据库不需要什么特别操作吧? 百度搜来搜去没有看到什么靠谱的答案,感觉应该一样的……

    另外请问脚本 bash tylemp.sh wordpress www.yourdomain.com 支持更换不同域名自动添加站点吗

    还是需要编辑什么文本来添加支持不同站点使用wordpress?

    感谢

    1. 1. 转到MariaDB完全不需要任何改变,简单地导入导出即可
      2. 支持添加不同域名的站点,以你的域名为例,如果你想添加home4love.com 和 blog.home4love.com 这两个站点的话:
      bash tylemp.sh wordpress home4love.com
      bash tylemp.sh wordpress blog.home4love.com
      数据库和文件夹都是完全独立的。

    1. 345行把”https://github.com/typecho/typecho/releases/download/v1.0-14.10.10-release/1.0.14.10.10.-release.tar.gz”替换成”http://typecho.org/build.tar.gz”即可,这个应该就是最新的开发者版本

  3. 你好。这个脚本安装typecho的rewrite有问题。
    location / {
    index index.html index.php;
    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;
    }
    }

    建议。

    1. 感谢您的反馈,不知道您说的rewrite问题出现在哪方面,因为我的测试站点一直能正常使用,没有注意到有什么问题。
      测试站点:http://p2.gubo.org/

  4. Reading package lists…
    Building dependency tree…
    Reading state information…
    Package mariadb-server is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Package ‘mariadb-server’ has no installation candidate
    mariadb-server installed for mysqld
    Reading package lists…
    Building dependency tree…
    Reading state information…
    Package mariadb-client is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Package ‘mariadb-client’ has no installation candidate
    mariadb-client installed for mysql
    invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
    tylemp.sh: line 126: /etc/mysql/conf.d/actgod.cnf: No such file or directory
    invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
    tylemp.sh: line 135: mysqladmin: command not found

    出问题了。。。

    1. mariadb-server is not available
      怎么可能找不到mariadb-server这个包,重新运行一遍这个命令试试看,什么vps,debian什么版本,用的什么源(/etc/apt/sources.list 这个文件里)
      或者你手动运行” apt-get install mariadb-server “看看有没有什么出错提示

  5. 使用bash tylemp.sh stable的时候有一定的错误几率数据库无法安装,请查看是否哪里出了问题,腾讯服务器,阿里云,DO,VULTR,LINODE,都有出现过

    1. 我用的比较多的都是OpenVZ的,如果是全新安装都没有出现过问题,从Debian7升级到Debian8再进行安装可能会出现和upstart等软件冲突。不能复现排除了解决堤原因的话很难了解具体原因进行改进,如果下次出错,能否看一下具体出错提示。

    2. 现在加了一个日志的功能,请下载新的脚本,使用过程中如果有任何失败的情况,请把/tmp/tylemp.log文件发送给我邮箱,方便我查看,谢谢:
      guboorg@gmail.com

发表评论

电子邮件地址不会被公开。 必填项已用*标注