Noonisy
Typecho 搭建
2022-08-10
阅读:432

建站


今天终于把网站搭好了,由于我的强迫症,回滚了好几次,哈哈 ( ╯□╰ )

安装

服务器用的 $ubuntu$ $20.04$,先更新下软件列表
sudo apt-get update
sudo apt-get upgrade
然后安装软件,我用的是 $LNMP$,包含 $linux+nginx+mysql+php$,算是比较流行的网站服务器架构,对应的还有一种 $LAMP$
sudo apt-get install nginx
sudo apt-get install php7.4-fpm
sudo apt-get install mysql-server php7.4-mysql
注意:$php$ 和 $mysql$ 的版本对应

配置

首先配置 $php$,切换到 $php$ 安装目录,一般在 /etc 下,修改 $php.ini$ 文件,将其中某行的 ;cgi.fix_pathinfo=1 修改为 cgi.fix_pathinfo=0 ,据说是有安全隐患(可以不改?),之后重启 $php$
cd /etc/php/7.4/fpm/
ls # 显示四个文件conf.d  php-fpm.conf  php.ini  pool.d
sudo vim php.ini
:set number # 显示行号
/;cgi.fix_pathinfo=1 # 搜索
798gg # 跳转到798行
cgi.fix_pathinfo=0 # 设置为0
:wq! # 保存退出
sudo service php7.4-fpm restart # 重启php
接下来配置 $nginx$,切换到 $nginx$ 安装目录,我的在 /etc/nginx,选择 $sites-available/default$ 目录

设置路由,修改监听端口号(默认80端口,如果要改,记得在服务商防火墙那儿开启端口号);

修改域名(如果有的话);

设置 $root$ 资源目录,这个是之后 $typecho$ 的资源目录,$url$ 会默认到这个路径下寻找资源,其中的$index$ 是默认的 $index.php$,也可以再加上 $index.php$
cd /etc/nginx/
sudo vim /etc/nginx/sites-available/default
# 修改如下
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # 准备存放 typecho 的 root 目录
        root /usr/share/nginx/html;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;
        
        # 自己的域名
        server_name xxx.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
   
       location ~ .*\.php(\/.*)*$ {
       #       include snippets/fastcgi-php.conf;
       #
       #       # With php-fpm (or other unix sockets):
       fastcgi_split_path_info ^(.+\.php)(/.+)$;
       fastcgi_pass unix:/run/php/php7.4-fpm.sock;
       include fastcgi_params;
       fastcgi_index index.php;
       #       # With php-cgi (or other tcp sockets):
       #       fastcgi_pass 127.0.0.1:9000;
       #}
       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;
       fastcgi_param PATH_INFO $path_info;
       # deny access to .htaccess files, if Apache's document root
       # concurs with nginx's one
       #
       #location ~ /\.ht {
       #       deny all;
       #}
       }
}
注意:上面代码的 $32$ 行,unix:/run/php/php7.4-fpm.sock 是 $unix$ 的域套接字,要和 $php$ 的配置一样,否则报 $502$ 错误。检查 $php$ 配置如下
# 切换php中的pool目录
cd /etc/php/7.4/fpm/pool.d/ 
ls # 显示一个文件夹 www.conf
vim www.conf # 查看
# 大约36行显示
listen = /run/php/php7.4-fpm.sock # 与 nginx 保持一致
重启 $nginx$,如果你修改了 $unix$ 套接字监听内容则要连同 $php$ 一起重启
sudo service nginx restart
安装 $phpmyadmin$,并链接到准备存放 $typecho$ 的准备存放 $typecho$ 的 $root$ 目录
sudo apt-get install phpmyadmin
# 我的路径是 /usr/share/phpmyadmin/
sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html/phpmyadmin

下载 Typecho

下载 $typecho$ 安装包并解压到 $nginx$ 配置的 $root$ 对应目录下
# 老版本
sudo wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
# 新版本
# sudo wget https://github.com/typecho/typecho/releases/download/v1.2.0/typecho.zip
# 解压到对应目录, 老版本是一个 build 文件夹
sudo tar -zxvf 1.1-17.10.30-release.tar.gz -C /usr/share/nginx/html/
# 如果 nginx 目录下的 html 目录中有 index.php, 还要先删除 index.php, 避免同名冲突
# sudo rm /usr/share/nginx/html/index.php
# 把 build 文件夹下所有文件移动到当前的 html 目录里
sudo mv /usr/share/nginx/html/build/* /usr/share/nginx/html/
# 最后删除 build
sudo rm -rf /usr/share/nginx/html/build
ls # 此时有如下文件/文件夹
# admin index.php  install  install.php  LICENSE.txt phpmyadmin  usr  var

创建数据库

借助了 $phpmyadmin$,可以可视化的建库

浏览器 $url$ 输入 xxx.com/phpmyadminip/phpmyadmin,同样的,$mysql$ 数据库 $3306$ 端口要开启

这个时候要登录 $mysql$ 数据库
# 查看在 mysql 下的默认账号和随机密码
sudo vim /etc/mysql/debian.cnf
# 进入 mysql, 注意:以下 xxx 代表自定义
mysql -u xxx -p xxx
# 进去后创建用户
create user 'xxx'@'%' identified by 'xxx';
# 授权
grant all privileges on *.* to 'xxx'@'%' with grant option;
# 刷新, 重建内存数据
flush privileges;
# 然后用上面自定义的账号密码登录 phpmyadmin
进入 $phpmyadmin$,点击左侧的新建,数据库取名 xxx_xxx,其他的默认就行

配置 Typecho

浏览器输入自己要配置的域名或上面填写过的 $ip$,进入欢迎页面

此时填写数据库用户名、密码、数据库名、数据库前缀名,可能创建 $config.inc.php$ 会报错,需要复制代码
# 手动配置 config.inc.php
sudo vim /usr/share/nginx/html/config.inc.php
点击创建完毕,继续安装

大功告成

补充

开启地址重写
# 在 $nginx$ 的 $service$ 设置中,加入以下代码,并在 typecho 后台设置 > 永久链接设置 > 启用地址重写功能
if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php$1 last;
}
# 重启 $nginx$
设置 $php$ 的 error_reporting,$php$ 的日志文件存在/var/log/nginx
cd /etc/php/7.4/fpm/
sudo vim php.ini
# 找到 error_reporting, 大约在465行, 修改为
error_reporting = E_ALL & ~E_NOTICE
# 重启php服务
sudo service php7.4-fpm restart
nginx 素质三连
sudo vim /etc/nginx/sites-available/default
sudo nginx -t
sudo systemctl reload nginx

参考

最后编辑于:2024 年 01 月 09 日 09:27
邮箱格式错误
网址请用http://或https://开头