#某魔法组织官网实现
这是一篇开源的基于laravel的网站开发项目博客,涉及的资源、工具、项目源代码,请访问我的github项目,地址为:https://github.com/xielinrui/laravel/tree/master/acmcqupt/html ###后端
####开发环境的搭建
#####在本机搭建laravel开发环境
######1、安装 php 7
如果你是windows系统,前往 https://windows.php.net/download 下载 PHP 7 最新版本
如果你是Linux系统,前往 http://www.php.net/downloads.php 下载 php 7 最新版本
下载好了php 7 之后,安装 php 7。这里以windows 10 为例(Linux后面部署生产环境的时候再说):
解压好php 7 下载的文件之后,呈现出下面的目录结构:
在文件夹里面有大量的.lib文件(静态数据连接库)
dev:存放php7.lib文件,是php7的主设备目录
ext:extends的缩写,里面包含了php 7 自带的可扩展插件(即插即用,只需在配置文件中配置)
extras:
ssl:存放openssl的配置文件
lib:
enchant:存放了语法检查的文件
sasl2:用于验证身份
在主文件夹中,找到 php.ini-development 文件,复制一份备份,然后修改文件名为php.ini,作为php 7 的配置文件。
######2、安装 Nginx 作为服务容器
nginx支持的特性比apache服务器强一些,所以选择用nginx。另外,基于nginx配置高性能服务器也是朋友们可以尝试的
针对win10:
前往 http://nginx.org/en/download.html 下载nginx最新版
解压之后,目录结构如下:
conf:nginx的配置文件
contrib:
unicode2nginx:
vim:
ftdetect:
ftplugin:
indent:
syntax:
docs:
html:安装时的默认站点
logs:日志文件
temp:
ctrl+R 调出命令行窗口后进入到nginx的下载目录,使用这个指令来开启nginx
然后在浏览器输入 http://localhost/ 就可以访问到自己的nginx服务了。如果目前你查看到自己的nginx没有任何反应,可以使用下面的方法来查看问题。
解决掉上面的问题之后,就可以看见nginx的欢迎界面了
welcome to nginx !!!
为了方便nginx在windows系统中好打开和关闭,可以把nginx加入到系统服务当中去
(1)、前往 https://github.com/kohsuke/winsw/releases 下载 xxxx.NET4 类型的文件,下载完成后放到nginx的解压目录中,与nginx.exe同级。
(2)、编写 xxxx.xml 文件(注意 xxxx 指代的是下载的 xxxx.NET4 的那个文件名)
其中里面代表的是解压文件中 nginx.exe 的绝对路径
(3)、使用指令 xxxx.exe install 来安装新建的服务、使用 xxxx.exe start 来启动服务,启动服务之后,到计算机服务管理界面就可以看见刚刚安装的nginx服务了。
(4)、如果想用winsw来安装其他的服务,也可以用类似的办法。
安装好nginx之后,可以到 codepen:https://codepen.io/ 下载 40x.html 和 50x.html 的页面,避免使用 nginx 默认的 404.html 和 50x.html 页面造成服务器版本泄露。保护服务器相关属性的隐私安全也是很重要的。在校园环境中,避免一些同学来对服务器进行恶意攻击练手。下载好之后需要去nginx.conf里面修改相关的配置。
如果前面有 # 号,就去掉
如何得到nginx的错误提示呢?
开启nginx的调试模式,当php代码有问题的时候,nginx服务默认是不提供报错信息的,对于开发人员来说,这样的后果就是增加了更多的调试时间,为了提高效率,在开发的阶段开启nginx的错误提示功能是很有必要的。修改配置文件即可。
######3、nginx中配置支持 php 7
配置php:
修改 php.ini 文件
配置nginx:
修改 nginx.conf 文件
去掉前面的所有注释,使nginx支持php。这里的Php是以CGI的模式运行的,与在apache服务器中运行的状态不一样,nginx通过监听9000端口发来的请求做相应的渲染动作。现在有很多技术的实现方法都类似于这种,例如 docker Client 和 docker Server 也是这样C/S结构的。nginx和php处于不同的进程,两个进程之间通过Socket连接起来。
使用CGI模式启动php 7:
输入以后没有反应,但是不能关掉命令行
不过,这种不关闭命令行的操作始终不符合简便性开发的原则(多一个黑窗口,还不能动,动了就凉了)
开启php之后,写一个php的 Hello world 来测试可用性
从浏览器访问该文件,如果能够看到php的相关介绍,那么就配置成功了。
常见问题:
(1)、出现 “No input file specified.” 的错误提示,原因是由于nginx和php的根目录不一致造成的。查看 access.log 文件,“GET / HTTP/1.1” 404 36 “-” "Mozilla/5.0 也可以看出的确是没有找到这个文件,但是由于php接管了所有Php的东西,所以没有显示出默认的404页面,而是返回了上面那个错误提示。
解决办法:
修改 nginx.conf 文件:
修改完之后重启nginx服务即可。(可以先使用 nginx -t 测试配置文件的正确性,再使用nginx -s reload 重启nginx)。此时问题就解决掉了。
######配置composer
该部分来源于composer中国全镜像的教程,地址:https://pkg.phpcomposer.com/
打开命令行窗口,运行以下命令
作用:
下载安装脚本 - composer-setup.php - 到当前目录。
执行安装过程。
删除安装脚本
全局安装composer
全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了
方法:
1、找到并进入 PHP 的安装目录(和你在命令行中执行的 php 指令应该是同一套 PHP)。
2、将 composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。
3、在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。
重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号
如果看到类似这样的结果,就可以确定安装成功了。
经常执行 composer selfupdate 以保持 Composer 一直是最新版本
######使用Packagist 镜像( Composer 中国全量镜像)
修改 composer 的全局配置文件
试一下 composer install 来体验飞一般的速度
######创建一个laravel项目
到你的工作目录下,创建一个Laravel项目
下载这个laravel需要花一定的时间,耐心等待之后,就可以发现生成了laravel项目,由于篇幅原因,关于Laravel中相关目录代表的含义就不一一介绍了。感兴趣的同学可以自己看源码。laravel的源码主要是在vender目录下的 Illuminate 下的。应用访问的入口是 public 目录下的 index.php 文件。访问 laravel 应用前,应该修改 storage 目录的权限,否则会报错。
修改本地host文件,也就是当你在浏览器中输入域名的时候,实际上请求的dns首先是到host文件中去找
配置 nginx 将 acm.xxxpt.edu.cn 指向当前这个服务
新增一个 server 块,修改下面这部分配置
重启 nginx ,在浏览器中打开刚才的域名,就可以对laravel项目进行访问了。
下一篇