现在以宝塔面板为代表的一些一站式服务器管理工具为一些基础差甚至是零基础的人管理服务和建站提供了便利。但是用可视化工具也有一些问题,例如安全性、自由度和性能等方面的局限性。不用这些工具完全手动大家服务器和部署网站就可以完美避开这些问题,一切都掌控在自己手里。所以我决定写一片适合零基础人员的手动搭建web服务器和网站的教程。我会详细记录我操作的每一步。相信按照这个教程你也完全可以不用可视化工具建立起自己的网站。
目标: 手动搭建服务器环境+部署一个WordPress网站。WordPress号称全球网站超过8.514 亿个。wordpress官网地址
环境: Ubuntu22.04 你可以创建一个本地虚拟机,也可可以购买阿里云或者腾讯云的云服务器。当下他们都有99一年的套餐。用来学习或者建站很合适。

说明 :本次安装用到的所有服务都用包管理工具安装,Ubuntu对应的是apt包管理工具。喜欢编译安装的小伙伴可以等我以后挨个写一下这些服务的编译安装过程。
既然用到了apt所以我们第一步就要更新本地软件包列表的命令

sudo apt update 注释:sudo是以管理员身份运行命令,可能会需要输入密码(你当前登录用户的密码,如果已经是root用户可以不用写sudo)。当前命令的意思是以管理员身份执行 apt update。

image.png

执行完命令一直等待命令结束即可,全程不需要任何干预。等命令执行完成我们下面开始正式配置环境

安装php

sudo apt install -y --no-install-recommends php 注释:--no-install-recommends 是代表我只安装php。不安装关联的软件。如果没有这个选项在Ubuntu22.04系统下会默认给你安装Apache2。

执行完命令完全不需要干预,一直等到执行停止。然后我们通过执行

php -v

看一下php是否真正安装成功

image3ddb676ebef13a0e.png

看见上图所示代表php已经安装成功。按q退出。

执行如下命令安装php扩展

sudo apt install -y php-mysql

该命令不需要干预,一直到等执行完成即可

安装php-fpm

PHP-FPM (PHP FastCGI Process Manager) 是一个 PHP 进程管理器,用于处理 PHP 脚本的 FastCGI 接口。这是php-fpm比较标准的定义。但是在这里你可以理解成它就是php和nginx进行交互的一个桥梁。

sudo apt install -y php-fpm

该命令全程不需要参与,一直等到执行完成。该命令同样把php-fpm安装成了Ubuntu的系统服务。所以可以用下面的命令查看是否已经安装完成并启动成功

sudo systemctl status php8.1-fpm.service

imagecd8591469ee25cad.png

看见如上图显示,就证明php-fpm已经正常启动了。按q退出。
这里我为什么知道是php8.1-fpm.service 而不是8.x。因为上面的php-v已经说明了,如果你不知道是什么版本不知道具体的php-fpm的服务名可以用如下命令
sudo systemctl -l | grep php

imaged7f56f67b1545a43.png

上图已经明确显示出来php8.1-fpm.service 和 running等字样,同样也可以证明php-fpm已经正常启动

nginx安装

sudo apt install -y nginx 注释: -y 可以写也可以不写。如果不写-y 命令过程可能需要你确认。所以这里直接-y即可

该命令会把nginx直接安装处Ubuntu的系统服务,所以检查nginx是否真正运行起来我们执行执行

sudo systemctl status nginx

image.jpeg

当你看见如下界面证明nginx已经正常运行了。而且以后系统重新启动也会自动运行。按q退出。

配置nginx

一个nginx可以跑很多个网站,所以通常的做法是每一个网站会有一个单独的配置文件。默认的情况是我们在/etc/nginx/sites-available 路径下创建一个与你当你网站域名一样的文件,例如www.pipiang.com/ 然后在创建一个软连接到/etc/nginx/sites-enabled 目录下。你分别进入两个目录会看见对应的文件和链接文件。
如果你只有一个文件可以直接用这个default。为了简单这里也直接用这个default。用 vi 编辑 /etc/nginx/sites-available/default 这个文件。不会用vi编辑可以点这里可以直接删除所有内容替换成如下所示内容,也可以找到 location ~ .php$ 这行只替换这里面的内容。
注意:这个只是一个最基本的配置,怎么优化配置要根据实际情况,后面我也会写一些。
``

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
        # 配置 PHP 请求处理
        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_pass unix:/run/php/php8.1-fpm.sock;  # 替换为您的PHP版本
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_script_name;
        }

}

vi 编辑完成执行如下命令

