美文网首页
腾讯云主机 Ubuntu 安装 WordPress

腾讯云主机 Ubuntu 安装 WordPress

作者: 任前程 | 来源:发表于2018-05-09 20:33 被阅读264次

概述

Ubuntu 16.04 安装 WordPress 主要分三步:安装 Nginx 并解析域名 ,安装 PHP ,安装 MySQL。在此基础上本文还扩充了添加SSL证书、www跳转到主域名、域名的DNS解析等内容。

安装 Nginx 并解析域名

首先,更新依赖包:

切换到root账户,否则更新包会有如下错误

ubuntu@VM-ubuntu:~$ apt-get update
Reading package lists... Done
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)

切换到 root 账户

sudo su

更新依赖包:

apt-get install update

等待更新完毕!安装 Nginx

apt-get install nginx

安装过程中如果提示(Y/N)的时候,一律输入y

此时,在浏览器中输入IP地址,如果安装成功,则可以看到默认的 Nginx 页面:

image.png | left | 714x313

然后,设置域名的DNS解析

image.png | left | 827x517

解析成功后,在浏览器输入域名可以看到刚才的 Nginx 默认页。

最后,修改 Nginx 配置文件

配置文件路径:/etc/nginx/sites-available/default

......

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

......

修改36行的 root /var/www/html;root /var/www/myblog;

添加SSL证书

申请免费SSL证书:

地址:https://freessl.org/

申请步骤:

输入要申请证书的域名:

image.png | left | 827x356

按照要求,验证域名所有权:

image.png | left | 827x669

验证完成,下载证书文件。

证书文件

证书文件包含两个:

image.png | left | 243x80

这两个文件的含义是:

文件名 内容
cert.pem 服务端证书
chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
full_chain.pem 包括了cert.pem和chain.pem的内容
private.key 证书的私钥

一般情况下full_chain.pemprivate.key就够用了

Nginx 安装SSL 证书

创建ssl证书目录:

cd /etc/nginx
mkdir ssl

在此路径下添加两个文件:

root@VM-ubuntu:/etc/nginx/ssl# vim mydomain.crt
root@VM-ubuntu:/etc/nginx/ssl# vim mydomain.key

mydomain.crt 对应文件 full_chain.pem 中的内容。
__mydomain.key __对应文件 private.key 中的内容。

修改站点配置文件,启用SSL证书

编辑站点配置文件:

root@VM-ubuntu:/etc/nginx/sites-available# vim default 

服务器部分,注释掉80端口监听,开启443端口监听并指定SSL证书路径:

