使用樱花VPS在Ubuntu 16.04服务器上创建WordPress环境
樱花VPS的设置
选择1G计划(内存1GB,虚拟2核CPU,SSD 30GB)进行签约。
由于Ubuntu 16.04有官方的自定义操作系统安装指南,因此本节省略介绍安装方法。
在某些情况下,HTML5控制台在Firefox浏览器中出现了加载中卡死的现象,而在Chrome浏览器中正常运行。此外,HTML5控制台还存在无法粘贴剪贴板字符串的问题,因此需要使用串行控制台。
准备
使用串行控制台等方法,将公钥注册到/home/登录用户/.ssh/authorized_keys中,使其处于可以进行SSH连接的状态。由于针对SSH默认端口(22号)的攻击非常普遍,建议进行SSH登录端口的更改并禁用密码登录。
登录后,更新软件包管理器(apt)的信息至最新状态。
$ sudo apt update
顺便安装vim、curl和git。
$ sudo apt install vim curl git
安装 Apache
网页服务器使用Apache进行安装。使用Nginx也可以,但是在搭建Wordpress时,Apache更简单。
$ sudo apt install apache2
提前确认防火墙设置。如果如下所示,则可以了(端口80和443是打开的)。
$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
在这个阶段,如果确认服务器上设置的IP地址,应该会显示Apache2的默认页面。
MySQL的安装
WordPress默认使用MySQL或MariaDB作为数据库服务器。在Ubuntu 16.04中,使用MySQL更为方便。
$ sudo apt install mysql-server
在安装过程中会提示您设置root用户的密码,请进行设置。
当安装完毕后,进行MySQL的初始设置。
$ sudo mysql_secure_installation
首先,会被询问是否启用VALIDATE PASSWORD插件。启用后,如果尝试设置弱密码,将会出现错误。如果注重安全性,建议启用该插件。
后来还会被问到一些问题。选择”是”是一个更安全的答案,所以如果不确定的话,可以选择”是”。
-
- rootのパスワードを変更するか?
-
- 匿名ユーザを削除するか?
-
- リモートからのrootでのログインを禁止するか?
-
- testデータベースを削除するか?
- テーブルのアクセス権をいますぐリロードするか?
MySQL的安装
可以使用以下命令登录MySQL。系统会要求输入密码,请输入之前设置的密码。
$ mysql -u root -p
当您登录时,将显示一个mysql>提示符。使用以下SQL语句可以创建一个用于WordPress的数据库。您可以选择任何名称,这里我们将其命名为”wordpress”。
mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
PHP的安装
安装PHP本体以及用于将PHP作为Apache模块运行的库和用于在PHP中连接MySQL的库。
$ sudo apt install php libapache2-mod-php php-mysql
还有一些其他的库也可以提前安装好,比如:
-
- php-mbstring: 日本語を扱うなら必須
-
- php-mcrypt: 暗号化
-
- php-curl: 外部サービスのAPIを使う際に使うことがある
-
- php-gd: 画像処理
- php-xml: XMLを扱う
如果安装成功,则应该可以使用php命令。
$ php -v
PHP 7.0.4-7ubuntu2.1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
为了确认它可以作为Apache模块运行,我们将在路径/var/www/html/info.php上创建一个测试文件。
<?php phpinfo();
请重新启动Apache。
$ sudo systemctl restart apache2
访问http://IP地址/info.php,如果显示PHP的配置信息,则表示正常。
Apache 配置
为了能够通过.htaccess在目录级别上更改Apache的配置,需要修改Apache的配置。在这里,假定要在/var/www/html下创建WordPress目录。
# 編集前の状態に戻せるようにバックアップしておく
$ sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bk
$ sudo vim /etc/apache2/apache2.conf
以下のような設定があるはず。
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
上記設定の下に、以下を追記する。ドキュメントルートの設定は後で行うので省略。
<Directory /var/www/html/wordpress>
AllowOverride All
</Directory>
設定ファイルを書き換えたら、以下のコマンドでエラーがないか確認しておく。
$ sudo apache2ctl configtest
「Syntax OK」と表示されればOK。エラーが出たら編集前の状態に戻す。
然后,启用mod_rewrite进行URL重写,并重新启动Apache。
$ sudo a2enmod rewrite
$ sudo systemctl restart apache2
安装WP-CLI
不强制,但可能会很方便,所以先放进去吧。
$ cd
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp
$ wp --info
PHP binary: /usr/bin/php7.0
PHP version: 7.0.4-7ubuntu2.1
php.ini used: /etc/php/7.0/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar
WP-CLI packages dir: /home/ryo/.wp-cli/packages/
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.23.1
安装WordPress
WP-CLIを使い、Wordpressのソースコードをダウンロードする。–locale=jaを設定すると、日本語用のパッチが当たった状態のWordpressがダウンロードできる。
$ wp core download --locale=ja --path=/tmp/wordpress
ここでは、/tmp/wordpressでセットアップして、最後に/var/www/html/wordpressにコピーを行う。/tmpはパーミッションが緩いので一時的な作業ディレクトリに向いている。なお、サーバを再起動すると/tmpの中身は消去される。
設定ファイルを準備する(.htaccessはWordpressのインストール時に勝手に設定されるので、ファイルだけ用意して権限を設定しておく)。
$ touch /tmp/wordpress/.htaccess
$ chmod 660 /tmp/wordpress/.htaccess
$ cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
建议提前创建一个upgrade目录。如果没有这个目录,可能会由于权限问题导致自动升级失败。
$ mkdir /tmp/wordpress/wp-content/upgrade
完成后,将整个目录进行复制。通过在复制源的末尾添加一个点(.),也会复制以点开头的文件名的文件。
$ sudo cp -a /tmp/wordpress/. /var/www/html/wordpress
ディレクトリのオーナーを設定する。自分の作業ユーザで読み書きでき、apacheユーザ(www-data)から読み取り可能な設定が望ましい。
$ sudo chown -R 作業ユーザ名:www-data /var/www/html/wordpress
wp-contentディレクトリについては、ファイルアップロード等に使うため、www-dataユーザでも書き込めるようにする。
$ sudo chmod g+w /var/www/html/wordpress/wp-content
$ sudo chmod -R g+w /var/www/html/wordpress/wp-content/themes
$ sudo chmod -R g+w /var/www/html/wordpress/wp-content/plugins
接下来,需要进行wp-config.php的设置。首先,使用以下命令或类似命令生成安全的随机字符串。
$ curl -s https://api.wordpress.org/secret-key/1.1/salt/
将获取到的字符串设置到wp-config.php文件中的define(‘AUTH_KEY’, ‘…’)所在的配置段。
然后,进行MySQL数据库连接设置。将所需的字符串设置在以下位置。
define('DB_NAME', 'wordpress'); # 本記事の手順通りならwordpress
define('DB_USER', 'root'); # 本記事の手順通りならrootだけど、別ユーザを作ったほうがセキュア
define('DB_PASSWORD', 'password'); # パスワードを設定する
以下の設定の追記も推奨。この設定が無い場合、プラグインの更新時等にFTPのログイン情報が求められることがある。ここでは、wp-content配下のプラグイン・テーマのディレクトリへのwww-dataユーザへの書き込みを許可しているので、Apacheに直接書き込ませる(FS_METHOD = direct)。
define('FS_METHOD', 'direct');
最后,为WordPress网站准备Apache配置文件。首先,复制现有文件并创建新站点的配置文件。
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/010-wordpress.conf
为WordPress设置VirtualHost。
编辑/ etc/apache2/sites-available/010-wordpress.conf,将DocumentRoot更改为/var/www/html/wordpress。其他部分可以不做更改。
<VirtualHost *:80>
# ドメインがあれば設定、無い場合はコメントアウトのまま
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/wordpress
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
以本地中文进行重述,只需提供一种选项:
运行 `sudo apache2ctl configtest` 命令来检查语法是否正确。
下一步是禁用默认网站,并启用WordPress的网站。
$ sudo a2dissite 000-default
$ sudo a2ensite 010-wordpress
$ sudo systemctl restart apache2
一旦完成这些,访问该网站的IP地址,应该会出现WordPress的初始设置页面。
之后只需要进行用户设置,便完成了安装。
SSL的引入(让我们来帮助加密)
使用免费的Let’s Encrypt SSL。请注意,以下步骤不是首次设置方法。这是在已经设置好Let’s Encrypt的情况下,在另一台服务器上获取Let’s Encrypt证书的步骤。
关于初次设置方面,以下文章值得推荐。
让我们来了解一下Let’s Encrypt的使用方法。
安装客户端(certbot)。
$ mkdir ~/bin
$ cd ~/bin
$ git clone https://github.com/certbot/certbot
$ cd certbot
当您第一次运行以下命令时,会要求输入密码,然后将安装依赖包(如Python等)。
$ ./certbot-auto
在我的环境中,当执行上述命令时,出现了OSError: Command ~/.local/…ncrypt/bin/python2.7 – setuptools pkg_resources pip wheel failed with error code 1的错误,然后程序退出了。
当我执行export LC_ALL=”C”命令后再次运行该命令,就成功了。似乎是由于地域设置为ja_JP所导致的问题。
参考:OSError: 命令 ~/.local/…ncrypt/bin/python2.7 – setuptools pkg_resources pip wheel 执行失败,错误代码为1。