美文网首页Linux Geek
在DigitalOcean上搭建Wordpress记

在DigitalOcean上搭建Wordpress记

作者: 治部少辅 | 来源:发表于2018-02-25 22:53 被阅读115次

    这是一篇“事后诸葛亮”式的文章,或者说一系列文章,来记录我折腾了一个下午的Wordpress搭建过程。虽然现在博客不流行了,不过仍不失为一种有效的记录平台。其实,我之前一直在简书上写一点东西,为什么要折腾下来自己搭建一个平台呢?主要是一下几个原因:

    1. 简书上缺少标签功能, 这使得文章多了以后难以规整和索引。尤其是写技术类文章的时候,会出现大量跨不同Topic的文章,此时用Tag来组织,就要比用文集组织的方式灵活的多。
    2. 简书作为一个平台,有起有落,自己搭建的博客平台,数据在自己手里,能“万古长青”。
    3. 自由度。生活在中国,大家都懂,有些话题不能说,有些问题不能问。即便我党未必在意的内容,各个平台也会自觉地自我审查。把自己搭建的博客平台放在国外,就可以省去这些烦恼。

    我常年用DigitalOcean家的服务器来搭梯子,正好CPU占用率极低,恰好可以用来搭建Wordpress服务器。

    为什么选择DigitalOcean(DO)

    我用的VPS也不是太多,之所以开始选中了DigitalOcean这个平台是出于以下几点原因:

    1. 性价比较高:我之前的梯子一直是选用的$5一个月价位的,这个价位下,有1个CPU内核,512MB的内存(最近升级到了1G内存,价格还是$5),以及,重点是,有1TB的Transfer,以及不受限制的带宽(按照DO家的说法,其每个机器以1Gbps带宽连接到公网出口,而公网出口以10Gbps带宽连接到主干网,DO自己的并不会主动限制网速),经过两年的使用,大多数情况下百兆以上的带宽是没有问题的(不作为梯子必经还是受到要过海底光缆翻山越岭的限制)。
    2. 有不少优惠:拥有教育邮箱可以获得$50的代金券,以及其Space服务可以免费试用两个月。
      缺点也是有,就是有很多人拿DO的服务器去当爬虫,导致DO的IP基本上都被Google Scholar封禁了,这对做学术的人而言还是很伤的。不过好在Google Scholar的镜像站点也不少,也不是大问题。再者,如果是搭建博客平台,这个问题就不太要紧了。

    为什么是Wordpress

    最近时间紧张,没时间折腾,之后的职业道路,也并不打算选择前端这条路线,所以就选择了最为成熟的平台了。这次咬了牙买了一个很不错的付费主题,可以不用代码并且达到很高的设计自由度,之后这个主题用熟了再推荐给大家。

    起手搭建

    Prerequisite

    1. 注册DO账户,并且创建一个Droplet。至于Droplet的价位和地址,丰俭由己。我使用的操作系统是Ubunut 16.04。当然DO家也提供了Wordpress的一键式APP,嫌麻烦的可以试试这个。由于我是在已有的梯子服务器上搭建博客,就只能自己动手了。
    2. 准备LAMP环境。不会的参考这个教程:在Ubuntu 16.04上安装LAMP

    STEP 1:准备数据库

    以root账户登入Mysql数据库:

    $ mysql -u root -p
    

    中间会需要你输入Mysql的root账户的密码(注意不是服务器的root账户的密码)。
    然后为wordpress创建数据库:

    mysql> create database wordpress default character set utf8 collate utf8_unicode_ci;
    

    注意Mysql命令要以分号结尾。
    然后创建一个数据库用户来接入数据库

    myslq> grant all on wordpress.* to 'wordpressuser'@'localhost' identified by 'use_your_password';
    

    然后Flush权限更改到数据库以应用这些更改,并退出数据库。

    mysql> flush privileges;
    myslq> exit;
    

    STEP 2:安装必要的PHP扩展

    $ sudo apt-get update
    $ sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
    

    然后重启Apache

    sudo systemctl restart apache2
    

    STEP 3:调整Apache配置,允许.htaccess文件覆写(override)和重写(rewrite)

    我们还需要对Apache的配置稍作修改。目前,.htaccess文件的使用还是被禁用的,而Wordpress及其插件需要应用到这一文件来实现一些功能。

    启用.htaccess覆写

    打开Apache主配置文件

    $ sudo vim /etc/apache2/apache2.conf
    

    在这一文件底部,添加如下内容:

    <Directory /var/www/html>
        AllowOverride All
    </Directory>
    

    保存并退出。

    启动重写模块

    运行如下命令以使用Wordpress的永久链接功能

    $ sudo a2enmod rewrite
    

    应用更改

    首先运行下面这个命令来确保没有语法错误:

    $ sudo apache2ctl configtest
    

    如果出现了“AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message”这个Warning,可以通过在/etc/apache2/apache2.conf文件中设置ServerName来消除。
    然后重启Apache

    $ sudo systemctl restart apache2
    

    STEP 4:下载Wordpress

    我们从官网下载最新的Wordpress并放置到临时的文件夹:

    $ cd /tmp
    $ curl -O https://wordpress.org/latest.tar.gz
    

    解压缩改文件

    $ tar xzvf latest.tar.gz
    

    在我们将解压后的文件移动到文档根目录前,我们需要手动创建.htaccess文件,并正确设置其权限:

    $ touch /tmp/wordpress/.htaccess
    $ chmod 660 /tmp/wordpress/.htaccess
    

    然后从模板配置文件中创建Wordpress实际使用的配置文件:

    cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
    

    我们还需要创建好upgrade文件夹,这样Wordpres在下载更新文件时就不会遭遇权限问题:

    $ mkdir /tmp/wordpress/wp-content/upgrade
    

    现在我们可以把整个Wordpress的内容迁移到文档根目录上了。在移动过程中带上-a标签来确保各种权限标识保持不变。

    $ sudo cp -a /tmp/wordpress/. /var/www/html
    

    STEP 5:配置Wordpress文件夹

    调整文件夹的所有者和权限

    Apache是由www-data这个用户来运行的,为了正常访问Wordpress文件, 我们需要调整Wordpress文件夹下各个文件的权限。同时,又为了限制www-data,使其不至于做出非法的更改,我们将Wordpress文件夹下的内容设置为另一非root用户,并且为www-data这一用户组下的用户添加合适的访问权限。

    $ sudo chown -R sammy:www-data /var/www/html
    

    接下来设置用户组权限

    $ sudo find /var/www/html -type d -exec chmod g+s {} \;
    $ sudo chmod g+w /var/www/html/wp-content
    $ sudo chmod -R g+w /var/www/html/wp-content/themes
    $ sudo chmod -R g+w /var/www/html/wp-content/plugins
    

    设置Wordpress配置文件

    首先要设置的是一系列安全相关的秘钥。Wordpress提供了一个自动生成这些秘钥的工具:

    $ curl -s https://api.wordpress.org/secure-key/1.1/salt/
    

    其输出类似下面列出的:

    define('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
    define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
    define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
    define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
    define('AUTH_SALT',        'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES  07VC*Lj*lD&?3w!BT#-');
    define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
    define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
    define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
    

    复制这些内容(注意一定要自己运行命令生成秘钥,而不是复制上面的内容),然后打开配置文件

    $ vim /var/www/html/wp-config.php
    

    找到下面的内容,然后替换之:

    define('AUTH_KEY',         'put your unique phrase here');
    define('SECURE_AUTH_KEY',  'put your unique phrase here');
    define('LOGGED_IN_KEY',    'put your unique phrase here');
    define('NONCE_KEY',        'put your unique phrase here');
    define('AUTH_SALT',        'put your unique phrase here');
    define('SECURE_AUTH_SALT', 'put your unique phrase here');
    define('LOGGED_IN_SALT',   'put your unique phrase here');
    define('NONCE_SALT',       'put your unique phrase here');
    

    之后我们需要设置数据库相关的配置

    define('DB_NAME', 'wordpress');
    
    /** MySQL database username */
    define('DB_USER', 'wordpressuser');
    
    /** MySQL database password */
    define('DB_PASSWORD', 'use_your_password');
    

    同时,之前我们给予了www-data组在wp-content及其下两个文件夹的写入权限,我们可以设置文件系统的访问方法为”direct”来使其直接写入相关文件。在上面数据库设置内容的下方添加一行:

    define('FS_METHOD', 'direct');
    

    STEP 6: 完成安装

    此时在你的电脑上打开浏览器,访问

    http://server_domain_or_IP
    

    就可以通过网页界面访问并配置Wordpress。

    升级

    运行Apache的www-data用户并不拥有Wordpress文件夹,所以在升级时会出现权限问题。这是需要通过

    $ sudo chown -R www-data /var/www/html
    

    来给予其足够的权限。在升级完成后,通过

    $ sudo chown -R sammy /var/www/html
    

    来恢复现场。

    进一步阅读:

    • 在Wordpress中使用DigitalOcean Space作为图床 | coming soon

    相关文章

      网友评论

        本文标题:在DigitalOcean上搭建Wordpress记

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