EShop网上商城项目(一)
一、项目简介
该项目由Irving提出,有Irving、wang.cheng、laoda、syh0307 四人开发,开发环境:LNMP。
该项目软件为四个程序员的兄弟连二期项目,不做任何商业用途。
码云:https://git.oschina.net/include_yx/lamp.git || git@git.oschina.net:include_yx/lamp.git
二、搭建服务器环境
1. 服务器选择:LNMP(Linux+Nginx+MySQL+PHP)
2.Linux安装:CentOS-6.3-i386-bin-DVD1.iso
3.LNMP集成环境安装
1 [root@iZ287mhoky1Z ~]# wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp 2 --2016-08-11 16:13:45-- http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz 3 Resolving soft.vpser.net... 50.93.201.152, 2600:3c01::f03c:91ff:fe96:d57a 4 Connecting to soft.vpser.net|50.93.201.152|:80... connected. 5 HTTP request sent, awaiting response... 200 OK 6 Length: 326745420 (312M) [application/octet-stream] 7 Saving to: “lnmp1.2-full.tar.gz” 8 9 100%[======================================================================================>] 326,745,420 2.05M/s in 2m 10s 10 11 2016-08-11 16:15:56 (2.39 MB/s) - “lnmp1.2-full.tar.gz” saved [326745420/326745420] 12 +------------------------------------------------------------------------+ 13 | LNMP V1.2 for CentOS Linux Server, Written by Licess | 14 +------------------------------------------------------------------------+ 15 | A tool to auto-compile & install LNMP/LNMPA/LAMP on Linux | 16 +------------------------------------------------------------------------+ 17 | For more information please visit http://www.lnmp.org | 18 +------------------------------------------------------------------------+ 19 Please setup root password of MySQL.(Default password: root) 20 Please enter: ****** 21 MySQL root password:****** 22 =========================== 23 Do you want to enable or disable the InnoDB Storage Engine? 24 Default enable,Enter your choice [Y/n]: y 25 You will enable the InnoDB Storage Engine 26 =========================== 27 You have 5 options for your DataBase install. 28 1: Install MySQL 5.1.73 29 2: Install MySQL 5.5.42 (Default) 30 3: Install MySQL 5.6.23 31 4: Install MariaDB 5.5.42 32 5: Install MariaDB 10.0.17 33 Enter your choice (1, 2, 3, 4 or 5): 3 34 You will Install MySQL 5.6.23 35 =========================== 36 You have 5 options for your PHP install. 37 1: Install PHP 5.2.17 38 2: Install PHP 5.3.29 39 3: Install PHP 5.4.41 (Default) 40 4: Install PHP 5.5.25 41 5: Install PHP 5.6.9 42 Enter your choice (1, 2, 3, 4 or 5): 5 43 You will install PHP 5.6.9 44 =========================== 45 You have 3 options for your Memory Allocator install. 46 1: Don't install Memory Allocator. (Default) 47 2: Install Jemalloc 48 3: Install TCMalloc 49 Enter your choice (1, 2 or 3): 1 50 You will install not install Memory Allocator. 51 . 52 . 53 . 54 ============================== Check install ============================== 55 Checking ... 56 Nginx: OK 57 MySQL: OK 58 PHP: OK 59 PHP-FPM: OK 60 +------------------------------------------------------------------------+ 61 | LNMP V1.2 for CentOS Linux Server, Written by Licess | 62 +------------------------------------------------------------------------+ 63 | For more information please visit http://www.lnmp.org | 64 +------------------------------------------------------------------------+ 65 | lnmp status manage: lnmp {start|stop|reload|restart|kill|status} | 66 +------------------------------------------------------------------------+ 67 | phpMyAdmin: http://IP/phpmyadmin/ | 68 | phpinfo: http://IP/phpinfo.php | 69 | Prober: http://IP/p.php | 70 +------------------------------------------------------------------------+ 71 | Add VirtualHost: lnmp vhost add | 72 +------------------------------------------------------------------------+ 73 | Default directory: /home/wwwroot/default | 74 +------------------------------------------------------------------------+ 75 | MySQL/MariaDB root password: 123456 | 76 +------------------------------------------------------------------------+ 77 +-------------------------------------------+ 78 | Manager for LNMP, Written by Licess | 79 +-------------------------------------------+ 80 | http://lnmp.org | 81 +-------------------------------------------+ 82 nginx (pid 14442 14440) is running... 83 php-fpm is runing! 84 SUCCESS! MySQL running (14859) 85 Active Internet connections (only servers) 86 Proto Recv-Q Send-Q Local Address Foreign Address State 87 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 88 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 89 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 90 Install lnmp V1.2 completed! enjoy it.
View Code
lnmp1.2-full.tar.gz
Linux => CentOS-6.3
Nginx => Nginx1.2
MySQL => MySQL5.6.23
PHP => PHP5.6.8
3.1 相关软件安装目录:
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : /home/wwwroot/default/phpmyadmin/
默认网站目录 : /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
3.2 LNMP相关配置文件位置:
Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
3.3 LNMP状态管理命令:
LNMP 状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
3.4 Nginx配置文件:
#vi /usr/local/nginx/conf/nginx.conf
1 user www www; 2 3 worker_processes auto; 4 #启动进程 5 6 error_log /home/wwwlogs/nginx_error.log crit; 7 #错误日志 8 9 pid /usr/local/nginx/logs/nginx.pid; 10 #主进程PID保存文件 11 12 #Specifies the value for maximum file descriptors that can be opened by this process.? 13 worker_rlimit_nofile 51200; 14 #文件描述符数量 15 16 events 17 { 18 use epoll; 19 #网络I/O模型,建议linux使用epoll,FreeBSD使用kqueue 20 #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以 上内 核,可以大大提高nginx的性能 21 worker_connections 51200; 22 #单个工作进程最大允许连接数 23 multi_accept on; 24 25 } 26 27 http 28 #整体环境配置 29 { 30 include mime.types; 31 default_type application/octet-stream; 32 #设定mime类型,文件传送类型由mime.type文件定义 33 34 server_names_hash_bucket_size 128; #保存服务器名字的hash表大小 35 client_header_buffer_size 32k; #客户端请求头部缓冲区大小 36 large_client_header_buffers 4 32k; #最大客户端头缓冲大小 37 client_max_body_size 50m; #客户端最大上传文件大小(M) 38 39 sendfile on; 40 #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文 件,对于普通应用,必须设为 on。如果用来进行下载等应用磁盘IO重负载应用,可 设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime. 41 #高效文件传输 42 tcp_nopush on; 43 #这个是默认的,结果就是数据包不会马上传送出去,等到数据包最大时,一次性的 传输出去,这样有助于解决网络堵塞。(只在sendfile on时有效) 44 45 46 keepalive_timeout 60; 47 #连接超时时间 48 49 tcp_nodelay on; 50 #禁用nagle算法,也即不缓存数据。有效解决网络阻塞 51 52 fastcgi_connect_timeout 300; 53 fastcgi_send_timeout 300; 54 fastcgi_read_timeout 300; 55 fastcgi_buffer_size 64k; 56 fastcgi_buffers 4 64k; 57 fastcgi_busy_buffers_size 128k; 58 fastcgi_temp_file_write_size 256k; 59 #fastcgi设置 60 61 gzip on; 62 gzip_min_length 1k; 63 gzip_buffers 4 16k; 64 gzip_http_version 1.1; 65 gzip_comp_level 2; 66 gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; 67 gzip_vary on; 68 gzip_proxied expired no-cache no-store private auth; 69 gzip_disable "MSIE [1-6]\."; 70 71 #limit_conn_zone $binary_remote_addr zone=perip:10m; 72 ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section. 73 server_tokens off; 74 #隐藏nginx版本号(curl -I 192.168.4.154可以查看,更加安全) 75 76 #log format 77 log_format access '$remote_addr - $remote_user [$time_local] "$request" ' 78 '$status $body_bytes_sent "$http_referer" ' 79 '"$http_user_agent" $http_x_forwarded_for'; 80 #定义日志格式 81 82 server 83 { 84 listen 80 default_server; 85 #listen [::]:80 default_server ipv6only=on; 86 #监听80端口 87 server_name www.eshop.com 88 #服务器名 89 index index.html index.htm index.php; 90 #默认网页文件 91 root /eshop/laravel/public; 92 #网页主目录 93 94 #error_page 404 /404.html; 95 include enable-php.conf; 96 97 location /nginx_status 98 { 99 stub_status on; 100 access_log off; 101 } 102 #开启status状态监测 103 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 104 { 105 expires 30d; 106 } 107 #静态文件处理,保存期30天 108 location ~ .*\.(js|css)?$ 109 { 110 expires 12h; 111 } 112 #js和css文件处理,保存期12小时 113 location ~ /\. 114 { 115 deny all; 116 } 117 118 access_log /home/wwwlogs/access.log access; 119 #正确访问日志 120 } 121 include vhost/*.conf; 122 #vhost/下子配置文件生效 123 }
View Code
3.5 检查Nginx配置文件语句错误:
#/usr/local/nginx/sbin/nginx -t
3.6 平滑重启:
1)pkill -HUP nginx
2)kill -HUP `pgrep -uroot nginx`
Pgrep -uroot nginx 取出nginx主进程PID
3)/usr/local/nginx/sbin/nginx -s reload
4.开启PHP错误报告
4.1 路径 :/usr/local/php/etc/php.ini
4.2 搜索并修改下行,把Off值改成On
display_errors = Off //此时已经有错误信息了
4.3 搜索下行
error_reporting = E_ALL & ~E_NOTICE
或者搜索:
error_reporting = E_ALL & ~E_DEPRECATED
修改为
error_reporting = E_ALL | E_STRICT //显示错误信息范围
三、搭建git版本控制器
1、首先需要安装Git,可以使用yum源在线安装:
[root@iZ287mhoky1Z ~]# yum install -y git
2、创建一个git用户,用来运行git服务
# adduser git
3、初始化git仓库:这里我们选择/git/eshop.git来作为我们的git仓库
[root@iZ287mhoky1Z git]# git init --bare eshop.git
执行以上命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
[root@iZ287mhoky1Z git]
# chown git:git learngit.git
4、在这里,Git服务器就已经搭得差不多了。下面我们在客户端clone一下远程仓库
Administrator@y-32 MINGW32 /e/wamp/www/yx
$ git clone git@115.28.147.159:/git/eshop.git
Cloning into 'eshop'...
git@115.28.147.159's password:
remote: Counting objects: 107, done.
remote: Compressing objects: 100% (77/77), done.
Receiving objects: 100% (107/107), 44.84 KiB | 0 bytes/s, done.
ta 10)
Resolving deltas: 100% (10/10), done.
Checking connectivity... done.
这里两点需要注意:第一,当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.RSA key fingerprint is xx.xx.xx.xx.xx.Are you sure you want to continue connecting (yes/no)?
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
这个警告只会出现一次,后面的操作就不会有任何警告了。
如果你实在担心有人冒充GitHub服务器,输入yes前可以对照GitHub的RSA Key的指纹信息是否与SSH连接给出的一致。
第二,这里提示你输入密码才能clone,当然如果你知道密码,可以键入密码来进行clone,但是更为常见的方式,是利用SSH的公钥来完成验证。
5、创建SSH Key
首先在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
6、Git服务器打开RSA认证
然后就可以去Git服务器上添加你的公钥用来验证你的信息了。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,即:
1.RSAAuthentication yes 2.PubkeyAuthentication yes 3.AuthorizedKeysFile .ssh/authorized_keys
这里我们可以看到公钥存放在.ssh/authorized_keys文件中。所以我们在/home/git下创建.ssh目录,然后创建authorized_keys文件,并将刚生成的公钥导入进去。
然后再次clone的时候,或者是之后push的时候,就不需要再输入密码了
7、禁用git用户的shell登陆
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
最后一个冒号后改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
四、搭建Laravel框架
1.安装Composer
1 [root@iZ287mhoky1Z myproject]# curl -sS https://getcomposer.org/installer | php 2 curl: (56) SSL read: errno -5961 3 PHP Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in - on line 2522 4 5 Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in - on line 2522 6 [root@iZ287mhoky1Z myproject]# ls 7 index.php 8 [root@iZ287mhoky1Z myproject]# curl -sS https://getcomposer.org/installer | sudo php 9 All settings correct for using Composer 10 Downloading 1.2.0... 11 12 Composer successfully installed to: /myproject/composer.phar 13 Use it: php composer.phar 14 15 测试Composer是否安装成功:php composer.phar 16 17 把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar。 在类Unix系统中,你甚至可以在使用时不加 php 前缀。可以执行这些命令让 composer 在你的系统中进行全局调用: 18 #mv composer.phar /usr/local/bin/composer 19 20 测试composer命令:#composer 21 ______ 22 / ____/___ ____ ___ ____ ____ ________ _____ 23 / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ 24 / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / 25 \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ 26 /_/ 27 Composer version 1.2.0 2016-07-19 01:28:52 28 ... 29 30 Composer安装成功!!
View Code
2.安装Laravel LTS
# composer create-project laravel/laravel=5.1 --prefer-dist
安装失败,修改PHP配置文件:(移出三个函数exec,proc_open,proc_get_status)
1 ;disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server 2 disable_functions = passthru,system,chroot,scandir,chgrp,chown,shell_exec,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
View Code
问题:laravel 使用composer安装到服务器上,访问laravel首页欢迎界面一直服务器错误(500)
解决:修改两个目录权限bootstrap和storage权限,都给777
转载于:https://www.cnblogs.com/yexiang520/p/5784281.html
EShop网上商城项目(一)相关推荐
- EShop网上商城项目(二)
一.创建数据库,修改配置文件 create database lnmp; #vim .env DB_CONNECTION=mysql DB_HOST=localhost DB_DATABASE=lnm ...
- 【SSH网上商城项目实战16】Hibernate的二级缓存处理首页的热门显示
转自:https://blog.csdn.net/eson_15/article/details/51405911 网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要 ...
- java web网上商城项目实战与源码
java web网上商城项目实战与源码 点击这里,轻松完成毕设https://x-x.fun/i/AAbf595445aBT
- 【SSH网上商城项目实战21】从Demo中看易宝支付的流程
这一节我们先写一个简单点的Demo来测试易宝支付的流程,熟悉这个流程后,再做实际的开发,因为是一个Demo,所以我没有考虑一些设计模式的东西,就是直接实现支付功能.实现支付功能需要易宝给我们提供的AP ...
- 商城项目中信息的集合怎么存储_网上商城项目_数据库设计说明书.doc
秘密 第 PAGE 2 页 共 NUMPAGES 10 页 信用卡网上商城项目 数据库设计说明书 文件修订历史 修订时间 修订说明 作者 审核 2010.08.05 编写数据字典 谭星佑 曾玉贞 20 ...
- Django框架学习之网上商城项目一(后端设计)
目录 一.项目需求分析 1.项目介绍 1.技术难点 2.系统功能 3.项目环境 4.后台管理页面 二.数据库模型设计 一.准备工作 二.用户认证数据库模型设计 1. app/users/models. ...
- 【SSH网上商城项目实战】之环境搭建填坑
此篇主要是记录我在从零开始走一遍倪升武大神的[SSH网上商城项目实战]过程中遇到的一些坑并记录解决方法.关于这个项目,大家可以去倪升武的博客学习了解,SSH网上商城项目实战请戳倪升武的项目实战专题. ...
- 十七、网上商城项目(1)
本章概要 脚手架项目搭建 安装与配置 axios 首页 页面头部组件 头部搜索框组件 头部购物车组件 头部组件 本章结合前面所学知识,开发一个网上商城项目. 成品如下 17.1 脚手架项目搭建 选择好 ...
- 【SSH网上商城项目实战01】整合Struts2、Hibernate4.3和Spring4.2
转自:https://blog.csdn.net/eson_15/article/details/51277324 今天开始做一个网上商城的项目,首先从搭建环境开始,一步步整合S2SH.这篇博文主要总 ...
最新文章
- eclipse常用快捷键Get;set;
- C语言实现寻找极值点,九之再续:教你一步一步用c语言实现sift算法、上
- 实现视图示例_AngularJS控制器,范围和视图教程示例
- 《算法导论》为什么经典
- php从数据库删除数据,php怎么从数据库中删除数据
- 增量式修改检验和(IP, TCP, UDP)算法的研究和实现
- 微信分销系统源码定制开发
- 夜间红外图像行人检测学习笔记
- HIVE Sql 笛卡尔积关联导致查询过慢问题优化
- win7_64位安装AutoCAD2008详解_完美解决特性面板等局部英文的问题
- 使用excel校验身份证号码是否正确
- 用户增长因果推断概念
- 共享电动滑板车来了,它估值为何高达20亿美金?
- pod install 时遇到 Automatically assigning platform `iOS` with version `11.0` on target XXX......
- APM32F103 RTC内部时钟源秒中断例程测试
- IDEA 2021.2 取消 双击shift 全局搜索
- 2022非常火过postman的一款技术人必备的接口测试神器:Apifox
- C语言转义字符,注释
- Dicom学习之一:大尾和小尾LittleEndian/BigEndian
- “奔驰车主哭诉维权”续:双方再次协商无果
热门文章
- android 5 sdk版本下载地址,android5 sdk 下载地址大全
- vue中的倒计时跳转页面问题和axios网络请求this作用域问题
- 服务器报错:“/usr/local/var/run/nginx.pid”failed
- Linux权限管理(基本权限、默认权限、
- 【Java Web开发指南】ORM一些基础问题整理
- python【力扣LeetCode算法题库】46- 全排列
- java class 使用_Java反射机制(Class类的使用)
- 进阶学习(3.6) Prototype Pattern 原型模式
- Android 请求PHP接口, 返回json, 开头有问号, 解决方案
- 网页制作获得用户喜爱才是重点!