本文为教程贴,简单易用,这里首先感谢 https://lnmp.org/ 网站提供的LNMP环境(linux+nginx+mysql+php)的一键安装包,才使得整个安装过程变得更加简单。之前我也是深受苦恼,个人安装了很多次的环境总是因为各种原因没能成功,特此在此开一篇将一些小小的经验分享给各位。安装过程重复三五次都是有可能的。但也祝各位能够一次性安装成功。
首先,你要准备一个 Linux 系统,这里主要以CentOS系统为主进行介绍,绝大多数的 web 服务器都会选择 CentOS 作为服务器系统,一是轻巧,没有桌面占用资源,据说 CentOS 在无桌面的情况下系统在内存占用只有50Mb;二是广泛,网络上关于它的教程和资料随处可见,如果出现系统方面的问题也能容易搜到解决方法。
注意,此安装过程,前提是对 Linux 系统的基础指令有初步的了解,比如 cd cp vim sudo 等等。如果不了解,安装过程可能会有你不熟悉的方面。因为本文不是 Linux 讲解介绍文,遇到相关问题还请自行百度。
安装全程的参考文档:
https://lnmp.org/install.html
https://www.cnblogs.com/medsonk/p/8888558.html
https://blog.csdn.net/u013693952/article/details/90710956
主要参考文档见上方,也感谢上方文档的分享。
警告:本文编辑时间为2020年6月15日,考虑到软件是时时刻刻更新的,如果你当前看到这个文章的时间与本文编辑时间差别越大,那么本文的参考价值就越小。包括我在参考上方的网址的时候,也遇到了一些版本更新导致与教程文档介绍不一致的问题。所以,在参考前,请先对比日期和软件版本。你的安装过程也可能会有与我介绍的不一致的风险。
感谢你能耐心看到这里,我相信你最终一定能安装成功的,我也尽量介绍详细且简略一点。下面开始正式教程:
如果你的Linux系统是在本地,那么你只需要考虑防火墙的问题(可能还要考虑端口映射的问题,这里不对这个做详细说明)。输入以下指令可以直接关闭防火墙,更多防火墙的修改指令(比如只开放80端口)可以自行搜索。
# 暂时关闭防火墙 systemctl stop firewalld # 永久关闭防火墙 systemctl disable firewalld # 查看防火墙状态 systemctl status firewalld
如果你的Linux系统是在阿里云或者腾讯云等云平台上,除了本地防火墙的配置,还需要配置安全组规则,需要在入方向配置80和443端口,我的目前就是配在阿里云。这里我无法一一介绍,配置一般也挺简单,还请自行百度。
然后,请先安装几个安装包,有可能你已经安装过了。
sudo yum install -y screen wget vim
然后,新建一个文件夹,比如我在根目录下新建:
# 新建文件夹 mkdir /lnmp # 进入文件夹 cd /lnmp
进入文件夹之后,通过screen新建窗口:
screen -S lnmp
(我也才发现screen是真的好用,具体的相关指令可以自行百度,大概就是新建一个窗口,在该窗口运行的进程不会受到你当前的连接窗口影响)
然后开始下载并安装LNMP的1.7版本的一键安装包:
wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh lnmp
该过程可以参考查阅官网版本:https://lnmp.org/install.html,因为我的安装过程也是参考官网版本的。官网全中文,无需担心英文看不懂。如果发现官网更新了版本,则建议尽量按照官网的来。
运行如上命令后,出现如下提示:

如果你的内存少于等于1G,请勿选择 MySQL 5.6 以及以上版本。
如果你的CentOS版本为5,请关闭此页面。(现在应该没有人还使用CentOS 5.x版本了吧?)
如果你的CentOS为8.0+,能且只能选择MySQL 8.0,其他版本无法选择MySQL 8.0
选择好之后继续进行下一步,我的系统是CentOS 7.8,选择了MyQSL 5.7。之前安装了CentOS 8.1版本,后续编译系统总是卡死,但CentOS 7.8发现没问题。
然后需要设置MySQL的root密码。如果输入错误,请按住Ctrl + Backspace进行删除。注意,后续的PHP密码也是这个,请妥善设置与保存!

然后,后续回车下一步:

这一步直接输入y并回车即可,然后下一步:

如果你的CentOS系统8.0+,请选择PHP 7.4,其他版本不支持。
如果你的内存小于等于1G,请勿再考虑 PHP 7 版本
这里我选的是PHP 7.3,wordpress推荐的PHP版本好像是 PHP7.3 以及以上版本。然后按回车进入下一项:

这个是选择内存优化,我直接回车跳过了。
然后出现提示:“Press any key to install…or Press Ctrl+c to cancel”之后,按回车键开始安装。安装过程几十分钟到几小时不等,受配置和网速等因素影响。
如果安装完成,则会出现以下内容:

然后按 Ctrl + C 退出即可。你也可以通过浏览器访问你的设备地址进行查看,如果出现lnmp安装成功的页面,也代表安装成功。安装成功后,便可以继续安装wordpress。
首先登陆mysql:
mysql -u root -p
输入你之前设置的MySQL密码,注意,输入的密码不可见。输入完成后按回车即可。
然后创建用于WordPress的数据库(注意后续的数据库操作指令最后都有一个英文分号,请勿遗漏):
CREATE DATABASE wordpress_db;
创建用于wordpress的MySQL用户:
CREATE USER wordpress_user@localhost;
设置新建用户的密码:
SET PASSWORD FOR wordpress_user@localhost=PASSWORD("password");
配置用户权限:
GRANT ALL PRIVILEGES ON wordpress_db.* TO wordpress_user@localhost IDENTIFIED BY 'password';
刷新一下权限:
FLUSH PRIVILEGES;
然后输入 exit 退出即可。创建过程中,请自行保存新建的用户名和密码信息,后续会用到。
然后下载WordPress,网址为https://cn.wordpress.org,可以手动下载然后通过Xftp传到CentOS上也可以按照下面的教程下载。
这里我们在根目录下创建down文件夹并进入文件夹。
mkdir /down cd /down
然后下载WordPress的最新版本的压缩包并解压:
wget https://cn.wordpress.org/latest-zh_CN.tar.gz tar -zxvf wordpress-5.4.2-zh_CN.tar.gz
解压好之后,复制文件到/home/www路径下:
cp -r wordpress /home/www
进入/home/www/wordpress路径下并将config的模板文件复制出来准备配置:
cd /home/www/wordpress cp wp-config-sample.php wp-config.php
修改权限分配给www用户
chown -R www:www /home/www/wordpress
然后进入非常重要的环节:修改配置文件,这里用过vim编辑器修改:
vim wp-config.php
按照以下格式修改,注意你之前新建与设置的MySQL的用户和密码并将其填入:
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress_db');
/** MySQL数据库用户名 */
define('DB_USER', 'wordpress_user');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'password');
/** MySQL主机 */
define('DB_HOST', 'localhost');
然后开始配置Nginx,Nginx的配置文件在路径 /usr/local/nginx/conf/nginx.conf 中
vim /usr/local/nginx/conf/nginx.conf
然后按照如下方式修改:
server
{
listen 80 default_server reuseport; # 默认端口为80
server_name example.cn; # 这里修改成你的IP地址或者域名
index index.html index.htm index.php;
root /home/www/wordpress; # wordpress的所在路径
... # 此处在中间省略若干已生成的代码
# 下面的代码在server中的最后加上,用于修改WordPress内的固定链接,并且请不要添加中文注释,中文注释可能会带来其他问题
location / {
root /home/www/wordpress;
index index.php index.html index.htm;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php) {
rewrite (.*) $1/index.php;
}
if (!-f $request_filename) {
rewrite (.*) /index.php;
}
}
}
配置完成后,按下Esc键并输入 :wq 保存并退出。然后重启nginx:
service nginx restart
完成后便可以通过 ip/wp-admin 来访问你的 WordPress 初始化界面。
至此,WordPress已经完全可以运行。做到这一步的朋友们,终于可以松口气了。WordPress也完成了配置和安装,后续根据提示进行操作即可。
如果想要升级为SSL证书的,就是可以访问为https这种协议的,可以使用acme协议从 letsencrypt 生成免费证书。
主要参考官网为:https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
请在参考以下教程时,以官网教程为主!
首先,获取acme脚本:
curl https://get.acme.sh | sh
然后,进入到 ~/.acme.sh/ 路径下:
~/.acme.sh/
创建一个bash的alias,方便后续调用:
alias acme.sh=~/.acme.sh/acme.sh
等号左边为快捷调用名,等号右边为具体路径。这样就可以在任何路径下都可以调用执行此文件。
然后开始准备生成证书:
acme.sh --issue -d example.com -d www.example.com --webroot /home/www/wordpress/
注意,里面需要增加网址的就加上 -d example.com 即可,最后为网站的路径。
完成后会显示你上面的每个域名都会有的两个证书文件。这个时候准备开始复制证书,这里不建议直接将该证书路径复制到nginx的配置文件里,也不建议手动用cp的方式复制,建议用acme的方式来复制证书,具体操作如下:
首先创建用于存放证书的路径:
mkdir /usr/local/nginx/conf/ssl
然后执行以下操作:
acme.sh --install-cert -d example.com \ --key-file /usr/local/nginx/conf/example.com.key \ --fullchain-file /usr/local/nginx/conf/example.com.cer \ --reloadcmd "service nginx force-reload"
这样就完成了证书的签发,但还需要注意,还要在nginx的配置文件里启用ssl。
在server里面添加(注意路径和域名地址):
listen 443 ssl; ssl_certificate /usr/local/nginx/conf/ssl/example.com.cer; ssl_certificate_key /usr/local/nginx/conf/ssl/example.com.key;
然后重启一下nginx:
systemctl restart nginx
启动正常后,即可正常通过ssl访问网站了。