上线商城项目:
1)上传项目文件到数据库:
入口文件位置的设计是为了让应用部署更安全,public目录为web可访问目录,其他的文件都可以放到非web访问目录下面。
nginx 默认访问index.html。没有index.html,就会列出目录结构,没有权限列出,所以就显示403。
需要配置数据库。
#创建数据库
mysql > create database tp5shop;
#使用数据库
mysql > use tp5shop;
#通过sql文件导入恢复数据
mysql > source /usr/local/nginx/html/tpshop.sql
vim /usr/local/nginx/html/tp5shop/application/database.php
return [// 数据库类型'type' => 'mysql',// 服务器地址'hostname' => '127.0.0.1',// 数据库名'database' => 'tp5shop',// 用户名'username' => 'root',// 密码'password' => '123456',// 端口'hostport' => '3306',
遇到一个权限问题。看是项目需要在runtime文件夹中写入缓存信息。(需要写权限。)
shell > cd /usr/local/nginx/html/tp5shop
shell > chown -R www:www ./runtime
chown -R www.www runtime
分析:
当前不管是nginx还是php,都是子进程来请求这个文件夹。针对runtime,是others。other是有读权限,没有写权限。所以需要写权限。
如果我们使用chmod +w -R runtime,会导致权限给的过大。不符合最小化原则。
更改所属组的关系。
我们进行nginx操作还是php操作都是www。 这个runtime文件夹就是网站所操作的。
root用户没有任何权限设置,但是对于nginx和php是需要进行设置的。
如果不修改,任何进程服务都可以修改runtime文件夹。权限就有点混乱了。
我们是管理权限的。如果给777。这 是不正确的,也是不专业的体现。
最后,这个小的项目就上线完成。
为什么不用重启?php写的文件,属于动态脚本文件,每次执行都是动态加载的。