威尼斯手机平台登陆-官方网站登录

威尼斯手机平台登陆为您带来世界三大博彩公司最新相关资讯,威尼斯官方网站登录充分考虑到不同地域网民的不同需求,威尼斯手机平台登陆良好的用户界面,人性化的操作,实用的功能设计使其广泛受到欢迎,推动实体出版、影视、动漫、游戏等相关文化产业的发展。

您的位置:威尼斯手机平台登陆 > 最新文章 > 【威尼斯正规官网】帮助手册中从0开始教你搭建一个简单的网站,欢迎参与我们的

【威尼斯正规官网】帮助手册中从0开始教你搭建一个简单的网站,欢迎参与我们的

发布时间:2020-03-04 19:15编辑:最新文章浏览(114)

    本文由码农网 – 曾钊泳原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

    最近,在做自己的个人网站时,采用了轻量级的php框架CodeIgniter。乍一看上去,代码清晰简洁,MVC模型非常容易维护。开发时我采用的工具是Netbeans IDE 8.0,当然,本文的内容和开发工具是没有关系的,和我们最后网站采用的服务器有很大的关系。目前最为常用的两款免费web服务器是Apache和Nginx(这两款服务器的比较,可以参考一篇网上的经典文章:

    声明:本人菜鸟一枚,由于项目中需要用到zf2框架进行开发,在此记载学习使用过程中的点点滴滴。才疏学浅,请多指教。。。。。。。。。。。。。

    简介

    我手上有个用PHP写的网站,类似于个人测试性质的站点,我独立设计,在这过程中犯了所有可能的设计和编程上的错误,同时我也收获了很多,这也促使我去学习PHP和MySQL。每当我学习新的技术或web实践时,都会想到我的网站会从中得益。正如你可以想象到的,它的可读性不强。测试网站往往在代码可读性和可维护性方面表现糟糕,尤其当你仅仅因为某些必要的功能而学习一门编程语言时,而这也正是我一直以来学习PHP的方式。

    自从了解了ASP.NET MVC,我便思考如何在这个网站上实践这套MVC模式。我喜欢这整套概念的一切,尤其是路由。但我并不想为此而重构整个网站的现有框架,担心这样一来,大部分现有代码将变成像是异物一样,不受我的控制和理解。网站已经有一个WordPress搭建的博客,通过修改模板让它看起来就像是一个完整的站点,好比在一巨大的墙上画涂鸦一样,这简直是一团糟。

    然后呢?刚不久前,我学习了一些REST API的相关知识,这是为日常工作所需而学习的。有没有一个最佳的方式去学习这些呢?我知道有个网站会从中获益。在网上阅读了一些关于在PHP环境应用RESTful API的文章,我了解了.htaccess文件。现在我知道怎样在PHP中搭建路由,因此,也许能在测试网站实施自己设计的小型的、简单的MVC模型。

     


    设想

    在PHP中搭建自定义路由的关键在于增加一个.htaccess文件,以下请看

    具体实现:

    我在网站文件夹目录中新增了一个”API”文件夹,在里面新建一个.htaccess文件,内容是我从Corey Maynard写的一段文本中参考来的。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?request=$1 [QSA,NC,L]
    </IfModule>
    

    长话短说,有了这个配置,所有以”www.yoursite.com/api/”开头或指向不存在的文件或路径的请求都会被重定向到index.php文件。$1变量值表示请求的URL地址,”request”变量名也很好理解,用$_REQUEST[‘request’]命令就可轻易获取。

    另外,index.php文件和.htaccess文件在同一访问层级。

    (1)关于CodeIgniter

    开发过程中使用的环境及工具如下:

    可能出现的问题?

    事实上,你可能还没启用指定的module。

    在WampServer环境下,我需要启用相应module来支持本机运行。一种方法是点击托盘图标进入”Apache”目录,在”Apache modules”列表中选中rewrite_module,然后重启所有服务。另一种方法是编辑httpd.conf文件,取消下面这段配置的注释

    #LoadModule rewrite_module modules/mod_rewrite.so
    

    我想接下来要做的事情之一就是给网站做几个自测网页,好让我确定网站的负责人没有改变任何东西。这听起来可能有点偏执和可笑,但又一次,我需要临时增加 “set names latin2;”配置来检视数据库导入的数据。

    如果想验证以上配置是否在服务器上启用,你可以使用这段代码:

    echo in_array('mod_rewrite', apache_get_modules());
    

    CodeIgniter是一款开源的超轻量级MVC框架,常用于快速地Web开发中,如果你愿意,甚至可以随意地更改其中的源代码,以适应自己的需求。这个框架本身不想多做介绍,需要熟悉的朋友可以去CodeIgniter官方网站下载,并且官网也提供了非常详细的中文帮助手册,可以很好的帮助新人学习。帮助手册链接: 威尼斯正规官网, 。帮助手册中从0开始教你搭建一个简单的网站。

    开发环境:LNMP: Linux+Nginx+MySQL5.5+php5.6

    接下来呢?

    至此我获得一些重要的知识,让我可以为我的网站搭建新的MVC框架。使用新框架比使用现有解决方案更棒,很大程度上由于这让我在应用MVC模式的过程中获得广泛的知识。由于所有代码都是我个人的工作量,也就没有任何消耗性组件。

    继续为我的网站创建REST API。现在我才能实质性地将数据库逻辑从网页界面中抽离出来。

     

    zf版本:zf2.2

    有用的链接

    如果你想知道我是怎样找到解决方案,那下面是我从中获得知识的网站 

    (2)CodeIgniter架设的网站URL

    IDE工具:NetBeans8.1

    最开始CodeIgniter搭建的网站URL是这样子的:

    Zend Framework 官方网址:

    class name]/[class function name]/[function parameter]

    注:zf2需要PHP 5.3+才能正常运行,zf2对zf1不兼容。

    举个例子说明:


     

    一、zend farmwork2简介

    在讲如何去掉index.php之前,我们先弄清楚它为什么会出现在这里。对于任意一个url请求,CodeIgniter都是先由位于网站跟目录下的index.php文件处理的,这个文件再根据你提供的url中index.php后面的部分来确定把这个请求重新交给哪一个类的哪一个函数处理。因此,url中必须包含index.php这个字段,显式的告诉服务器,这个url你先让index.php去重新定向到我后面指定的类去处理。如果不经过任何配置就直接把index.php去掉,你的网页是显示不出来的。那么我们如果要去掉它,就是希望经过一些配置选项,让服务器见到一个url默认地就用index.php去处理就好了,不用再把index.php显示在url里面。

    ZF2是一个基于PHP的开源框架,可以用来开发WEB应用程序的各种服务。ZF2是一个基于面向对象的框架,一切都是以对象为基础。ZF2有非常丰富的组件库,而且大部组件之间相互独立,互不依赖,所以开发者可以独自开发并使用自定义组件。

     

    ZF2 拥有一个强大而且高效的MVC实现,他具有强大的数据库操作、路由控制、视图渲染、HTML表单解析、表单验证、数据过滤等功能;同时ZF2还提供了多种用户认证功能,通过证书来保存用户认证和授权信息,也可以通过Amf 来为Flash等其他语言开发的软件提供相应的服务。总的来说不论你需要什么功能,你都可以从ZF2中找到相应的组件来实现,从而有效的减少开发时间,提高项目开发的效率。ZF2提供的各种组件可以用来实现你想要的各种功能,也可以添加一些你自定义组件来搭建你强大的WEB应用程序。

    (3)Apache服务器下去掉index.php

    二、项目搭建

    我在自己电脑上开发时使用的是Apache服务器,因此不可避免地要先在Apache服务器下解决这个问题。其实,文章开始时提到的CodeIgniter官方帮助手册里面已经给了Apache下的解决办法,却没有给出Nginx下的解决办法。没办法,Apache服务器据说市场占有率已经超过60%,作为如此主流的服务器,官方手册还是有必要说明它的配置方法的。为了更加清晰一些,我再更加详细地说明一下。

     创建一个项目文件夹cisp,并在cisp里手动创建如下文件夹:

     

    ├─config
    │ └─autoload
    ├─module
    │ ├─Dao
    │ └─sitefront
    ├─public
    │ ├─css
    │ └─js
    └─vendor

    在网站根目录下(也就是与前文提到的index.php同一个目录下),新建一个文件,名为.htaccess。注意不要忘了htaccess前面还有个点。用记事本打开这个文件,写入如下命令:

    cisp:网站的根目录

    RewriteEngine on
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    RewriteCond $1 !^(index.php|images|js|css|robots.txt)
    RewriteRule ^(.*)$ /index.php/$1 [L]
    

    config:用于设置网站的配置,如数据库账号,密码等

    看一下英文单词Rewrite也猜到了,其实这个文件控制的就是url的重写规则。关于.htaccess文件的具体重写规则和全部种类的语法又是一门大学问,在这里就不详述了。我们只关心上面写的这几句话是啥意思。

    module:网站的业务逻辑实现部分,使用MVC模式在该目录内开发

    第一句 RewriteEngine on:翻译过来就是“重写引擎 开启”,相当于启动url重写机制。

    Dao:MVC结构的M共享部分

    第二句 RewriteCond %{REQUEST_FILENAME} !-f:翻译过来就是“重写条件 请求文件名不是个文件”。最后一个字母f理解为file,!-f的感叹号表示否定,也就表示不是个file。

    sitefront:controller文件和view文件存放目录

    第三句 RewriteCond %{REQUEST_FILENAME} !-d:翻译过来就是“重写条件 请求文件名不是个目录”。最后一个字母d理解为directory。

    public:存放css,js,image等资源文件,同时index.php是网站的主要入口文件

    第二句与第三句的用途是说,只有在你的URL请求不是文件的名字或者文件夹名字的时候,才启用重写规则。举例说明,比如

    vendor:用于存放zf2框架以及其他第三方的PHP插件如图表,execl,sina接口文件等

    第四句 RewriteCond $1 !^(index.php|images|js|css|robots.txt):翻译过来就是“重写条件 url网址后的第一个参数不可以是index.php,images, css, js, robots.txt任何一个”。比如

     二、虚拟主机配置

    第五句 RewriteRule ^(.*)$ /index.php/$1 [L]:翻译过来就是“重写规则 把url网址后第一个参数前面加上index.php”。[L]表示这是最后一条重写规则,后面没有了。

    文件目录建好之后,需要对虚拟机的Nginx配置文件进行配置一个虚拟主机,Nginx.conf的配置如下:

    这样,你如果在浏览器输入

    <VirtualHost *:80>
    ServerName cisp.local

    最后还有一个小坑,就是在使用工具开发网站的时候,往往我们网站代码并不在Apache服务器的根目录下,比如我们在Apache服务器的根目录下又建立一个文件夹xxx,并且把网站整个放在这个文件夹里面,那么我们的主页地址就是 ^(.*) /xxx/index.php/$1 [L],还有一种改法是直接去掉第五句话中index.php前面的斜杠(即RewriteRule ^(.*)$ index.php/$1 [L]),这一点千万注意!

    DocumentRoot /mnt/hgfs/vmshare/cisp/public
    #SetEnv APPLICATION_ENV "production"
    SetEnv APPLICATION_ENV "dev"
    SetEnv ZF2_PATH "/var/www/zf2test/vendor/ZF2/library"
    LimitRequestBody 0

     

    Alias /imageUp /mnt/hgfs/vmshare/websharefile/imageUp
    Alias /UploadImage /mnt/hgfs/vmshare/websharefile/UploadImage
    Alias /UploadImageUserGroup /mnt/hgfs/vmshare/websharefile/UploadImageUserGroup
    Alias /UploadResources /mnt/hgfs/vmshare/websharefile/UploadResources
    #<Directory /var/www/simplexue/public>
    <Directory /mnt/hgfs/vmshare/cisp/public>
    DirectoryIndex index.php
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
    </VirtualHost>

    完成了上面的.htaccess文件后,还有两件事情要做。

    在本机的host文件内添加虚拟域名的配置:192.168.1.24 cisp.local

    第一,找到CodeIgniter中的application/config/config.php文件,把index_page设为空值,即$config['index_page']

    '"";还有base_url设为网站根目录(index.php所在目录),$config['base_url']="

    第二,找到Apache的配置文件,也就是conf/httpd.conf这个文件,确保LoadModule rewrite_module modules/mod_rewrite.so前面的井号#已经去掉了。然后关键字搜索htaccess,找到配置.htaccess的部分,其设置应该改为AllowOverride All。其实如果你没有用很旧版本的Apache,井号和AllowOverride All默认就应该是设置好了的。这一步只是确认一下,不是这么配的要改成这样。

     

    至此,Apache服务器下CodeIgniter的URL配置大功告成。现在index.php已经不需要出现在URL中了,系统会默认让index.php先去处理URL。

     

    (4)Nginx服务器下去掉index.php

    上文中提到的Apache去掉index.php在官方帮助文档也有简要的说明,但是Nginx服务器就没有这么幸运了。我在网站开发时本地是Apache,但是网站上线时的服务器却是Nginx的,因此不得已又去网上搜索Nginx服务器下的配置,折腾了很久,试错试了很多次,总算把一个正确的版本试出来了,现在可以提供给大家参考。因为自己对于Nginx的配置没有深入研究过,所以先说明一下自己线上服务器用的环境,然后再展示Nginx配置的修改内容。以我目前的配置,亲测可以很好地工作,大家碰到了类似的问题可以按照我的配置尝试一下,不过我也不敢保证在您的系统上一定会奏效……我的线上服务器是买的XX云(避免广告~)服务器(自己从零开始搞一个服务器实在太麻烦了),系统配置好之后默认就是Nginx。操作系统采用的是Ubuntu 12.04,Nginx版本是nginx/1.1.19。

     

    看网上好多人的Nginx服务器默认配置文件是/etc/nginx/nginx.conf,我的也不例外。不过有个注意事项,有时候nginx.conf中会有一句include ***(另外一个文件),也就是引用外边某个文件的内容作为配置文件,这时候,如果你没有在nginx.conf中找到服务器server相关配置,不妨去它include的另外一个文件中找一下,我的就是这种情况。在我的配置文件中,和服务器有关的配置应该改成如下:

    server {
            listen   80;
    
            root /usr/share/nginx/www;
            index index.php index.html index.htm;
    
            # Make site accessible from http://localhost/
            server_name localhost;
    
            location / {
                    index index.php index.html index.htm;
    
                    # Uncomment to enable naxsi on this location
                    # include /etc/nginx/naxsi.rules
    
                    # 请留意下面这条重写规则,和前面的Apache有些类似
                    if (!-e $request_filename) { ##如果没有找到目标文件
                            rewrite ^/(.*)$ /index.php/$1 last;
                            break;
                    }
              
               
              # 上面的重写规则也可以改成下面这种形式,亲测两者都可行
              # if ($request_filename !~ (js|styles|images|robots.txt|index.php.*)){ ##如果不是请求js,styles等文件
              #        rewrite ^/(.*)$ /index.php/$1 last;
              #        break;
              # }
            }
    
            location /doc/ {
                    alias /usr/share/doc/;
                    autoindex on;
                    allow 127.0.0.1;
                    deny all;
            }
    
            location ~ .php($|/) {
                    fastcgi_split_path_info ^(.+.php)(.*)$;
    
                    fastcgi_pass 127.0.0.1:9000;
    
                    fastcgi_index index.php;
                    fastcgi_param PATH_INFO $fastcgi_path_info;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            location ~ /.ht {
                    deny all;
            }
    }
    

    具体的改动已经标注在上面的注释中了,很简单的一句重写规则,我却折腾了蛮久的时间。希望分享出来,帮助大家少踩坑。就写到这里吧!

     

    三、伪静态.htaccess添加

    伪静态的主要功能是实现URL的重写,有利于搜索引擎进行抓取。在public文件夹下新建.htaccess文件,并添加如下配置:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .(gif|jpe?g|png|bmp) /img/loader.gif [NC,L]
    RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::2$
    RewriteRule ^(.*) - [E=BASE:%1]
    RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

    四、添加测试文件

    在public文件夹下新建index.php,该文件是网站项目的唯一入口。

    添加测试代码:var_dump(123);die; 测试项目是否走通。

    如图:

    威尼斯正规官网 1

     


     

    未完,待续。。。。。。。。。。。。。。。。。。

     

    本文由威尼斯手机平台登陆发布于最新文章,转载请注明出处:【威尼斯正规官网】帮助手册中从0开始教你搭建一个简单的网站,欢迎参与我们的

    关键词: