0. 前言你想过自己建一个网站吗?你想过把自己发表在各大网站的原创东西全部收集到一起展示吗?这些我想
WordPress建网站第3/3步服务器调试与WP启用
你想过自己建一个网站吗?你想过把自己发表在各大网站的原创东西全部收集到一起展示吗?这些我想过,刚好在这个特殊时期,我就在网上找各种教程,以及请教朋友,终于建好了一个自己的网站。
你是不是以为建一个网站需要懂代码?是不是觉得投入需要很大,需要自己有机房?其实这些都不需要,只要你会使用软件,还会简单套模版就能建一个网站。看了许多教程,有容易的有难的,有花钱的有不花钱的,所以建网站,个人觉得分以下几种建站模式:代码模式、软件模式、金钱模式。代码模式最困难,就是自己从零开始学各种代码,然后白手搭建服务器,自己设计、美工、搭建网站等等;软件模式相对容易,就是利用建站软件搭建网站框架,用网站模版套用各种功能,这种也有学习成本;金钱模式最简单,你只要提需求,钱给到位,别人就能帮你建好。
我的网站唐之途:www.tangzhitu.cn
我的网站就是在软件模式下搭建成功的,下面就分享一下我的成功经验。因为内容比较多,加上为了叙述的足够直白,所以图文特别多,加上某些步骤是可以在某种情况下省略的,所以我把这个经验分成了三部分,命名为WordPress纯小白建网站。WordPress纯小白建网站系列是软件模式下的网站建立教程,基于阿里云ECS、Linux中的Debian、Nginx、PHP、MariaDB(MySQL的开源免费版)或者MySQL(MariaDB的收费版)、WordPress等建站运行,就是网络上流行的LNMP建站套装,具体内容分如下三部分:
经过前面两个部分,我们完成了服务器购买设置、域名购买解析与备案,以及LNMP套装、WordPress的安装,后面我们来说说,这些软件怎么设置,以便支持WordPress启用运行。其实这部分是可以在软件安装里面讲的,但是考虑到新手可能会遇到各种各样的问题,导致服务器回滚或者初始化,以及反正都是要设置软件,那就放一起来说了。
重要的事情说三遍:
设置之前一定要做一个快照进行备份!
设置之前一定要做一个快照进行备份!
设置之前一定要做一个快照进行备份!
装好MariaDB数据库后,我们还需要去除一些原始设置,同时添加一个供WordPress使用的数据库。在这些原始设置里面,有些是非必要的,有些容易让数据库的风险提高。
3.1.1加固MariaDB
执行以下命令,mysql_secure_installation,并按照提示信息进行操作,加固mariadb。出现提示输入密码,如果之前安装没有设置密码,直接按回车就可以了(本教程前面没有涉及设置密码,所以直接按回车就行)。
加固MariaDB
回车后出现以下页面的设置信息,一步步按提示做就好,基本上在重置密码后,都是输入Y,这样一路下去就可以加固好数据库了。
Securing the MySQL server deployment.
Enter password for user root: #输入上一步骤中获取的安装MySQL时自动设置的root用户密码
The existing password for the user account root has expired. Please set a new password.
New password: #设置新的root用户密码
Re-enter new password: #再次输入密码
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration of the plugin.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N #是否更改root用户密码,输入N
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y #是否删除匿名用户,输入Y
Success.
Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #禁止root远程登录,输入Y
Success.
By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y #是否删除test库和对它的访问权限,输入Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是否重新加载授权表,输入Y
Success.
All done!
按上面步骤操作完后,出现以下画面,表示配置完成。
加固完成后的提示
3.1.2创建一个WordPress使用的数据库
首先我们先执行以下命令,并按照提示信息输入MariaDB的root用户密码,登录到MariaDB的命令行。
mysql -u root –p或者mysql -r root –p
进入MariaDB的命令行
然后在MariaDB[(none)]>后面输入并执行以下命令,注意不要漏掉了分号,创建一个新的数据库wordpressdate(可以将wordpressdate改为你想用的名称,不一定就是wordpressdate)。
CREATE DATABASE wordpressdata;
创建wordpressdate数据库
接着执行以下命令,为数据库wordpressdata创建用户并为用户分配数据库的完全访问权限。其中,wordpressdata 为前面设置的数据库名,“wordpressuser”为数据库用户名,“wordpress123”为对应的帐户密码,可以自行设置。
GRANT ALL ON wordpressdata.* TO wordpressuser@localhost IDENTIFIED BY 'wordpress123';
为数据库wordpressdata创建用户和设置密码
为了确认我们用户创建成功,我们可以在Maria DB[(none)]后输入”select user from mysql.user;”命令,查询数据库的使用用户,”SHOW DATABASES;”命令可以查询有哪些数据库,查询结果如如下。看到里面有自己命名的数据库名和用户名即表示创建成功。
查询数据库用户
确认用户和数据库创建成功,执行以下命令,就可以退出MariaDB命令行了。
Exit
退出MariaDB
安装完成PHP后,我们需要进行简单的配置修改,以便我们的服务器更安全,简单说就是马上修改php.ini文件里面的cgi.fix_pathinfo=1语句,这样可以防止服务器 受到跨目录攻击。因为这是一个非常不安全的设置,当它找不到所请求的PHP文件时,将允许PHP尝试执行可以找到的最接近的文件。这就有可能让用户执行不应该被允许执行的脚本,从而创建PHP请求。具体操作就是编辑 /etc/php/7.3/fpm/php.ini 查找到cgi.fix_pathinfo=1 语句,并修改为cgi.fix_pathinfo=0 。有三种方式,快捷命令、编辑器编辑、FinalShell路径编辑。
第一种使用快捷命令,简单、直接、高效,首推,强烈建议。
快捷命令:sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.3/fpm/php.ini
第二种用vim或vi编辑器编辑修改,个人觉得体验不好,有点麻烦,还不直观。
编辑器修改:输入sudo vim /etc/php/7.3/fpm/php.ini ,进入以下页面,然后按i键进入编辑模式。然后查找手动修改对应内容,最后按Esc键退出编辑模式,并输入:wq保存后退出。
编辑器修改PHP
第三种用root账号登录服务器,在FinalShell里面按路径找到 /etc/php/7.3/fpm/php.ini ,然后双击打开文件,Ctrl+F搜索找到cgi.fix_pathinfo=1,最后修改为cgi.fix_pathinfo=0并保存即可。其实这种方式就是通过FinalShell将php.ini下载到了本地,然后编辑完保存的时候就顺带上传覆盖了旧文件。
FinalShell修改PHP
在完成所有软件安装后,我们输入自己的公网IP或者域名,打开的页面显示的,仍旧是Nginx的欢迎页面。造成这个情况的原因,就是我们没有配置Nginx去调用PHP的内容,所以为了能够让WordPress运行,我们需要修改Nginx配置文件以支持PHP,同时还能调用WordPress的内容,让我们启用自己的网站。
3.1.1Nginx配置文件修改
首先,通过FinalShell找到/etc/nginx/sites-available/default文件,将其下载到本地做一个备份,修改文件名为defaultwww(我这样命名是为了表示这是www网站的默认配置)。然后在本地用记事本打开文件defaultwww,将server里面的listen 80 default_server、listen [::]:80 default_server、root /var/www/html、server_name _分别修改为listen 80、listen [::]:80、root /var/www/wordpress(你WordPress安装的地址,按本教程第二节内容,我把WordPress安装在/var/www里面)、server_name tangzhitu.cn www.tangzhitu.cn(请将网站改为你自己的网站域名,每个域名间用空格隔开),同时在“# Add index.php to the list if you are using PHP”下面的index后面添加index.php。
修改Nginx配置文件中server
接着我们在location / {}语句括号里面的try_files $uri $uri/ =404;下面,添加以下代码,注意括号要配对。
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;
}
最后,我们接着把sever{}后面的绿色文字中的“#location ~ \.php$ {”、“# include snippets/fastcgi-php.conf;”、“# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;”语句前面的#号,让他们从注释变为程序会运行的代码,并修改“# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;”中的php7.0-fpm.sock为php7.3-fpm.sock。
修改Nginx配置文件中location
修改后将defaultwww上传到/etc/nginx/sites-available/default的平行位置,而后输入命令运行sudo ln -s /etc/nginx/sites-available/defaultwww /etc/nginx/sites-enabled/语句,创建从sites-enabled目录到Nginx在启动期间读取的目录的链接,以便启用defaultwww配置文件,然后输入命令并运行sudo nginx –t以检查配置是否存在语句问题,看到下图后两句即表示语句没有问题。
检查Nginx语句
3.3.2分配Nginx配置文件所有权
现在我们的配置文件就位,我们需要将它的所有权分配给www-data用户和组。这是Nginx运行的用户和组,Nginx需要能够读取和写入WordPress文件才能为网站提供服务并执行自动更新。直接运行命令sudo chown -R www-data:www-data /var/www/wordpress就可以快捷完成所有权分配。这里要说的是,用户和组www-data,可以在/etc/nginx/nginx.conf文件里面查找,就在该文件的第一行,其实一般Nginx的默认就是www-data。
查询Nginx用户
完成以上操作后,我们用重新加载Nginx的命令sudo systemctl reload nginx重启Nginx,以便让配置文件生效,如此我们就完成了能够支持WordPress运行的所以软件的基本配置,后面我们可以启用WordPress并完成网站初步架设。
在第二节我们安装了WordPress,但是我们并没有启用它,只有完成本节3.1-3.3的设置后,才能正式启用WordPress。完成这些步骤后,我们在浏览器输入输入公网ID或者域名就可以进入WordPress启用页面,点击现在就开始进入下一步。
WordPress首次进入页面
正常来说我们进入的是输入用户名、密码等等的页面,输入数据库名、用户名、密码等信息就可以进入下一步了。这里要说的是,数据库名、用户名、密码就是我们在3.1.2里面设置的内容(当时设置数据库名:wordpressdata,用户名:wordpressuser,密码:wordpress123),而数据库主机和表前缀一般都是默认设置。
数据库信息填写
当我们提交后,可能会弹出以下页面,不用担心,按照提示在/var/www/wordpress/中新建一个wp-config.php文件,并把相应内容复制粘贴进去就可以了。我们也可以把/var/www/wordpress/wp-config-sample.php文件下载到本地,把它的名字改为wp-config.php,然后用记事本打开它,删除里面所有的内容后,复制并粘贴网页上面提示的内容进去,最后把wp-config.php上传到/var/www/wordpress/文件夹就可以了。
写入文件提示
出现如下的提示,证明数据库信息没有问题。
WordPress数据库设置成功
接下来是配置网站的基本信息和管理员信息,为了安全用户名最好不要使用admin,想一个你喜欢的网站名称以及管理用户名称。注意,网站名称最好符合备案要求。
设置网站的基本信息
如此,会显示下面的页面,表示我们的WordPress网站搭建成功。我们点击登录或者在浏览器输入“域名/wp-login.php”,在出现的页面里面输入刚才设置的用户名和密码,就可以登录管理网站了。
WordPress成功页面
至此,我们的网站就可以正式运行了,在WordPress管理页面里面,我们可以创建文章、给我们的网站安装主题、插件,装饰我们的网站并让我们的网站支持更多功能。
WordPress管理网站页面
终于,经过以上三个部分的内容操作,我们的网站可以说是建好了。可是,建好网站只是我们万里长征第一步,后面还需要选择主题、插件、内容、运营、维护等等事情。一个好的主题,让你的网站能够给人好印象。一个好的插件,能够完成你的功能需求。一个好的内容,能够留住用户并让用户有所得。这些东西,都需要长期的运营,长期的添砖加瓦,而在长期的运营维护中,就会发现无穷尽的烦心琐事。咬着牙,不断解决问题,添加新功能,如此,我们的网站才能长久运营下去。关于WordPress管理的一些内容,后面有机会了,我会另开文章来写,遇到问题了,也可以第一时间求助搜索引擎。另外,文中比喻可能有不形象的地方,以及部分语句解读可能不准确,请见谅,毕竟我也不是搞互联网出身的,只希望这篇文章能够对你建网站有帮助。
WordPress纯小白建网站第1/3步:服务器、域名、解析与备案
WordPress纯小白建网站第2/3步:Linux(Debian)+Nginx+MariaDB/MySQL+PHP安装部署与WordPress安装
WordPress纯小白建网站第3/3步:Linux(Debian)+Nginx+MariaDB/MySQL+PHP部署调整与WordPress启用建站