将 Windows 的 thinkPHP 项目上传至 Linux 服务器遇到的问题及解决方法

原文:

https://blog.csdn.net/Inite/article/details/73289444

参考:

https://blog.csdn.net/sinat_31801607/article/details/77555774

更正:本文里提到的服务器使用的是国外的,所以配置 'DB_HOST' 时得使用自己服务器的 server_ip,若是阿里云服务器则配置成 '127.0.0.1'。

主要遇到了以下几个问题:

1、报错:”1045 access denied for user 'root'@'localhost' using password yes”,百度之后发现是数据库用户权限问题还有

数据库密码设置问题,一一尝试过后依旧没能解决,最后突然发现我在 windows 本地使用的是 localhost 即 127.0.0.1访问

的, thinkPHP 项目配置文件关于配置项 'DB_HOST' => '127.0.0.1' 在本地服务器运行当然是正确的,但是现在已经上传至

Linux 服务器了,'DB_HOST' 应该配置成你的 Linux 服务器的访问域名或 ip。然后问题成功解决!

    另外注意两个配置项要根据数据库用户名和密码而相应的设置:

[plain]  view plain  copy
  1. 'DB_USER' => 'root',  
  2. 'DB_PWD' => '',//我之前把数据库设成了密码为空  

2、接下来将本地数据库表导出数据库文件 file.sql ,然后通过命令上传至 Linux 服务器,可以使用如下命令:

[plain]  view plain  copy
  1. (1)选择数据库  
  2. mysql>use dbName;  
  3. (2)设置数据库编码  
  4. mysql>set names utf8;  
  5. (3)导入数据(注意sql文件的路径)  
  6. mysql>source /filePath/file.sql;  
3、接下来报错:“...Unknown database 'databaseName'”,即未定义的数据库 ' databaseName',但是我在上面第2步确实定

义了此数据库,后来发现还是 thinkPHP 配置文件 APP/Common/Conf/config.php 里面的一个配置项:'DB_NAME' => 'name',

你要将 name 替换成你上面定义的数据库名,而且是区分大小写的(Linux 平台)。

4、接下来报错:“_STORAGE_WRITE_ERROR_:./APP/Runtime/Cache/Home/ca45bc9edb36ddb9191636ccff1c0883.php”,

字面意思是“存储写入错误即无权限”,百度后的解决方法很简单,直接一句话设置该文件目录的权限为 “777” 即可成功解决!

如你的项目文件都放在文件夹目录名为 “APP” 的文件夹里面,而且是在 /var/www 目录下,既可以通过以下命令设置:

[plain]  view plain  copy
  1. chmod -R 777 /var/www/APP  
完成上面这一步后才成功运行了 thinkPHP 项目,真是一波三折啊!

猜你喜欢

转载自blog.csdn.net/qq_25987491/article/details/80398104