注意:请先执行步骤13。如果你没有执行过
php ~/hu60wap6/src/script/init.php,说明你错过了步骤13。如果你先执行了步骤16,请在执行步骤13后再次执行步骤16。
步骤16:修复数据库打不开问题
打不开数据库的原因是
No such file or directory,为什么PHP连接数据库,不说端口无法访问,却报错说文件不存在?原来连接本地数据库(
localhost)并不会走网络,走的是文件(本地unix套接字),文件在这里:
ls一下就会发现文件真的不存在:
ls /data/data/com.termux/files/usr/tmp/mysqld.sock
而且就算修改配置让mysql把这个文件创建出来,最后也不能正常使用。看起来是mysql的unix套接字和安卓有兼容性问题(php-fpm却没有,奇怪)。
所以只能退而求其次,让PHP去连接3306端口。执行以下命令:
sed -i "s/'localhost'/'127.0.0.1'/g" ~/hu60wap6/src/config/db.php此外我们还需要修改连接数据库的用户名和密码,默认是
root和root,但我们创建的是hu60和hu60。执行以下命令:sed -i "s/'root'/'hu60'/g" ~/hu60wap6/src/config/db.php
@上善若水,登录后别选数据库,切换到“账户”选项卡,新建一个用户,勾选“创建同名数据库”。
@老虎会游泳,30楼的步骤如何通过phpmyadmin操作。
@老虎会游泳,OK了我把数据库迁移到本地,之前是连接阿里云的rds估计使用因为白名单连不上数据库导致的。![]()
@上善若水,好吧
@上善若水,你发给我的文件本身就不完整,修改之前也打不开。
@老虎会游泳,修改nginx后打不开了![]()
经过测试,使用 MariaDB Server 和 ksweb 可以正常运行 hu60wap6:来自8848钛金手机
@老虎会游泳,使用43楼的方法发现复制到文件更多了。
但是访问还是回出现这个错误。
@上善若水,tar会保留符号连接,解压时如果解压软件不支持符号连接跟随,符号连接就会丢失,或者只解压出一个内容是路径的错误文件。
@老虎会游泳,nginx.conf(1.13 KB)
你来修改吧
@老虎会游泳,我是使用tar压缩的然后把压缩包复制到sdcard目录。
@上善若水,但是,虎绿林程序与ksweb不兼容:
@上善若水,这部分需要修改:
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
默认就一个文件夹,但是也可以设置为冒号分隔的多个文件夹。具体就不讲了,你可以自己搜索资料。
