首先远程连接服务器,在终端输入以下指令安装Web服务软件Nginx
apt update
apt install nginx
接下来在浏览器中访问你的域名,如果看到Welcome to Nginx!的提示,说明我们已经安装成功了。
没有MySQL的PHP就好比一支断掉的勺子。
apt install mysql-server
这里安装了一些必要的php组件,建议读者在站点搭建完成后安装站点体检一类的wordpress插件,检查有没有缺漏的php组件。
apt-get install php7.2-fpm php7.2-mysql php7.2-curl php7.2-json
https,即http over tls,是一种更为安全的http协议。如果没有tls的保护,我们通过http传递的都是明文信息,很容易受到攻击。
这里我们选择证书签发脚本acme.sh为我们生成SSL配置必需的证书与密钥。
首先安装socketCAT
apt install socat
安装完毕,我们就可以下载acme.sh了
wget -O - https://get.acme.sh | sh
执行命令后,acme.sh会被自动安装到路径 ~/.acme.sh
运行acme.sh需要临时占用80端口,我们先停止Nginx服务释放端口
nginx -s quit
现在通过脚本自动为我们签发证书
~/.acme.sh/acme.sh --issue -d domain.com --standalone -k ec-256
注意,domain.com请替换成你的域名,接下来的指令同理。成功生成证书和密钥后,我们要先建立一个目录来存放它们,然后将密钥和证书安装至我们新建的目录。
mkdir /root/ssl
~/.acme.sh/acme.sh --installcert -d domain.com --fullchainpath /roo
这里给出的是/etc/nginx/sites-available/下default文件的配置信息,不同的nginx版本可能对应的配置文件路径也有所不同。如果你想提高https的安全性,可以在支持的协议中假如TLSv1.3,并去掉版本较老的TLSv1
server {
listen 443 ssl http2; # 开启h2
root /var/www/html; # 网站根目录
# 这里要加上index.php
index index.php index.html index.htm index.nginx-debian.html;
server_name _ yourdomain.com; #替换为你的域名
ssl on; # 开启ssl
ssl_certificate /root/ssl/ssl.crt; # 重要:ssl.crt的路径
ssl_certificate_key /root/ssl/ssl.key; # 重要:ssl.key的路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#try_files $uri $uri/ /index.php?$args;
try_files $uri $uri/ /index.php?q=$uri&$args; #重点
}
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; # 版本需与你的php-fpm一致
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
server #将http访问重定向至https
{
listen 80;
server_name yourdomain.com; #替换为你的域名
rewrite ^(.*) https://$host$1 permanent;
}
现在测试一下我们的配置有没有出现语法错误
nginx -t
如果出现ok和successful:
这就说明我们配置成功了。
在/root目录下,直接从官网下载最新版本的Wordpress,并解压
wget http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
现在用root身份登录MySQL,为Wordpress创建数据库
mysql -u root #如果你之前设置了密码,请加参数-p
>CREATE DATABASE blog; #创建名为blog的数据库
>CREATE USER wordpress@localhost; #创建名为wordpress的用户
>SET PASSWORD FOR wordpress@localhost=PASSWORD("your_password"); #为wordpress用户设置密码,自行替换引号内的密码
>GRANT ALL PRIVILEGES ON blog.* TO wordpress@localhost IDENTIFIED BY 'your_password'; #赋予wordpress用户对blog数据库的权限
>FLUSH PRIVILEGES; #刷新权限设置
>QUIT;
对wordpress进行设置
mv /root/wordpress/wp-config-sample.php /root/wordpress/wp-config.php #更改配置文件名
vim /root/wordpress/wp-config.php
将DB-NAME,DB-USER,DB-PASSWORD后面的内容分别修改为我们刚才设置的blog,wordpress,以及你的密码。Authentication Unique Key部分需要打开注释中提供的连接,将其一一拷贝。
现在将wordpress拷贝至网站根目录下,并赋予Nginx用户(www-data)对该目录的所有权。
cp -r /root/wordpress/* /var/www/html/
chown -R www-data:www-data /var/www/html
最后启动Nginx
service nginx start
现在访问yourdomain.com,就可以进入选择语言和建立管理员账户的wordpress页面了。在Dashboard页面进入设置(Settings)–永久链接(Permalinks),这里注意,如果你的常规设置是Plain,请将其改为下面文章名或数字的选项。否则在迁移站点的过程中会出现主页正常,内页404的悲剧情况。同样这也更利于SEO的配置,让你的文章更容易被搜索引擎收录。
首先进入官网获取到下载链接
https://www.phpmyadmin.net/
或者你也可以直接在终端输入
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.1/phpMyAdmin-5.0.1-all-languages.zip
这里的地址是5.0.1版本的。
用unzip指令解压phpmyadmin压缩包,在网站根目录创建一个phpmyadmin的子路径,然后将解压后的内容全部复制过去。
unzip phpMyAdmin-5.0.1-all-languages.zip
mkdir /var/www/html/phpmyadmin
cp -r phpMyAdmin-5.0.1-all-languages/* /var/www/html/phpmyadmin/
现在还需要创建一个mysql用户管理phpmyadmin
mysql -u root
>CREATE USER pmauser@localhost; #创建名为pmauser的用户
>SET PASSWORD FOR pmauser@localhost=PASSWORD("your_password"); #为pmauser用户设置密码,这将会是你的登录密码,请设置一个强密码
>GRANT ALL PRIVILEGES ON *.* TO pmauser@localhost IDENTIFIED BY 'your_password'; #赋予wordpress用户对所有数据库的权限
>FLUSH PRIVILEGES; #刷新权限设置
>QUIT;
重启nginx,现在浏览器进入yourdomain.com/phpmyadmin就可以看到登录界面了。
用刚才创建的超级用户pmauser登录即可。
现在就可以选择“导出”,手动备份我们的数据库了,假如要迁移我们的wordpress站点,导入数据库是必须的操作。