nginx+php+mysql保姆级typecho博客搭建教程
一、先免费获取一个VPS,并且SSH登录进去。
二、更新系统(可选)
apt update -y && apt-get update -y
#可选
apt-get upgrade -y
安装warp(可选)(对于没有IPV4的网站增加IPV4访问)
wget -N --no-check-certificate https://gitlab.com/rwkgyg/CFwarp/raw/main/CFwarp.sh && bash CFwarp.sh
三、卸载 apache2(由于我的系统自带了,没有的可以忽略这一步)
查看是否内置apache2:
sudo systemctl status apache2
卸载apache2:
apt remove --purge apache2 apache2-doc -y
四、安装nginx
sudo apt install nginx -y
在浏览器http://IP 可以出现Welcome to nginx,至此nginx安装完毕,是不是很简单?!
附常用命令:
#运行状态
sudo systemctl status nginx
#开机自启
sudo systemctl enable nginx
#重启
sudo systemctl restart nginx
#重新加载配置文件
nginx -s reload
#nginx配置检测
nginx -t
五、在cloudflare设置子域名:如 blog.example.com ,使得子域名解析到对应的VPS的IP地址 :
六、申请域名证书,并安装到某个文夹中
安装curl(已经有的可以忽略这一步)
apt install curl -y
安装ACME
#安装acme
curl https://get.acme.sh | sh
#国内服务器
wget -O - https://get.acme.sh | sh
#设置软链接
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh
#切换证书机构为letsencrypt
acme.sh --set-default-ca --server letsencrypt
申请证书
acme.sh --issue -d lovesmile.eu.org -k ec-256 --webroot /var/www/html
安装证书到/etc/cer 目录
mkdir /etc/cer
acme.sh --install-cert -d lovesmile.eu.org --ecc \
--key-file /etc/cer/server.key \
--fullchain-file /etc/cer/server.crt \
--reloadcmd "systemctl force-reload nginx"
此时证书路径:
证书crt
/etc/cer/server.crt
私钥
/etc/cer/server.key
七、安装php 7.4
sudo apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring
安装常用插件(可选)
sudo apt install libapache2-mod-php
sudo apt install php-curl
sudo apt install php-xml
sudo apt install php-xmlrpc
sudo apt install php-zip
sudo apt install php-soap
sudo apt install php-intl
输入以下命令,即可查看安装信息:
php -v
启动php7.4
sudo service php7.4-fpm start
查看运行状态
systemctl status php7.4-fpm
打开目录为:/etc/php/7.4/fpm/pool.d
,找到 listen 项记录下来:
listen = /var/run/php/php7.4-fpm.sock
#备注:也可以直接用vim查看:
sudo vim /etc/php/7.4/fpm/pool.d/www.conf
进行重启服务
service php7.4-fpm restart
进入网站的默认路径添加测试文件
cd /var/www/html/
sudo vi info.php
内容是
<?php
phpinfo();
?>
八、安装mysql
安装mysql
sudo apt-get install mysql-server -y
设置mysql
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc123456';
exit
建立网站数据库:
sudo mysql -u root -p # 以root进入数据库
CREATE DATABASE typecho; # 创建数据库blog
SHOW DATABASES; # 查看创建的数据库
CREATE USER 'typecho'@'%' IDENTIFIED BY 'password'; # 创建新用户,%代表所有IP均可登录
SELECT user, host from mysql.user; # 查看用户
GRANT ALL PRIVILEGES ON typecho.* TO 'typecho'@'%'; # 将typecho数据库的所有权限授予用户typecho
exit
附:完全卸载mysql
sudo apt-get autoremove --purge mysql-server -y
sudo apt-get remove mysql-common
sudo rm -rf /etc/mysql/ /var/lib/mysql
清理残留数据
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
sudo apt autoremove
sudo apt autoclean
九、安装typecho
利用ftp上传typecho压缩包到/var/www/html/
并且运行下面命令解压文件:
如果出现unzip命令不存在,则安装以下即可:
apt install unzip
#创建typecho目录:
mkdir /var/www/html/typecho
进入typecho目录
cd /var/www/html/typecho
#下载安装包
wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip
#解压typecho
unzip typecho.zip
#赋予typecho最高权限
chmod -R 777 /var/www/html/typecho
十、更改nginx配置
命令
vim /etc/nginx/sites-enabled/default
最好直接cd /etc/nginx/sites-enabled/ 进去在文本中修改
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name blog.example.com;
#请填写证书文件的相对路径或绝对路径
ssl_certificate /etc/cer/server.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key /etc/cer/server.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root /var/www/html/typecho;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ = 404;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
}
location ~ .*\.php(\/.*)*$ {
#填写获取的sock路径,默认如下:
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
修改后运行nginx测试:
nginx -t
根据测试情况进行修改
测试通过后,重新加载配置即可
nginx -s reload
最后:打开https://域名/install即可安装typecho;
评论区