起因

之前因为阿里云的优惠活动,弄了一台云服务器,但是那时候没有时间弄这个。

后来在本地弄了个docker部署了下wordpress,用内网穿透玩了一下就不了了之了。3

最近想了想,还是正式的搭建一下吧,并且记录一下网站的搭建过程。

整体介绍

现在搭建一个网站太方便了,只需要挑选合适的服务就好了,然后花钱。

1 阿里云ECS 镜像选择CentOS 8.0 64位

2 wordpress-5.6-zh_CN

3 LNMP 1.7一键包 L:Linux | N:Nginx | M:MySQL | P: PHP 官网:https://lnmp.org/

3.1 MySQL 5.7.30

3.2 PHP 7.2

3.3 Nginx 1.8

CentOS环境部署

首先整一台服务器,无论是vps还是什么云,选择个镜像,整好以后登录上来安装环境。

我是用的SSH,需要开启22端口,检查防火墙有没有把这个端口墙掉或者云安全规则。

安装LNMP

我这里用的是LNMP1.7版本的一键包,地址是 https://lnmp.org/

也可以参照LNMP官网的安装教程,也可以不使用LNMP,每个组件单独安装。

安装时间比较长,所以使用screen会话

screen -S lamp

如果没有screen的话先安装一下

yum -y install screen

安装LNMP

wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh lnmp

如果没有wget的话先安装一下

yum -y install wget

运行上述LNMP安装命令后,会出现如下提示:

选择4 MySQL5.7版本

设置MySQL的root密码(为了安全不输入直接回车将会设置为lnmp.org#随机数字)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除(个别情况下是只需要Backspace键)。输入后回车进入下一步,如下图所示:

询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y ,进入下一步。

选择8 PHP 7.2版本

选择不安装,直接回车为默认为不安装。

提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin等软件及相关的组件。

安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。我这里用了半个多小时。

安装完成:

卸载

  • 卸载LNMP、LNMPA或LAMP可执行:./uninstall.sh 按提示选择即可卸载。

状态管理

  • LNMP/LNMPA/LMAP状态管理:lnmp {start|stop|reload|restart|kill|status}
  • Nginx状态管理:lnmp nginx或/etc/init.d/nginx {start|stop|reload|restart}
  • MySQL状态管理:lnmp mysql或/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
  • MariaDB状态管理:lnmp mariadb或/etc/init.d/mariadb {start|stop|restart|reload|force-reload|status}
  • PHP-FPM状态管理:lnmp php-fpm或/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
  • PureFTPd状态管理:lnmp pureftpd或/etc/init.d/pureftpd {start|stop|restart|kill|status}
  • Apache状态管理:lnmp httpd或/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}

目录位置

  • Nginx:/usr/local/nginx/
  • MySQL:/usr/local/mysql/
  • MariaDB:/usr/local/mariadb/
  • PHP:/usr/local/php/
  • 多PHP目录:/usr/local/php5.6/ 版本号随安装版本不同而不同
  • PHP扩展插件配置文件目录:/usr/local/php/conf.d/
  • PHPMyAdmin:/home/wwwroot/default/phpmyadmin/
  • 默认虚拟主机网站目录:/home/wwwroot/default/
  • Nginx日志目录:/home/wwwlogs/

配置文件:

  • Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
  • MySQL/MariaDB配置文件:/etc/my.cnf
  • PHP配置文件:/usr/local/php/etc/php.ini
  • PHP-FPM配置文件:/usr/local/php/etc/php-fpm.conf
  • PureFtpd配置文件:/usr/local/pureftpd/etc/pure-ftpd.conf
  • Apache配置文件:/usr/local/apache/conf/httpd.conf

相关图形界面

安装完成之后这些组件应该都启动了,

可以通过ps命令查看下,服务有没有启动,或者验证一下安装是否正常,不过一般都是没问题的。

创建MySQL数据库

新建一个MySQL数据库,给wordPress用。

create myblob;

show databases;

也可以新建MySQL用户,这里就直接使用root用户了。

修改Nginx配置文件

修改以下文件:

/usr/local/nginx/conf/nginx.conf

主要是把root这里改为指向wordpress的文件夹。

重启Nginx

lnmp nginx restart

安装wordpress

从wordpress官网下载压缩包

wordpress-5.6-zh_CN.tar.gz上传至服务器

cd /home/domaintest/ykuee.link

tar -zxvf wordpress-5.6-zh_CN.tar.gz

mv wordpress/* .

为避免因权限的问题导致安装出错,比如wp-config.php无法创建、需要提供FTP用户密码以及主题和插件不能更新等,建议赋予网站根目录文件的可写权限。

chmod -R 755 /home/domaintest

这时候就可以用浏览器访问wordpress来初始化了。

浏览器访问ip或者域名可以看到安装提示 这里也是,注意防火墙规则,安全规则等是否开启端口

*.*.*.*\readme.html

访问这个安装的连接,数据库就填刚刚创建的那个就可以。

至此,就搭建完成了,剩下的功能就可以自己探索了。


配置HTTPS

今天申请了下ssl证书,主要参考了阿里云的手册。

证书流程图

直接通过域名生成了证书。

证书下载以后,因为我这里是通过Nginx搭建的网站,所以需要配置下Nginx。

解压已下载保存到本地的Nginx证书压缩包文件。

解压后的文件夹中有2个文件:

  • 证书文件:文件类型为PEM。
  • 密钥文件:文件类型为KEY。

证书文件

登录您的Nginx服务器,在Nginx安装目录(默认为/usr/local/nginx/conf)执行以下命令,创建cert目录:

cd /usr/local/nginx/conf  #进入Nginx默认安装目录。此处为Nginx默认安装目录,请您根据实际配置情况操作。
mkdir cert  #创建cert证书目录。

使用远程登录工具(例如PuTTY或者Xshell)附带的本地文件上传功能,将下载的证书文件和密钥文件上传到Nginx服务器的cert目录下。

修改Nginx的config

#以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。

server {
         listen 443 ssl; #配置HTTPS的默认访问端口号为443。此处如果未配置HTTPS的默认访问端口,可能会造成Nginx无法启动。Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。
         server_name www.certificatestests.com; #将www.certificatestests.com修改为您证书绑定的域名,例如:www.example.com。如果您购买的是通配符域名证书,要修改为通配符域名,例如:*.aliyun.com。
         root html;
         index index.html index.htm;
         ssl_certificate cert/domain name.pem;  #将domain name.pem替换成您证书的文件名称。
         ssl_certificate_key cert/domain name.key; #将domain name.key替换成您证书的密钥文件名称。
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
         ssl_prefer_server_ciphers on;
         location / {
         root html;  #站点目录。
         index index.html index.htm;
         }
}

Nginx添加配置,主要是为了让http重定向至https

    server {  
        listen 80 default_server reuseport;
        server_name 80ykuee.link;  
          
        rewrite ^(.*)$  https://$host$1 permanent;  
    }  

啦啦啦!