server {
        #listen 80 default_server;
        #listen [::]:80 default_server;

        # SSL configuration
        #
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        ssl on;
        ssl_certificate /etc/nginx/ssl/mydomain.crt;
        ssl_certificate_key /etc/nginx/ssl/mydomain.key;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
........

修改完成后,检查配置文件语法并重启服务器:

root@VM-ubuntu:/etc/nginx/sites-available# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@VM-ubuntu:/etc/nginx/sites-available# service nginx restart

刷新浏览器后,可以查看证书信息:

image.png | left | 768x660

网站安全性检查

检查网站安全性等级:https://www.ssllabs.com

Test your server:

image.png | left | 760x622

SSL A+配置

生成一个 DH group。

sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

再来就是针对 SSL 做一些自定义的设置:(添加 Security enhancements 中的内容)

 # SSL configuration
        #
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        ssl on;
        ssl_certificate /etc/nginx/ssl/rqc.im.crt;
        ssl_certificate_key /etc/nginx/ssl/rqc.im.key;

##### Security enhancements begin

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
        ssl_ecdh_curve secp384r1;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 1.1.1.1 114.114.114.114 valid=300s;
        resolver_timeout 5s;
        add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;

##### Security enhancements end

修改完成后,检查配置文件语法并重启服务器:

root@VM-ubuntu:/etc/nginx/sites-available# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@VM-ubuntu:/etc/nginx/sites-available# service nginx restart

重新测试网站SSL等级:

image.png | left | 827x401

http 跳转到 https

默认安装完成之后,如果用户打开 http://mydomain 页面会显示错误,不会自动跳转到https。
解决方式是:多曾加一个 server block,监听 80 端口,返回 301 重定向。

server {

    listen 80 default_server;
    listen [::]:80 default_server;
    server_name mydomain.com www.mydomain.com;
    return 301 https://$server_name$request_uri;

}

设置完成之后,同样检查语法,重启Nginx:

root@VM-ubuntu:/etc/nginx/sites-available# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@VM-ubuntu:/etc/nginx/sites-available# service nginx restart

安装 PHP 7.2

首先添加 PPA

sudo apt-get update

sudo apt-get install software-properties-common
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

sudo apt-get update

然后,安装 PHP7.2

sudo apt-get -y install php7.2-fpm php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-gd php7.2-xml php7.2-mysql php7.2-cli php7.2-zip php7.2-curl

安装完毕之后配置 php-fpm :

vim /etc/php/7.2/fpm/php.ini

//;cgi.fix_pathinfo=1 改为
cgi.fix_pathinfo=0

安装 MySQL 5.7

输入安装命令:

sudo apt-get install mysql-server

期间需要设置mysql密码
查看安装的版本:

mysql --version

检查MySQL的运行状态:

sudo systemctl status mysql

登录Mysql

$ mysql -u root -p
Enter Password:

在 mysql 执行:

CREATE DATABASE myblog DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE USER 'blogname' IDENTIFIED BY 'blogpwd';

GRANT ALL PRIVILEGES ON myblog.* TO 'blogname';

FLUSH PRIVILEGES;
EXIT;

MySQL 常用命令(了解)

停止MySQL服务:

sudo systemctl stop mysql

MySQL的启动命令:

sudo systemctl start mysql

MySQL重启命令:

sudo systemctl restart mysql

设置MySQl安全服务(了解)

命令行环境执行:

mysql_secure_installation

设置步骤:

  1. 第一步是启用密码验证插件 Y
  2. 验证级别:2
  3. 用户当前的密码强度是50,可以选择修改密码,此处可以选择忽略。
  4. 移除匿名用户:y
  5. root账户只允许本地登录:y
  6. 移除默认的test数据库:y
  7. 重新加载权限表

重新配置 Nginx

vim /etc/nginx/sites-available/default

打开配置文件,配置:

server {
    listen 80;
    listen [::]:80;
    root /var/www/wordpress;

    index index.php index.html index.htm index.nginx-debian.html;
    # 注意我们添加了 index.php
    server_name  example.com www.example.com;

    client_max_body_size 100M;

    location / {
        try_files $uri $uri/ /index.php?$args;        
    }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

安装 WordPress

下载 WordPress 安装包解压后上传到网站目录(此处可参考我的另一篇文章《腾讯云主机 Ubuntu 系统使用 sftp 上传文件》)。

可以在浏览器中一步步按照指示安装。

也可以复制 wp-config-sample.php 修改名称为 wp-config.php

打开 wp-config.php 文件:

配置数据库连接字符串:

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', '数据库名称');

/** MySQL数据库用户名 */
define('DB_USER', '登录用户');

/** MySQL数据库密码 */
define('DB_PASSWORD', '登录密码');

/** MySQL主机 */
define('DB_HOST', 'localhost');

/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');

/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');

另外添加如下配置:

/* 配置 WordPress 文件上传 */
define('FS_METHOD', 'direct');
define('FS_CHMOD_DIR', 0777);
define('FS_CHMOD_FILE', 0777);

设置完成,打开浏览器。


本文为原创文章,转载请注明出处!欢迎关注任前程博客 https://renqiancheng.com/,第一时间看后续精彩文章。

相关文章

网友评论

      本文标题:腾讯云主机 Ubuntu 安装 WordPress

      本文链接:https://www.haomeiwen.com/subject/byworftx.html