搭建博客

博客搭建之手动安装

目录

前言

这个教程可能多,也分为三个部分:手动,自动,优化。

我也是尽量列出我遇到的问题,如有不全面的地方可以指正。

如果有地方出现了意外的情况,希望能好好利用搜索引擎,亲自动手解决问题。

如果以学习为主,联系多动手,如果以快速搭建为主,建议跳读代码部分,可以直接使用。

不会讲很多原理(默认大家都懂😘),不懂的希望自己搜索学习。

VPS

服务器是选用了腾讯云的一个vps,第一次购买很便宜,但是之后付费就很麻烦,所以建议是一次购买时间长一点,最好是三年左右为最好。

操作系统

操作系统我选用的是centos8,当时也是看最新就选用了,后面也是发现了很多坑。

构思

  1. 主要的Web服务是打算用docker建立

    web服务包括nginx和php等服务。

  2. 数据库就本地保存好一点,不然随便宕一下机器就寄了。

  3. 博客打算使用wordpress来实现。

  4. 后面也会写一个自动更新,比如自动更新nginx,wordpress及其插件等。

安装过程

文件下载

  • 手动下载七个文件,分别是nginx, php, wordpress, pcre, zlib, openssl,sqlite3

  • 自动安装make,gcc,g++,pkg-config, libxml2-dev,mariadb 等(具体见安装文件)

sudo dnf install mariadb
  • 其中部分可以直接用指令安装,而且基本不会有什么问题,部分选择文件安装 (当然,能在仓库直接安装也可以)。

  • 我给出地址,可以自己去下载一个最新版的

zlib

pcre

openssl

nginx

php

sqlite3

wordpress(最新版)


预操作

设置交换分区

大部分的vps都没有很多的内存,但是在编译php的时候需要很多的内存,所有经常编译错误。

交换分区可以让主机在内存不足的时候用存储空间暂时存放内存数据

代价就是用时间来换空间

步骤

  • 创建分区路径

    sudo mkdir -p /var/cache/swap/
    
  • 设置分区的大小

    bs=64M是块大小,count=64是块数量,所以swap空间大小是bs*count=4096MB=4GB

    sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=64M count=64
    
  • 设置该目录权限

    sudo chmod 0600 /var/cache/swap/swap0
    
  • 创建SWAP文件

    sudo mkswap /var/cache/swap/swap0
    
  • 激活SWAP文件

    sudo swapon /var/cache/swap/swap1
    
    
  • 查看SWAP信息是否正确

    sudo swapon -s
    free -m 
    
    

配置mysql

~~mysql配置最简单~~

目的:

  • 给wordpress一个账户,然后赋予相应的权利

  • 给自己一个用于远程连接的账户,用于维护

  • 备份root密码,以备不时之需

操作:

  1. 用root登录MySQL

  2. 然后修改root的密码,最好是数字,大小写

  3. 创建wordpress用户

     CREATE USER wordpress@localhost;
     create user 'test'@'localhost' identified by '1234';
    

    设置密码

    ALTER USER 'wordpress'@'localhost' ;
    

    设置权限:

    grant all privileges on *.* to wordpress@'localhost' ;
    
    

    刷新权限:

     FLUSH PRIVILEGES;
    
    

    修改密码:

    mysqladmin -u 用户名 -p 旧密码 password 新密码
    
    
  4. 然后用相同的方法创建一个自己数据库管理账号,名字可以自己起,注意需要将上面的loalhost换成% 以便于适用于远程登录

配置docker

docker在centso8中以及被替换为podman了,但是你倒是给的新一点的版本啊,旧的版本都是bug,新的编译又通不过,只能选择docker了。

podman也可以配置,指令一样,不过也需要root权限,因为80,443端口只有root可以调用

针对centos8的docker安装:

卸载旧版本docker组件和podman

sudo yum remove podman
sudo yum erase podman buildah
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装yum-utils软件包,并设置yum仓库

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker

yum install docker-ce docker-ce-cli containerd.io

启动docker守护程序

sudo systemctl start docker

容器目录配置:

我们需要三个文件夹完成宿主机和容器的文件交流,分别是nginx, wordpress, php, mysql

~/nginx

~/php

— config

php-fpm.conf php.ini

— log

php-fpm.log www.log.slow

网络配置

我们需要给我们的docker建立一个网络,以便以后拓展

 sudo docker network create -d bridge webnet 
 # -d 表示设置网络类型 # -d 表示设置网络类型

在生成容器时,使用参数—network my-net实现连接网络

启动docker

我们选用ubuntu镜像来制作web服务器,其他的同理

我们需要设置三个挂载文件夹和两个端口:

