ubuntu更新
ssh ubuntu@124.220.81.137
sudo apt update
sudo apt upgrade
sudo reboot
安装nginx
ssh ubuntu@124.220.81.137
sudo apt install nginx
检查安装是否成功
sudo nginx -t
网站输入:http://124.220.81.137,提示nginx安装成功
sudo apt install tree # tree命令方便以树形查看文件结构
安装php8.1
sudo apt install php8.1 php8.1-fpm # 安装php主包
居然同步安装了apache2和很多包
ubuntu@VM-12-2-ubuntu:~$ sudo apt list --installed | grep php
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libapache2-mod-php8.1/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.19 amd64 [installed,automatic]
php-common/jammy,now 2:92ubuntu1 all [installed,automatic]
php8.1-cli/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.19 amd64 [installed,automatic]
php8.1-common/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.19 amd64 [installed,automatic]
php8.1-opcache/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.19 amd64 [installed,automatic]
php8.1-readline/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.19 amd64 [installed,automatic]
php8.1/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.19 all [installed,automatic]
php/jammy,now 2:8.1+92ubuntu1 all [installed]
ubuntu@VM-12-2-ubuntu:~$ sudo apt list --installed | grep apache
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
apache2-bin/jammy-updates,jammy-security,now 2.4.52-1ubuntu4.12 amd64 [installed,automatic]
apache2-data/jammy-updates,jammy-security,now 2.4.52-1ubuntu4.12 all [installed,automatic]
apache2-utils/jammy-updates,jammy-security,now 2.4.52-1ubuntu4.12 amd64 [installed,automatic]
apache2/jammy-updates,jammy-security,now 2.4.52-1ubuntu4.12 amd64 [installed,automatic]
libapache2-mod-php8.1/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.19 amd64 [installed,automatic]
ubuntu@VM-12-2-ubuntu:~$
检查php安装情况sudo php -v
发现已经安装php8.1,测试是否可用。
sudo nano /var/www/html/index.php
填入
<?php
phpinfo();
?>
打开链接测试是否运行
http://124.220.81.137/index.php
输入后直接下载,没有打开网页,说明忘记给nginx设置以支持解析php了,调整nginx设置。
首先看nginx配置文件夹结构。
sudo tree /etc/nginx
/etc/nginx
├── conf.d
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules-available
├── modules-enabled
│ ├── 50-mod-http-geoip2.conf -> /usr/share/nginx/modules-available/mod-http-geoip2.conf
│ ├── 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf
│ ├── 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
│ ├── 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf
│ ├── 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf
│ └── 70-mod-stream-geoip2.conf -> /usr/share/nginx/modules-available/mod-stream-geoip2.conf
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│ └── default
├── sites-enabled
│ └── default -> /etc/nginx/sites-available/default
├── snippets
│ ├── fastcgi-php.conf
│ └── snakeoil.conf
├── uwsgi_params
└── win-utf
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.default # 先做个备份
sudo nano /etc/nginx/sites-available/default
修改前
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
# fastcgi_pass unix:/run/php/php7.4-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
#}
修改后
location ~ \.php$ {
include snippets/fastcgi-php.conf; # 取消注释
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php.8.1-fpm.sock; # 修改为php.8.1-fpm
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
重启nginx
sudo systemctl restart nginx
再次测试网址
http://124.220.81.137/index.php
发现出现502 bad gateway
错误
检查cat /var/log/nginx/error.log
发现如下错误提示,显示无法与php-fpm通讯,原来是设置的时候错将 fastcgi_pass unix:/run/php/php8.1-fpm.sock
多加了一个英文点,写成了fastcgi_pass unix:/run/php/php.8.1-fpm.sock
。
2024/10/21 20:15:45 [crit] 996#996: *1 connect() to unix:/run/php/php.8.1-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 101.82.186.225, server: _, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php.8.1-fpm.sock:", host: "124.220.81.137"
php8.1和php8.1-fpm安装成功。
PHP Version 8.1.2-1ubuntu2.19 | |
---|
System | Linux VM-12-2-ubuntu 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 |
Build Date | Sep 30 2024 16:25:25 |
Build System | Linux |
Server API | FPM/FastCGI |
Virtual Directory Support | disabled |
Configuration File (php.ini) Path | /etc/php/8.1/fpm |
Loaded Configuration File | /etc/php/8.1/fpm/php.ini |
Scan this dir for additional .ini files | /etc/php/8.1/fpm/conf.d |
Additional .ini files parsed | /etc/php/8.1/fpm/conf.d/10-opcache.ini, /etc/php/8.1/fpm/conf.d/10-pdo.ini, /etc/php/8.1/fpm/conf.d/20-calendar.ini, /etc/php/8.1/fpm/conf.d/20-ctype.ini, /etc/php/8.1/fpm/conf.d/20-exif.ini, /etc/php/8.1/fpm/conf.d/20-ffi.ini, /etc/php/8.1/fpm/conf.d/20-fileinfo.ini, /etc/php/8.1/fpm/conf.d/20-ftp.ini, /etc/php/8.1/fpm/conf.d/20-gettext.ini, /etc/php/8.1/fpm/conf.d/20-iconv.ini, /etc/php/8.1/fpm/conf.d/20-phar.ini, /etc/php/8.1/fpm/conf.d/20-posix.ini, /etc/php/8.1/fpm/conf.d/20-readline.ini, /etc/php/8.1/fpm/conf.d/20-shmop.ini, /etc/php/8.1/fpm/conf.d/20-sockets.ini, /etc/php/8.1/fpm/conf.d/20-sysvmsg.ini, /etc/php/8.1/fpm/conf.d/20-sysvsem.ini, /etc/php/8.1/fpm/conf.d/20-sysvshm.ini, /etc/php/8.1/fpm/conf.d/20-tokenizer.ini |
PHP API | 20210902 |
PHP Extension | 20210902 |
Zend Extension | 420210902 |
Zend Extension Build | API420210902,NTS |
PHP Extension Build | API20210902,NTS |
Debug Build | no |
Thread Safety | disabled |
Zend Signal Handling | enabled |
Zend Memory Manager | enabled |
Zend Multibyte Support | disabled |
IPv6 Support | enabled |
DTrace Support | available, disabled |
Registered PHP Streams | https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar |
Registered Stream Socket Transports | tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3 |
Registered Stream Filters | zlib., string.rot13, string.toupper, string.tolower, convert., consumed, dechunk, convert.iconv.* |
安装sqlite3和php-sqlite3
sudo apt install sqlite3
sudo apt install php8.1-sqlite3
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
将typcho传到服务器
开放服务器文件夹写入权限
sudo chmod 777 /var/www/html #开放html文件夹写入权限,测试755无法上传。
单开一个ssh界面,需要从本地打开ssh,不要在服务器界面。然后命令格式如下:
scp C:/Users/28358/Downloads/typecho.zip ubuntu@124.220.81.137:/var/www/html/
这会将本地的 typecho.zip
文件复制到远程主机 124.220.81.137
的 /var/www/html/
目录下。
从远程主机复制到本地
(1)命令解释
命令格式如下:
scp user@remote_host:/path/on/remote/file.txt /path/to/local/
这会将远程主机 `remote_host` 的 `/path/on/remote/file.txt` 文件复制到本地的 `/path/to/local/` 目录下。
查找www文件夹位置
find -name www
find -name typecho确认typecho文件夹是否存在
解压缩文件
unzip typecho.zip
初始化typecho
浏览器输入http://124.220.81.137/install.php
提示:缺少PHP扩展: mbstring
上传目录无法写入, 请手动将安装目录下的 /usr/uploads 目录的权限设置为可写然后继续升级
安装该扩展
sudo apt install php8.1-mbstring
继续安装,提示:上传目录无法写入, 请手动将安装目录下的 /usr/uploads 目录的权限设置为可写然后继续升级
sudo chmod 777 /var/www/html/usr/uploads
初始化配置
数据库适配器:Pdo 驱动 SQLite 适配器
数据库前缀:typecho_
数据库文件路径:/var/www/html/usr/typecho.db
继续安装,提示:对不起, 无法连接数据库, 请先检查数据库配置再继续进行安装: "SQLSTATE[HY000] [14] unable to open database file"
原因应该是次文件夹无写入权限
sudo chmod 777 /var/www/html/usr
继续安装
创建您的管理员帐号
网站地址
http://124.220.81.137
这是程序自动匹配的网站路径, 如果不正确请修改它
用户名:***
登录密码:***
邮件地址:**@**.com
进入主页http://124.220.81.137
可以正常访问
首次登陆后管理界面,输入账号密码后提示404错误
进入登录页面,提示404 Not Found
错误,经查询主要是因为typecho需要path_info,而nginx服务器默认并未开启支持path_info。解决办法为修改nginx默认配置,具体代码如下:
sudo nano /etc/nginx/sites-enabled/default
调整如下
原代码
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
location ~ \.php(.*)$ {
# 正则匹配.php后的pathinfo部分
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
fastcgi_param PATH_INFO $1;
# 把pathinfo部分赋给PATH_INFO变量
}
重启nginx服务器生效。
sudo systemctl restart nginx
将dokuwiki传到服务器
从本地复制到远程主机
单开一个ssh界面,需要从本地打开ssh,不要在服务器界面。然后命令格式如下:
scp C:/Users/28358/Downloads/dokuwiki.zip ubuntu@124.220.81.137:/var/www/html/
这会将本地的 `dokuwiki.zip` 文件复制到远程主机 `124.220.81.137` 的 `/var/www/html/` 目录下。
解压缩文件夹并开发写入权限
unzip dokuwiki.zip
sudo chmod -R 777 dokuwiki
安装php8.1的xml扩展
sudo apt install php8.1-xml
sudo systemctl restart nginx
- 初始化安装dokuwiki
浏览器输入http://124.220.81.137/dokuwiki/install.php
一步步安装。