2022-12-15 更新 3712 阅读

一直想着买个国内vps玩玩,但是阿里云腾讯云感觉有点贵,特别是阿里云,以前相同配置的65r服务器现在已经涨价到105r。腾讯云还好,还是老价格没变,以前好像有一款30r一个月的云服务器,那会儿没有买,现在想买也买不到了。

这两天发现了网易蜂巢容器云这个东西,开始了解的时候很是头大,完全颠覆我对云服务器的认识,原来还有一种东西叫做容器管理(docker)。话不多说,写下这两天遇到的问题。

网易蜂巢容器云购买

创建容器:选择一个月29元套餐的容器管理,不要用公共镜像,因为这个docker安装lnmp极度麻烦,限制比较大,不信你们可以试试。建议先去镜像库收藏一个镜像来创建自己的容器云。
这里给大家奉上我自己找到的一个镜像:https://c.163.com/hub#/m/repository/?repoId=23043。直接选择镜像还是蛮方便的,就是不能自定义安装网上的一键包:Oneinstack,本来是想装这个的,无奈各种装不成功,这里就不多说了,反正docker局限有点大,不是真正的vps,不过好在价格便宜,牌子够大,买主机还是得看狗牌的,不然商家跑了都不知道。

安装ftp以及创建虚拟主机

因为开始创建容器的时候已经选择好镜像,下面就不用像往常那样选择安装某些东西的,因为镜像里已经有了。接下来需要做的就是以下步骤:

  1. LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
  2. LNMP添加、删除虚拟主机及伪静态使用教程

安装完wordpress,更新插件以及wordpress版本和主题等会出现要求输出主机信息的页面(还会出现无法创建文件夹),这是权限问题,这里我们可以打开docker终端,先打开到自己虚拟主机所在位置的目录下,依次输入以下命令:

chown -R www:www *
chmod -R 755 *

如图:

linux权限

刷新下要求输入主机信息的页面就ok了。

ssl证书安装

LNMP一键包环境安装SSL安全证书且部署HTTPS网站URL过程
nginx按照这里面的步骤来,不会有错的,不过配置信息还是得说下我的,我配置的貌似跟老左说的不一样,但是其他都一样:

server
    {
        listen 443 ssl;
    ssl on;
        ssl_certificate /home/ssl/ssl.crt;
        ssl_certificate_key /home/ssl/ssl.key;
        #listen [::]:80;
        server_name ee.mrju.cn;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/ee.mrju.cn;

        ....
        部分修改如上所示。

ssl证书导入

openssl rsa -in ssl.key /home/ssl/ssl.key
chmod 600 /home/ssl/ssl.key

ssl证书文件以及路径修改成你自己的。

service nginx restart //重启nginx

http强制跳转至https

ssl证书安装好后,一定要做这个强制跳转的。将下面的代码放入/usr/local/nginx/conf/vhost目录下对应域名的conf文件最上面:

server {
  listen 80;
  server_name mrju.cn www.mrju.cn;
  return 301 https://$server_name$request_uri;
}

对应域名自己修改吧。

wordpress评论回复邮件

创建这个镜像安装wordpress后,发现评论没有回复邮件,这个功能很有用,怎么能没有呢,百度了下lnmp sendmail,死活解决不了,没办法,只有从wordpress下手。(创建另外一个镜像的时候,这个问题没有出现过,我怀疑是我创建的这个镜像里有问题。。。不过好在有替换解决的办法。)
在你使用主题里的functions.php文件内添加以下代码:

//使用smtp发送邮件
add_action('phpmailer_init', 'mail_smtp'); 
function mail_smtp( $phpmailer ) { 
$phpmailer->FromName = 'MrjuCnAdmin'; //发件人 
$phpmailer->Host = 'smtp.qq.com'; //修改为你使用的SMTP服务器 
$phpmailer->Port = 587; //SMTP端口 
$phpmailer->Username = 'mrju@foxmail.com'; //邮箱账户 
$phpmailer->Password = '*******'; //邮箱密码 (请填写自己的账户密码)
$phpmailer->From = 'mrju@foxmail.com'; //你的邮箱 
$phpmailer->SMTPAuth = true; 
$phpmailer->SMTPSecure = ''; //tls or ssl (port=25留空,465为ssl) 
$phpmailer->IsSMTP(); 
} 

对应信息自己修改。。。完工。。。

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

对 Linux 新手非常有用的 20 个命令:对 Linux 新手非常有用的 20 个命令
菜鸟教程-Linux 命令大全:Linux 命令大全

其他的没了,想到了再写,遇到问题解决了再写。本文章只是自己记录看看,毕竟折腾了两天的docker,要崩溃了的说。

其他问题解决:
LNMP笔记:解决mail函数不能发送邮件
解决WordPress后台一直提示更新翻译