PHP基础理解+laravel虚拟主机部署 deploy

公司的前辈说的很对,基础不牢……光用框架并没有掌握基础。不过checking项目说要用框架才去用的,哎

http://phpbestpractices.justjavac.com/

  • 应该使用 PDO 的预处理语句函数来帮助防范 SQL 注入攻击。 使用函数 bindValue 来确保你的 SQL 免于一级 SQL 注入攻击。 

<?php
/* 通过绑定的 PHP 变量执行一条预处理语句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>
  • 命名空间(英语:Namespace,作用域的一种特殊的抽象,它包含了处于该作用域内的标识符

  • 使用 === 操作符来检测 null 和布尔 false 。非宽松类型检测。

  • MVC:文件加载,这个文章讲的非常详细,稍微有点了解了分model、controller、view的的实现:http://www.cnblogs.com/lazycat-cz/p/4279927.html

  • .htaccess(hypertext access)directory-level configuration file supported by several web servers分布式配置文件( .htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有root权限的情况下。)

        伪静态设计有关:http://www.douban.com/note/98028752/

    突然觉得我部署laravel重定向有疑问就是跟这个有关,应该是Apache重写模块的关系,但是虚拟主机很麻烦……上哪儿改去。

  •     ASCII、ANSI、Unicode、UTF-8 的差別:link

安全方面:PHP常规安全总结:http://www.phpthinking.com/archives/575

可怕的代码注入方式: http://www.phpthinking.com/archives/299

  • shell注入 SQL注入

  • XSS(Cross-site scripting): htmlspecialchars()   跨站脚本攻击

  •  CSRF(Cross-site request forgery, also known as one-click attack or session riding。

        跨站请求伪造:防范,<input type=”hidden” name=”hash” value=”<?=$hash;?>”>然后服务端验证

laravel 创建自己的类库:

http://yansu.org/2014/12/06/ioc-and-facade-in-laravel.html

总结
所以有了控制反转(Inversion of Control)和门面模式(Facade),实际还有 服务提供器(Service Providers)和别名(Alias),我们创建自己的类库和扩展 Laravel 都会方便很多。
这里总结一下创建自己类库的方法:
在 app/library/MyFoo 下创建类 MyFoo.php
在 app/library/MyFoo/providers 下创建 MyFooServiceProvider.php
在 app/library/MyFoo/facades 下创建 MyFooFacade.php
在 app/config/app.php 中添加 providers 和 aliases

laravel每次都需要自己启动服务器:php artisan serve,没有用Apache,据说是php内部自带的。

PHP 5.4 内置web服务器:link

多环境下Apache服务器无法启动: link 使用命令netstat -ano 来查看端口的占用情况。

部署第第一步,change your php version!

cpanel总是显示User not in cagefs

这里我联系了主机商设置了。

一直不明白不用php artisan serve要怎么启动laravel,一天下来,各种搜,各种修改hosts,httpd.conf和.htaccess,然后最后又弄到去修改vhosts虚拟主机,连locahost都弄到访问不了还一片纠结。

一路下来:

服务器报错:Forbidden You don't have permission to access / on this server”

                    404not found

laravel报错:Sorry, the page you are looking for could not be found.

似乎还有 Internal Server Error类似的


修改的httpd.conf:

1.配置网站根目录

DocumentRoot "c:/wamp/www/laravel/snsTest/public"

2.启动Rewrite模块

LoadModule rewrite_module modules/mod_rewrite.so

3.directory

 AllowOverride All

这样直接访问localhost就是网站了,跟我的初衷有点……但是至少能用了。

突然也想到每次启动php内置的服务器都是需要cd到项目的文件夹的,不过也并没有到public中,只是到了项目的根目录下。

写着写着就又发现一个可以不要public的方法!:link

在根目录下新建.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

然后bingo!

虚拟主机部署成功!在cpanel下新建.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ snstest/public/$1 [L]
</IfModule>

然后直接域名可访问public_html/snstest,好感动……我去,赶紧导入数据库,登录成功!

但是进入用户主页又出错了……不得已开了APP_DEBUG=true,对了这里APP_ENV是production,一直在思考和local对应是什么,幸好搜到了不然肯定想不出来……

(话说似乎很多程序猿blog都是用的github,风格好像,比如:http://huifeng.me/,第一次看到时觉得好好看,但是连续看到几个就orz)

发现了漫迷程序猿blog,mark先:https://www.yvanhom.com/author/yvanhom/

话说自己也想另外弄个blog了,oschina虽然挺喜欢但是敏感字真的烦人,感觉设置过头了,逼的我各种中英混杂才能说完一句话……

reffer: putty使用教程    实现putty基于密钥的安全登录

想要用SSH远程登录虚拟服务器,总是失败。显示connection time out,因为擅自把端口改成了3306……傻

用cpanel的SSH访问功能,原来自带有id_dsa的一对秘钥,然后删掉,新生成了一对并设置了passphrase,进入private key然后输入passphrase得到ppk文件,打开putty设置好ssh/auth,然而……connection refused!

想起public key还没有authorize,去cpanel设置了依然refused……

你可能感兴趣的:(PHP基础理解+laravel虚拟主机部署 deploy)