sudo nginx -t 注释:检查nginx配置是否有效

imagefb5318755292278d.png

如上图所示就会证明nginx配置没有问题,执行以下命令

sudo nginx -s reload

上面命令让nginx重写加载咱们修改的配置文件。为了验证配置是否已经成功我们可以在网站根目录创建一个php文件。默认的网站根目录是/var/www/html,所以执行以下命令

echo '<?php phpinfo(); ?>' | sudo tee /var/www/html/phpinfo.php > /dev/null

命令会在你的网站根目录/var/www/html下创建一个php文件并写入内容。这个时候我们打开浏览器输入的你的ip或域名(域名需要解析)。如http://192.168.166.130/phpinfo.php

image47fb7cff7fe63726.png

如果看见上图界面,证明配置已经完成。验证完成之后我们可以删除phpinfo.php。

安装mysql

直接执行如下命令

sudo apt install -y mysql-server

该命令全程不需要干预,一直到等待执行完成。快慢取决于你的网速和机器配置。执行完成Ubuntu同样会把mysql安装成系统服务,所以依然可以如下命令查看mysql的运行情况

sudo systemctl status mysql.service

image491ead4f4224e146.png

看见上图显示running标识mysql服务已经正常启动。按q退出。

为WordPress创建用户和数据库

mysql服务已经安装完成,下面需要登录进去创建一个用户和数据库。直接一下命令

sudo mysql -u root 注释:以系统管理员身份可以直接登录mysql不需要密码。所以回车之后就会成功登录到mysql界面。如下图

image1ad8d55210abe90d.png

上图中我们已经成功登录进mysql,可以看见命令提示符已经从系统的切换成了mysql的提示符。这个提示符后我们可以输入mysql命令,注意mysql的每行命令要以英文分号“;”结束。

CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 注释:创建数据库
CREATE USER 'user_name'@'localhost' IDENTIFIED BY '123456'; 注释:创建用户user_name并且设置了密码123456
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'user_name'@'localhost'; 注释:把数据库wordpress_db的权限给了用户user_name
FLUSH PRIVILEGES; 注释:刷新是刚才的权限设置生效
exit; 注释:退出mysql。命令提示符回到系统
依次执行上面的命令,注意把user_name和123456替换成你自己的用户名和密码。数据库名字wordpress_db你可以根据自己的喜好定义。但是切记找一个地方把用户名密码和数据库名自己记一下。稍后会用到。执行完成如下图

imageae3c3a9c5ab36483.png

看见如图所示,证明我们已经创建了用户和数据库,并且把这个新创建的数据库wordpress_db权限给了新创建的用户。

部署WordPress

去官网下载最新的网站代码 中文官网 这里面有所以的发行版本。推荐安装最新版
依次执行如下命令

cd /var/www/html
sudo wget https://cn.wordpress.org/wordpress-6.5-zh_CN.zip   #下载
sudo unzip wordpress-6.5-zh_CN.zip  -d /var/www/html      #解压
sudo mv /var/www/html/wordpress/* /var/www/html        #移动到根目录
sudo rm -rf /var/www/wordpress        #删除空目录
sudo chown -R www-data:www-data /var/www/html    #把当前目录所有权给www-data用户

执行完成所有命令我们打开浏览器,再次输入你的ip地址。例如http://192.168.166.130/ 看见如下画面

image4f22bd13d2932bf8.png

如果你已经看见这个图了,说明已经进入到WordPress的安装程序。但是你点几创建配置文件按钮的时候页面可能只是刷新一下,并不会有进展。上面也有介绍推荐手动创建wp-config.php。所以执行以下命令

sudo cp wp-config-sample.php wp-config.php 注释:复制一个wp-config-sample.php并且重命名成 wp-config.php

然后依然用vi对新创建的wp-config.php进行编辑vi不会用点这里,修改关键的几行

define( 'DB_NAME', 'wordpress_db' );   #database_name_here 改成你的数据库名字,本文中是wordpress_db
define( 'DB_USER', 'user_name' );  #username_here 改成你的数据库用户名,本文中是user_name
define( 'DB_PASSWORD', '123456' );  #password_here 改成你的数据库用户的密码,本文中是123456

编辑完成打开浏览器输入如下地址http://192.168.166.130/wp-admin/install.php 其中ip换成你自己的,会出现如下页面

imagedca26e310ea0b894.png

按自己需求填写好之后就可以点击安装WordPress了。

image5fb44cb5e5bf2902.png

到现在为止WordPress已经成功安装完成。可以用你刚才设置的管理员用户和密码进行登录了。

相关阅读