精华内容
下载资源
问答
  • PHP Web项目总结

    千次阅读 2017-07-06 23:22:37
    严格上划分,前段时间做的PHP Web项目PHP Web项目是自己开发的第一个线上服务。第一次和前端同事合作开发,第一次一个人担任服务端开发,本文是对这次开发的一次总结。

    严格上划分,前段时间做的PHP Web项目PHP Web项目是自己开发的第一个线上服务。第一次和前端同事合作开发,第一次一个人担任服务端开发,本文是对这次开发的一次总结。

    代码规范

    这个是在看到一段遗留代码才察觉的,其中有一段代码如下:

    // ……
    $a=isset($_GET["a"])?$_GET["a"]:0;
    if($a==0){
        // logic
    }else{
    
    }

    看完这个脚本后,我感觉全身都被压挤着,比自己曾经坐过的十一火车还挤(哈哈)。于是网上搜了下PHP-FIG的代码规范,发现了PHP中PSR-[0-4]代码规范。

    C++开发切换到PHP语言后,在代码规范上容易受到C++编码规范潜移默化的影响。比如说,自己写的C++函数结构更加倾向于:

    void bar {
        // logic code
    }

    然而从php psr2编码规范并不推荐这种编码方式,推荐使用:

    <?php
    namespace Vendor\Package;
    
    class ClassName
    {
        public function fooBarBaz($arg1, &$arg2, $arg3 = [])
        {
            // method body
        }
    }

    不推荐使用:

    <?php
    namespace Vendor\Package;
    
    class ClassName {
        public function fooBarBaz($arg1, &$arg2, $arg3 = []) {
            // method body
        }
    }

    其他点,比如一个PHP文件的分段:命名空间,导入类,类等,自己觉得和C++很类似。

    结构设计

    自己使用的是公司的一个PHP框架,窃以为目录比较混乱,例如代码的index.php和Controller层代码在两个不同的目录。

    因开发的接口提供给前段同事调用,MVC只有MC。Controller层负责第一层的处理,包括参数校验,完成处理后调用Model层类处理具体的逻辑。

    对用到的其他服务,自己把它们单独划分到最底层的第三方接口,只负责请求及获取结果。在第三方接口层之上,对获取结果做逻辑处理,例如:解析返回结果、合并解析后的返回结果。

    遇到的问题

    代码发布问题

    这个是任何服务端上线需要解决的问题,这个有相当多的解决方案,例如:rsync。一个好的发布系统,我认为至少要支持以下特性:
    - 支持测试、回归以及灰度发布
    - 回滚操作(代码有问题,立即回滚到上一个稳定版本)。

    公司的发布系统在第一点上做的不是很好,例如:不支持发布到测试环境。自己在这个发布系统上遇到比较多的坑,花费了很多时间沟通解决问题。

    功能测试

    自己开始拿php-unit做功能测试,后期才发现方向走错了。目前使用的工具包括:
    - PostMan
    - Python Request接口测试
    - Chrome前端测试


    展开全文
  • 越来越多的源码被广大企业所认知,源码不仅省时省力,更重要的是节省成本,phpweb就是使用比较广泛的一个。 工具/原料 域名 虚拟主机 FTP工具 phpweb源码一套 方法/步骤 ...

    越来越多的源码被广大企业所认知,源码不仅省时省力,更重要的是节省成本,phpweb就是使用比较广泛的一个。

    工具/原料

    • 域名
    • 虚拟主机
    • FTP工具
    • phpweb源码一套

    方法/步骤

    1. 购买域名,常用域名有.com,.cn,.net,新兴起的域名有.top等,因域名的唯一性,有很多好的域名都被注册了,比如说nuo.cn,lxo.cn,所以在注册时结合实际情况选择简单,易记,朗朗上口的域名。

    2. 虚拟主机

      国内空间:

      1:都需要进行域名备案才能使用.域名没备案.网站不能上线.

      2:需要看看地区.比如你网通用户.最好是购买双线空间.或者购买本地地区空间.例如电信. 网通.

      3:购买前注意查看配置.

      4:国内空间仅限于国内展示的.

      国外(美国)空间:

      1:不需要域名备案.直接能使用.直接能使用让网站上线

      2:国外空间比较好的有德州达拉斯机房.加州旧金山机房.这些地区的机房.除了国外浏览速度快.国内相对也是比同类型国外的空间快的.

      3:购买前注意查看配置.

      4:国外空间 可在国外展示.并且能在国内进行浏览.速度不算慢.

      香港空间

      1:不需要域名备案.直接能使用让网站上线

      2:国内外都能浏览.但是速度平庸.

      3:优势在于价格低廉.能让国内外访问.并不需备案.

      4:购买前注意查看配置

    3. 推荐flashfxp.

      phpweb源码程序安装教程
      phpweb源码程序安装教程
      phpweb源码程序安装教程
      phpweb源码程序安装教程
    4. 输入域名,自动跳转到安装目录  比如 www.nuo.cn/install/直接点击傻瓜式的向导服务,到达最重要的一步,如图 

      这里分为

      1.数据库服务器(默认)

      2.数据库名称

      3.数据库用户

      4.数据库密码

      5.数据库表前缀(默认)

      phpweb源码程序安装教程
      phpweb源码程序安装教程
    5. 这里我们只需要填写2~3~4..2~3~4是我们空间自带的数据库.我们公司的空间一般是赠送数据库.mssql或mysql二选一.创建后.然后自动安装导入数据.安装成功.

      导入数据成功后.下一步.设置后台管理用户名密码.一般设置为默认.

      账号admin

      密码admin

      然后网站完成安装.

      重新登录.并能查看安装后网站.

      如何进入网站后台.

      浏览器输入域名+/admin即可.

      END

    注意事项

    • 域名解析需要生效后才可以访问
    • 空间中要绑定域名
    展开全文
  • 代码实现PHP web服务器下绝对路径到Web网址的转换 代码中用到几个系统变量或常量: 1. 路径中各目录分隔字符 DIRECTORY_SEPARATOR(常量),Windows下DIRECTORY_SEPARATOR是\\,Linux下是/ 。 2. 变量$_SERVER['...

    代码实现PHP web服务器下绝对路径到Web网址的转换


    代码中用到几个系统变量或常量:

    1. 路径中各目录分隔字符 DIRECTORY_SEPARATOR(常量),Windows下DIRECTORY_SEPARATOR是\\,Linux下是/ 。

    2. 变量$_SERVER['HTTP_HOST']可以返回Web服务器带端口的主机地址(比如 localhost:8080),$_SERVER['SERVER_NAME']可返回不带端口的主机地址。

    3. 常量__FILE__返回当前文件的绝对地址,而dirname(__FILE__)返回当前文件所在目录的绝对地址...


    另外,提一下变量$_SERVER['PHP_SELF']
    该变量返回当前执行脚本的文件名,与document root有关。例如,在地址为http://example.com/test.php/foo.bar 的脚本中使用$_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar


    代码1:

    文件名: path_test.php

    实现将web服务器下绝对路径(文件路径或目录的路径皆可)转换为Web网址...

    <?php
    // echo $_SERVER['SERVER_NAME'];
    echo $_SERVER['HTTP_HOST'].'<br/>';
    
    function Path2webURL($path)  // Absolute File path or Directory path to WebURL
    {
    	$wwwDir='C:/AppServ/www';
    	$path=str_replace(DIRECTORY_SEPARATOR, '/', $path); // 将DIRECTORY_SEPARATOR都替换为/,便于统一处理
    	$ServerDomain=$_SERVER['HTTP_HOST'];  // with port
    	$webURL='http://'.str_ireplace($wwwDir, $ServerDomain, $path);
    	return $webURL;
    }
    
    $test1='C:/AppServ/www/ccc';
    $test2=__FILE__;  // Windows下DIRECTORY_SEPARATOR是\\,Linux下是/
    echo $test2.'<br/>+++++<br/>';
    
    $test3=dirname(__FILE__);  // Windows下DIRECTORY_SEPARATOR是\\,Linux下是/
    echo $test3.'<br/>+++++<br/>';
    
    echo Path2webURL($test1).'<br/>------<br/>';
    echo Path2webURL($test2).'<br/>------<br/>';
    echo Path2webURL($test3).'<br/>------<br/>';
    ?>


    代码1中需要根据具体的操作系统去手动调整Windows或Linux下的目录(即:变量$wwwDir),改进一下,可以写出代码2,对Windows或Linux都通用...


    代码2:

    <?php
    // echo $_SERVER['SERVER_NAME'];
    echo $_SERVER['HTTP_HOST'].'<br/>';
    
    function Path2webURL($path)  // Absolute File path or Directory path to WebURL
    {
    	$wwwDir=array('C:/AppServ/www','/var/www');  // 分别设置Windows和Linux下www文件夹所在路径
    	$path=str_replace(DIRECTORY_SEPARATOR, '/', $path); // 将DIRECTORY_SEPARATOR都替换为/,便于统一处理
    	$ServerDomain=$_SERVER['HTTP_HOST'];  // with port
    	$webURL='http://'.str_ireplace($wwwDir, array($ServerDomain, $ServerDomain), $path);
    	return $webURL;
    }
    
    $test1='C:/AppServ/www/ccc';
    $test2=__FILE__;  // Windows下DIRECTORY_SEPARATOR是\\,Linux下是/
    echo $test2.'<br/>+++++<br/>';
    
    $test3=dirname(__FILE__);  // Windows下DIRECTORY_SEPARATOR是\\,Linux下是/
    echo $test3.'<br/>+++++<br/>';
    
    $test4='/var/www/ddd';
    
    echo Path2webURL($test1).'<br/>------<br/>';
    echo Path2webURL($test2).'<br/>------<br/>';
    echo Path2webURL($test3).'<br/>------<br/>';
    echo Path2webURL($test4).'<br/>------<br/>';
    ?>



    展开全文
  • php Web开发框架 Yii2 在 centos7.2 上安装 目录: php Web开发框架 Yii2 在 centos7.2 上安装 准备工作 php7 安装 nginx 安装 php7 配置 yii2 安装 参考: - Centos7 下安装 php 环境并且配置 Nginx ...

    php Web开发框架 Yii2 在 centos7.2 上安装

    目录:

    参考:
    - Centos7 下安装 php 环境并且配置 Nginx 支持 php-fpm 模块
    - Centos6 下部署 php 多版本共存
    - Yii Framework 2.0 权威指南 - 安装 Yii
    - How can i use iptables on centos 7?


    准备工作

    php7 安装

    • 由于以前安装有其他版本的 php,因此本教程采用多版本安装方式。安装位置(/usr/local/php7)

      $ sudo mkdir /usr/local/php7

    • 进入 php7 源码目录: /path/to/php-7.2.5/

      $ cd /path/to/php-7.2.5/

      $ ./configure –help

    > $ ./configure --prefix=/usr/local/php7 --with-config-file-scan-dir=/usr/local/php7/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip       --enable-cli --enable-pdo --disable-debug --disable-rpath --enable-sysvmsg --enable-calendar --enable-simplexml --with-apxs2 --enable-ftp --enable-exif --enable-json --with-ldap --enable-xmlwriter --enable-xmlreader

    $ make

    $ make test

    $ sudo make install

    • 查看版本
      $ /usr/local/php7/bin/php -version
      PHP 7.2.5 (cli) (built: May 15 2018 17:55:30) ( NTS )
      Copyright (c) 1997-2018 The PHP Group
      Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

    nginx 安装

    安装
    $ cd nginx-1.9.9/
    $ ./configure --help
    $ ./configure --prefix=/usr/local/nginx \
        --with-poll_module \
        --with-threads \
        --with-http_stub_status_module \
        --with-http_ssl_module
    $ make
    $ sudo make install
    测试,启动,强制关闭
    # /usr/local/nginx/sbin/nginx -t
    # /usr/local/nginx/sbin/nginx -s stop|quit|reopen|reload
    
    查看80端口占用进程
    # netstat -pan | grep 80
    
    强制关闭
    # pkill nginx
    
    配置文件
    # cat /usr/local/nginx/conf/nginx.conf

    php7 配置

    • php-fpm.conf

    php 7.2 的默认安装位置上面已经指定为/usr/local/php7,接下来配置相应的文件.

    # cp /path/to/php-7.2.5/php.ini-development /usr/local/php7/etc/php.ini
    # cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
    # cp /path/to/php-7.2.5/sapi/fpm/php-fpm /usr/local/bin
    
    # vi /usr/local/php7/etc/php.ini
    ...
    这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,
    从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为 0
    cgi.fix_pathinfo=0
    ...
    
    如果 web 用户不存在, 则首先应该创建web用户:
    
    # cat /etc/group | grep www-data
    
    # groupadd www-data
    # useradd -g www-data www-data
    # cat /etc/group | grep www-data
    www-data:x:1000:
    
    不要在php-fpm.conf中添加用户和组。查看 php-fpm.conf 最后一行:
    # cat /usr/local/php7/etc/php-fpm.conf
    ...
    include=/usr/local/php7/etc/php-fpm.d/*.conf
    
    # cd /usr/local/php7/etc/php-fpm.d/
    # ls
    www.conf.default
    # cp www.conf.default www.conf
    # vi www.conf
    找到下面的位置
        ; Unix user/group of processes
        ; Note: The user is mandatory. If the group is not set, the default user's group
        ;       will be used.
        user = nobody
        group = nobody
    
    将上面的值更改为:
        user = www-data
        group = www-data
    
    然后执行以下命令启动php-fpm服务:
    # /usr/local/bin/php-fpm
    
    启动完毕之后,php-fpm服务默认使用9000端口, 查看:
    # netstat -pan | grep 9000
    tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      3053/php-fpm: maste
    
    9000端口正常使用,说明php-fpm服务启动成功!
    
    • 配置 nginx 支持 php-fpm 模块

      编辑nginx配置文件, 主要修改 nginx.conf 的 server {} 配置块中的内容. 如下:

      # vi /usr/local/nginx/conf/nginx.conf
      

      完整的配置文件修改如下:

      ##### nginx.conf ####
      
      #user  nobody;
      user www-data www-data;
      
      worker_processes  1;
      
      #error_log  logs/error.log;
      #error_log  logs/error.log  notice;
      #error_log  logs/error.log  info;
      
      #pid        logs/nginx.pid;
      
      
      events {
          worker_connections  1024;
      }
      
      
      http {
          include       mime.types;
          default_type  application/octet-stream;
      
          #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
          #                  '$status $body_bytes_sent "$http_referer" '
          #                  '"$http_user_agent" "$http_x_forwarded_for"';
      
          #access_log  logs/access.log  main;
      
          sendfile        on;
          #tcp_nopush     on;
      
          #keepalive_timeout  0;
          keepalive_timeout  65;
      
          #gzip  on;
      
          server {
              listen       80;
              server_name  localhost;
      
              #charset koi8-r;
      
              #access_log  logs/host.access.log  main;
      
              location / {
                  root   html;
                  index  index.html index.htm index.php;
              }
      
              #error_page  404              /404.html;
      
              # redirect server error pages to the static page /50x.html
              #
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
      
              # deny accessing php files for the /assets directory
              location ~ ^/assets/.*\.php$ {
                  deny all;
              }
      
              # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
              #
              location ~ \.php$ {
                  root           html;
                  fastcgi_pass   127.0.0.1:9000;
                  fastcgi_index  index.php;
                  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 ~* /\. {
                  deny  all;
              }
          }
      
      
          # another virtual host using mix of IP-, name-, and port-based configuration
          #
          #server {
          #    listen       8000;
          #    listen       somename:8080;
          #    server_name  somename  alias  another.alias;
      
          #    location / {
          #        root   html;
          #        index  index.html index.htm;
          #    }
          #}
      
      
          # HTTPS server
          #
          #server {
          #    listen       443 ssl;
          #    server_name  localhost;
      
          #    ssl_certificate      cert.pem;
          #    ssl_certificate_key  cert.key;
      
          #    ssl_session_cache    shared:SSL:1m;
          #    ssl_session_timeout  5m;
      
          #    ssl_ciphers  HIGH:!aNULL:!MD5;
          #    ssl_prefer_server_ciphers  on;
      
          #    location / {
          #        root   html;
          #        index  index.html index.htm;
          #    }
          #}
      }
      

    这里面很多都是默认的,root是配置php程序放置的根目录,主要修改的就是fastcgi_param中的/scripts为$document_root

    修改完上面的,回到nginx.conf第一行,默认是#user nobody; 这里要去掉注释改为user www-data;或者user www-data www-data;表示nginx服务器的权限为www-data

    修改完这些保存并退出,然后重启nginx.

    • 启动和测试

      执行以下命令启动php-fpm服务:

      # /usr/local/bin/php-fpm
      

      执行以下命令启动nginx:

      # /usr/local/nginx/sbin/nginx
      

      接下来编辑一个测试的php程序,在nginx下的html目录下(/usr/local/nginx/html)创建test.php文件:

      <?php
          phpinfo();
      ?>
      

      浏览器浏览: http://localhost/test.php

    yii2 安装

    解压 yii-basic-app-2.0.15.tgz,将 basic 目录复制到 /usr/local/nginx/html/ 下。然后就可以用浏览器访问:

    http://localhost/basic/web

    接下来就应该看:

    [Yii Framework 2.0 权威指南 - 安装 Yii]

    展开全文
  • PHPweb虽然说是智能的,但是由于聚合的比较杂乱,修改起来不是很方便。现在总结一下PHPweb成品网站修改方法: (1)网站右上角联系我们,邮箱等修改路径:effect==>templates ==> tpl_sethomepage_cyrano.htm (2...
  • phpweb后台拿shell方法

    千次阅读 2016-11-19 08:44:17
    有的phpweb网站存在万能密码登录 帐号密码都输入:admin 'or '1'='1直接登录 登录后台管理系统后,然后把下面的文件保存为xxx.html,修改action,把www.xxx.com 改成你的目标网站地址。  然后...
  • php web项目环境搭建

    千次阅读 2015-04-21 14:51:49
    一、要创建一个php web项目,首先进行以下准备工作:  1、下载并安装mysql server,下载地址:http://dev.mysql.com/downloads/mysql/;  2、下载并安装Apache,下载地址:...
  • PHP Web开发(Windows)—— 环境搭建

    千次阅读 2019-04-09 12:22:49
    环境:Win10,PHP 7.1.27,Apache 2.4.38 x64,MySQL 8.0.15.0 因为每个软件的安装篇幅都很长,所以就分开写的,把对应的文章链接贴在这里。 PHP Web开发(Windows)—— Apache安装 ...PHP Web开发(Windows)...
  • phpweb后台拿shell简单方法

    千次阅读 2017-04-24 20:59:35
    关于phpweb后台拿shell简单方法。   首先登录后台admin.php   登录后台管理系统后,然后把下面的文件保存为xxx.html,修改action,把 www.xxx.com 改成你的目标网站地址。    代码文件...
  • [转]浅谈php web安全

    千次阅读 2012-09-27 13:18:40
    作者:phpben来源:http://www.phpben.com/?post=79 浅谈php web安全前言:首先,笔记不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记、细心总结文章,里面有些是我们phper不易发现或者说不重视...
  • 一款不错的PHP在线文件管理系统,PHP WEBFTP,挺好用,推荐使用 名字:kodexplorer 官方地址:http://www.kalcaddle.com/
  • Java与PHPweb开发比较

    千次阅读 2018-11-01 18:05:38
    Java和PHP作为web开发的2个主流语言,他们之间有什么不同呢?在项目开发时,我们应该怎么去做选择。 1.运行方式 1.1 PHP的运行方式 客户端发送http请求到nginx,nginx通过fastcgi与php-fpm进程通信。php-fpm执行...
  • 2020网鼎杯朱雀组WEB——NMAP&PHPWEB

    千次阅读 2020-05-18 19:30:58
    oG pd.phtml ' 这里使用“=”绕过文件中的php字符,使用“phtml”绕过对“php”文件后缀的检测,再次输入 没有提示其他黑名单信息,尝试访问我们构造的页面pd.phtml,构造shell 成功执行代码命令,获取flag PHPWEB ...
  • PHP Web Shell v1.0.1 Released!

    千次阅读 2004-12-26 11:00:00
    PHP Web Shell v1.0.1 说明文件 一、程序说明: 1.程序名称:PHP Web Shell 2.程序版本:v1.0.1 3.开发平台:WindowsXP professional + PHP 5.0.2 4.运行平台:Win32/Linux/Unix/BSD + PHP 4.3 以上等多种系统...
  • Ice是我基于Composer之上开发的PHPWeb开发的框架, 它不同于CI, ThinkPHP这样的框架. 首先, Ice只是一套框架, 它引入了composer做依赖关系, Ice提供了构建应用的标准, 但Ice和应用又是隔离的. 其次, Ice...
  • Zend Studio的PHP web page运行方式

    万次阅读 2009-10-01 22:05:00
    由于一个项目需要用PHP,既然项目还不是太小,我觉的那就找个IDE吧。毕竟实际项目会用到一些调试,用Editplus这样的文本工具...但是如果要用它的PHP web Page方式,就必须做一些配置了。由于之前已经安装了Apache、PHP
  • 概述 本文参加活动: 博客征文:云服务器使用初体验 通过本文学习,你将能够在IBM的云平台Bluemix上创建自己的PHP Web 应用程序,发布自己的PHP页面到云服务器上。Bluemix 是什么?IBM Bluemix 是开放式标准云...
  • http://localhost/打开错误原因之一,eclipse PHP Web Application没反应 解决方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 124,595
精华内容 49,838
关键字:

phpweb