使用lnmp一键安装包快速搭建一个wordpress站点
wordpress是开一个快速搭建网站的利器,WordPress 被称为世界上最受欢迎的网站建设工具。它为互联网上超过 40% 的网站提供支持。主要原因是因为 WordPress 易于安装,这使得任何人都可以轻松创建网站。所有最好的 WordPress 网络托管公司都允许您只需点击几下即可安装WordPress。在大多数情况下,WordPress安装是一个简单的过程,只需不到五分钟即可完成。
wordpress可以用nginx,apache等web服务器,但用的最多的还是nginx,性能也比apache好,所以我们使用lnmp来搭建一个wordpress站点。下面开始本教程。
lnmp是linux,nginx,mysql,php的缩写,同理lamp就是linux,apache,mysql,php的缩写
购买服务器
搭建站点当然需要一台服务器,当然你也可以直接使用现成的虚拟主机,能直接用别人给你配置好的环境,但那样的自由度不高,所以我们首先购买一台vps或者云服务器。这里选择的是腾讯云香港2c4g的轻量服务器(别问为什么是香港,问就是因为香港不用备案)。
- 更新服务器
购买完成后我们使用ssh登录vps内,首先需要进行一次完整更新。- debain系列
sudo apt update && sudo apt upgrade
- 如果是rhel(红帽)系列则
sudo yum update
环境安装
-
安装lnmp
现在开始正式安装lnmp环境,我们使用lnmp.org的lnmp一键安装包来安装lnmp环境,详细的安装过程和安装要求可以去他们的官网查看教程lnmp.org
-
配置数据库
安装完成后我们为wordpress创建一个数据库,这里我安装的数据库版本是MySQL8.0.30版本
也可以换成MairaDB
#以下命令必须在具有相关权限的用户才能操作
#创建数据库wordpress
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
#创建用户wordpress,如果需要远程连接数据库将localhost改为%
CREATE USER 'wordpress'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
#赋予基本权限
GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE ON `wordpress`.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
-
配置nginx
创建完数据库和wordpress数据库用户后我们配置nginx,在nginx.conf(这里的路径是/usr/local/nginx/conf/nginx.conf,你的可能和我的不一样,如果你使用lnmp.org提供的安装包那就是这个路径)的http段内内加入下列内容:server { listen 443 ssl http2; #listen [::]:443 ssl http2; #如果vps有ipv6则取消注释 server_name 你的域名; ssl_certificate 你的证书; ssl_certificate_key 你的私钥; ssl_protocols TLSv1.3 TLSv1.2; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; #ssl_early_data on; #tls1.3 0-RTT ssl_prefer_server_ciphers off; ssl_session_tickets off; ssl_session_cache shared:SSL:10m; ssl_session_timeout 1d; ssl_stapling on; ssl_stapling_verify on; resolver 1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s; resolver_timeout 2s; set $base 你的wordpress安装路径; root $base; # . files location ~ /\.(?!well-known) { deny all; } index index.php; # index.php fallback location / { try_files $uri $uri/ /index.php?$query_string; } # favicon.ico location = /favicon.ico { log_not_found off; access_log off; } # robots.txt location = /robots.txt { log_not_found off; access_log off; } # assets, media location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ { expires 7d; access_log off; } # svg, fonts location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ { add_header Access-Control-Allow-Origin "*"; expires 7d; access_log off; } # WordPress: allow TinyMCE location = /wp-includes/js/tinymce/wp-tinymce.php { fastcgi_pass 127.0.0.1:9000; try_files $fastcgi_script_name =404; # default fastcgi_params include fastcgi_params; # fastcgi settings fastcgi_index index.php; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; # fastcgi params fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/"; } # WordPress: deny wp-content, wp-includes php files location ~* ^/(?:wp-content|wp-includes)/.*\.php$ { deny all; } # WordPress: deny wp-content/uploads nasty stuff location ~* ^/wp-content/uploads/.*\.(?:s?html?|php|js|swf)$ { deny all; } # WordPress: SEO plugin location ~* ^/wp-content/plugins/wordpress-seo(?:-premium)?/css/main-sitemap\.xsl$ { } # WordPress: deny wp-content/plugins (except earlier rules) location ~ ^/wp-content/plugins { deny all; } # WordPress: deny general stuff location ~* ^/(?:xmlrpc\.php|wp-links-opml\.php|wp-config\.php|wp-config-sample\.php|readme\.html|license\.txt)$ { deny all; } # handle .php location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; try_files $fastcgi_script_name =404; # default fastcgi_params include fastcgi_params; # fastcgi settings fastcgi_index index.php; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; # fastcgi params fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/"; } # security headers add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "no-referrer-when-downgrade" always; add_header Content-Security-Policy "default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline'; frame-ancestors 'self';" always; add_header Permissions-Policy "interest-cohort=()" always; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; }
-
配置php
找到你的php-fpm.conf和www.conf,确保你的php-fpm监听地址为127.0.0.1:9000(图中的端口为9001,你自己需要将它改为9000)
这样所有的就配置完毕了,现在该启动所有服务了,如果已经启动了则跳过这一步:
systemctl start mysql php-fpm nginx
现在你可以在浏览器输入https://你的域名来访问你的wordpress站点了。
配置wordpress
在浏览器打开你的域名,出现wordpress数据库设置界面,按照提示根据你前面的配置进行设置。
如果数据库可连接,则会出现成功提示并且进入wordpress安装向导:按照你自己的喜好填写
如果全部配置正常并且出现下图界面,那么恭喜你,安装成功了!:satisfied:
版权声明:
作者:anoixa
链接:https://blog.imtop1.moe/archives/35/
来源:anoixa的博客
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论