找到10219个回复
@上善若水,这样可以,出的两个错误无关紧要:
cp -rL hu60wap6/src /sdcard
@上善若水,哦对了,不打包,用
cp -r
直接复制到存储卡可能可以,因为cp
在目标目录不支持符号连接的时候会复制整个文件。呃,并不行
@上善若水,这部分需要修改:
location ~* \.php$ { …… }
改成(路径自己替换。如果想让别人帮忙替换,应该发文字而不是截图):
location ~ [^/]\.php(/|$) { root /data/data/com.termux/files/usr/share/nginx/html; fastcgi_pass unix:/data/data/com.termux/files/usr/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; # parse and set $_SERVER['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; }
@老虎会游泳,我执行到步骤13然后把hu60wap/src这个目录打包放在ksweb上运行。出现下面这个错误是不是nginx配置也要更改一下。
Linux命令行小知识
cd
是什么?change directory(改变目录)
你可以
cd
到其他目录看看:
..
表示上级目录,可以级联,比如../..
上两级目录。
为什么不能用
start.sh
执行脚本,必须用~/start.sh
?这是一个安全措施。假设你解压了一个压缩包,想执行
ls
看看里面有什么,结果别有用心的人往里面放了一个可执行文件ls
,一执行是一个勒索病毒,那不就糟了。所以当你不指定路径时,只会执行在
PATH
环境变量中列出的那些文件夹里面的可执行文件和脚本。主目录不在PATH
环境变量中,所以必须指定路径才能执行。指定路径有两种方法,一种是绝对路径,无论你cd到了哪里都能执行成功:
~/start.sh
还有一种是相对路径:
./start.sh
你必须先cd到主目录才能执行成功,否则就找不到文件,因为它表示当前目录内的
start.sh
PATH环境变量?这是什么?
echo $PATH
默认就一个文件夹,但是也可以设置为冒号分隔的多个文件夹。具体就不讲了,你可以自己搜索资料。
Linux命令行小知识
~
是什么?
~
是主目录的简写。在Termux中,主目录是/data/data/com.termux/files/home
,太长了。还好我们可以用~
代替。你每写一个~
,就相当于写下了/data/data/com.termux/files/home
。注意,
~
不能用在引号中,否则会失去代表主目录的效果,就变成了~
字符本身。单引号双引号都不可以。那在引号里面怎么表示主目录?
用
$HOME
代替。注意只能用在双引号里。单引号里不支持任何代替方式,只能写完整路径。
为什么你知道主目录是
/data/data/com.termux/files/home
?图中的三种方法可以确定:
如何停止网站?
创建一个停止脚本:
cat > ~/stop.sh <<EOF # 结束网站进程 killall php-fpm nginx mariadbd # 等待进程结束 sleep 1 # 检查 pstree EOF
给执行权限:
chmod +x ~/stop.sh
停止网站:
~/stop.sh
以后每次要停止网站,运行
~/stop.sh
即可。
问题:为什么是mariadbd?
回答1:这是我们从pstree里面看到的进程名称。
回答2:结尾的d表示这是一个守护进程(daemon),很多服务进程都会这么命名,比如httpd、crond。
问题:为什么不用
~/../usr/etc/init.d/mysql stop
?回答:亲测无效,报错说找不到pid。所以还是用killall吧。
问题:killall会不会导致数据损坏?
不会,因为它并不是强行停止进程,而是给进程发信号要它主动停止运行。所以进程是有机会正常退出的。如果进程真的卡住了,那就算执行了killall也不会退出,你就会知道它卡住了。
如果进程真的卡住了,可以用
killall -9 进程名
来结束进程,注意这可以导致数据损坏,因为进程没有任何机会正常退出,就算进程没有卡住也没机会。
步骤1,需要由 @老虎会游泳 进行:
修复虎绿林程序和PHP8.1的兼容性问题,并且放弃对PHP5.4的支持(因为修复PHP8.1兼容性问题必然导致和PHP5.4不兼容)。正在进行中。
打开Termux自动启动网站
创建好
~/run.sh
之后,再执行以下命令即可加入自启动:echo ~/run.sh > ~/.profile
如何测试?
- 在通知栏退出Termux会话。
- 重新打开Termux。
成功自启。
取消自启:
rm ~/.profile
在个人中心可以看到管理后台
创建版块
发帖
“你充满警告的样子很美”
呃,默认待审核了,这不对,我搞错了建表语句里的权限。
新注册的第一个用户会成为管理员。
由于报错影响cookie发送,需要使用防掉线链接登录。
步骤16执行完成之后,以下页面就已经能打开了:
虽然有很多很多报错,但是已经能看到首页内容了。
明天再修复报错,顺便再介绍一下怎么用git更新代码。
设置好后台运行之后,把nginx、mysql和php-fpm都启动一下,就可以执行后续步骤了。命令:
# 启动mysql ~/../usr/etc/init.d/mysql start # 启动nginx nginx # 启动php-fpm php-fpm
请忽略所有报错,报错肯定是因为程序已经在运行。
执行完成后,用
pstree
检查是否所有组件都在运行。pstree
这是正确的结果。请忽略上面显示的数字,数字可能是任何值。只要
mysql
、nginx
和php-fpm
都出现就可以:
如何保持Termux后台运行
@希望自己长胖胖 说,他在进行一系列步骤之后无法访问到8080端口,并且
pstree
显示nginx退出了。为什么会发生这种情况?因为安卓会杀后台。
对于华为,需要进行如下设置:
- 设置里搜索“自启动”,然后对Termux选“手动管理”,勾选“允许后台活动”。
- 设置里搜索“电池优化”,下拉“不允许”,选择“所有应用”,找到“Termux”,然后选成“不允许”。
步骤14:确认装好了PHP。
为什么有一堆报错?还记得我说的步骤1吗?虎绿林程序目前用PHP8.1打开就是会有这么多报错。
为了确认你确实装好了PHP,你可以执行以下命令:
echo '<?php phpinfo();' > ~/hu60wap6/src/phpinfo.php
然后访问这个地址:
http://localhost:8080/phpinfo.php/path-info/test
嗯,确实装好了。
但是要想打开虎绿林程序,就只能等我的步骤1完成了。
附件内容,不是步骤
为了防止附件过期,现贴出步骤12中
nginx.conf
文件的全部内容:#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 8080; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /data/data/com.termux/files/usr/share/nginx/html; index index.html index.htm index.php; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /data/data/com.termux/files/usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ [^/]\.php(/|$) { root /data/data/com.termux/files/usr/share/nginx/html; fastcgi_pass unix:/data/data/com.termux/files/usr/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; # parse and set $_SERVER['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; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
步骤12:让nginx支持PHP:
下载 nginx.conf(3.20 KB) 替换原始配置文件,方法如下
# 保留原始配置文件备查 cp ~/../usr/etc/nginx/nginx.conf ~/../usr/etc/nginx/nginx.conf.default # 替换配置文件 curl https://vkceyugu.cdn.bspapp.com/VKCEYUGU-cc8cf08f-49f5-4fc5-83c3-ed2a683704d4/d1a6a650-c38b-4d66-823b-626655cd068b.conf > ~/../usr/etc/nginx/nginx.conf # 让nginx重载配置文件 nginx -s reload
步骤11:启动PHP
执行以下命令:
php-fpm
查看php是否启动:
pstree