宿主机 容器
~/nginx /root/nginx
~/php /root/php
~/wordpress /var/www/local/wordpress
80端口 80端口
443端口 443端口
--cap-add=SYS_PTRACE 为了php慢日志

~~启动前请先创建好对应的文件夹~~

sudo docker run -itd --cap-add=SYS_PTRACE --name web -v /home/lihao/nginx:/root/nginx -v /home/lihao/php:/root/php -v ~/wordpress:/var/www/html/wordpress -p 80:80 -p 443:443 --network webnet --network-alias web  ubuntu

复制文件到docker中

sudo docker cp php web:/var/local/
sudo docker cp nginx web:/var/local/
sudo docker cp openssl web:/var/local/
sudo docker cp pcre web:/var/local/
sudo docker cp zlib web:/var/local/
sudo docker cp sqlite3 web:/var/local/
sudo docker cp wordpress web:/var/local/

配置容器

进入容器

sudo docker exec -it web /bin/bash

换源并且安装必要文件

sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list  && apt update && apt install -y make && apt install -y g++ && apt install -y vim && apt install gcc && apt install pkg-config && apt install libxml2-dev && apt install -y libssl-dev

编译nginx

  • 我们需要设置openssl位置

  • 然后设置好错误日志到我们留出来的位置中

  • 设置用户和组

  • 启动ssl模块

./configure --with-openssl=/var/local/openssl --conf-path=/root/nginx/nginx.conf --error-log-path=/root/nginx/logs/error.log  --with-http_ssl_module --user=www-data --group=www-data
make && make install
# 软链接nginx
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

编译sqlite3

./configure && make && make install 

编译zlib

./configure && make && make install

编译php

编译php需要前面的库,最好按照顺序来

我们需要告诉php我们要的模块,以及各个库的位置(后期可补)

需要的有mysqli和fpm这两个

还需要设置日志文件

./configure --enable-fpm  --with-mysqli --with-zlib --prefix=/usr/local/php --with-config-file-path=/root/php/config/ --with-openssl

 make && make install

 ln -s /usr/local/php/bin/pipize /usr/bin/phpize

 ln -s /usr/local/php/bin/pip /usr/bin/php

 ln -s /usr/local/php/sbin/php-fpm /usr/bin/php-fpm

亿会会就好

配置php

开启配置文件

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

编辑/usr/local/php/etc/php-fpm

取消注释然后设置路径即可

pid = run/php-fpm.pid
error_log = /root/php/log/php-fpm.log

编辑/usr/local/php/etc/php-fpm.d/www.conf

user = www-data
group = www-data
# 开启慢日志
slowlog = /root/php/log/$pool.log.slow
request_slowlog_timeout = 5

配置php.ini文件

php.ini-development (开发环境用)

php.ini-production(生产环境用)

# ok
cp /var/local/php/php.ini-production /root/php/config/php.ini
# ok
mkdir /root/php/log

修改php.ini

error_log = /root/php/log/error_log
# 以下默认开启

启动php-fpm

这里之所以要复制一下是为了和外部同步,以便于后期修改和备份。

cp /usr/local/php/etc/php-fpm.conf /root/php/config/php-fpm.conf
#  ok
php-fpm -y /root/php/config/php-fpm.conf

配置nginx

有一点需要注意,就是在nignx配置php-fpm中SCRIPT_FILENAME不要用地址,用$document_root

nginx.conf的用户要和www.conf里的用户一样

将用户设置为www-data 启动gzip,启动php-fpm等等就在不多说,https需要自行配置,部分代码如下,

sed -i "s/#user  nobody;/user  www-data;/g" /root/nginx/nginx.conf

sed -i "65,71s/\#/ /g" /root/nginx/nginx.conf

sed -i "s/SCRIPT_FILENAME  \/scripts/SCRIPT_FILENAME  \$document_root/1" /root/nginx/nginx.conf
sed -i "44s/html/\/var\/www\/html\/wordpress\//1" /root/nginx/nginx.conf
sed -i "66s/html/\/var\/www\/html\/wordpress\//1" /root/nginx/nginx.conf
sed -i "45s/index.html/index.html index.php/1" /root/nginx/nginx.conf

最后测试是否修改成功

nginx -t 

配置wordpress

mkdir /var/www
mkdir /var/www/html
cp -r /var/local/wordpress/ /var/www/html/
# 在复制出wp-config.php,然后输入自己数据库的账号和密码

启动服务

php-fpm -y /root/php/config/php-fpm.conf && nginx

然后就可以从外部访问wordpress了

最后如果有什么不准确或是不对的,欢迎评论区指出😘

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本站及文章作者不为此承担任何责任。

本站拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经本站允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