php精简完全小结(linux/laravel篇)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php精简完全小结(linux/laravel篇)相关的知识,希望对你有一定的参考价值。

php官网:http://www.php.net
php版本:

查看:php -version
说明:None-Thread Safe就是非线程安全,在执行时不进行线程(thread)安全检查;Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式耗尽系统资源。
再来看PHP的两种执行方式:ISAPI和FastCGI。FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行 non-thread safe 的 PHP (PHP 的二进位档有两种包装方式:msi 、zip ,请下载 zip 套件)。而线程安全检查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。

php下载:

http://www.php.net/downloads.php;http://windows.php.net/download#php-7.1

php常用的扩展:

php-redis:下载URLhttps://pecl.php.net/package/redis

1、安装redis
下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
上传phpredis-2.2.4.tar.gz到/usr/local/src目录

cd /usr/local/src #进入软件包存放目录
tar zxvf phpredis-2.2.4.tar.gz #解压
cd phpredis-2.2.4 #进入安装目录
/usr/local/php/bin/phpize #用phpize生成configure配置文件
./configure –with-php-config=/usr/local/php/bin/php-config #配置
make #编译
make install #安装
安装完成之后,出现下面的安装路径
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
2、配置php支持

vi /usr/local/php/etc/php.ini #编辑配置文件,在最后一行添加以下内容
添加

extension=”redis.so”

:wq! #保存退出
3 重启服务

sudo service nginx restart
sudo /etc/init.d/php-fpm restart

 

php配置:
php.ini,在很多的一件安装环境里,php还回加载php.d里的配置文件,通常那是php的扩展文件。

php升级的方法:

下载新的版本,备份旧的php版本的目录,用新的版本整个目录覆盖旧版本目录,同时保留旧版本目录的php配置文件(php.cnf,php.ini),测试运行你的网站;

php变量定义:

$a;//定义变量$a

$a=”hello world!”;//定义变量并赋值

数组变量

$arr1=[“a”,”b”,”c”,”c”];//数组定义

$arr1[0]=”s”;

$arr2=array(“a”,”b”,”c”,”c”])//数组定义

键值对数组

$arr=[“key1″=>”value1″,”key2″=>”value2”];

数组编历,foreach速度最快:
$urls= array(‘aaa’,’bbb’,’ccc’,’ddd’);
foreach ($urls as $url){
echo “This Site url is $url! <br />”;
}
键值对数组遍历:
foreach($arr as$key=> $val){

echo $key.”=”.$val;
}

变量空值检查:

总结PHP中,”NULL” 和 “空” 是2个概念。

isset  主要用来判断变量是否被初始化过
empty  可以将值为 “假”、”空”、”0″、”NULL”、”未初始化” 的变量都判断为TRUE
is_null  仅把值为 “NULL” 的变量判断为TRUE
var == null  把值为 “假”、”空”、”0″、”NULL” 的变量都判断为TRUE
var === null  仅把值为 “NULL” 的变量判断为TRUE

所以我们在判断一个变量是否真正为”NULL”时,大多使用 is_null,从而避免”false”、”0″等值的干扰

变量的查看:

var_dump(变量);
print_r(变量)可以打印出复杂类型变量的值(如数组,对象)

php的运行环境:
一般有apache和nginx,建议使用nginx

php的nginx配置样例:

######################## default ############################
server {
listen 80;
server_name _;
access_log /data/wwwlogs/access_nginx.log combined;
root /data/wwwroot/default;
index index.html index.htm index.php;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
location ~ /\.ht {
deny all;
}
}

#################### vhost #############################

CI框架的nginx配置样例:

listen 80;
server_name www.xxx.com;
root /disk2/home/www;
index index.html index.php;
access_log /disk2/log/www.log;

location / {
index index.html index.php;
try_files $uri $uri/ /index.php?uri&args;
}

location ~ /.well-known {
allow all;
}

location ~* \.(ini|docx|doc|pem)$ {
deny all;
}

location /phpfpm_status {
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}

location ~ .*\.(php|php5)?$ {
#fastcgi_pass 127.0.0.1:9002;#windows

# fastcgi_pass unix:/dev/shm/php-fpm-index.sock;
# fastcgi_index index.php;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
# fastcgi_param DOCUMENT_ROOT /home/wwwroot/index$subdomain;
# fastcgi_param SCRIPT_FILENAME /home/wwwroot/index$subdomain$fastcgi_script_name;
# include fastcgi_params
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH-TARNSLATED /disk2/home/www$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME /disk2/home/www$fastcgi_script_name;
include fastcgi_params;
}

php的web开发框架:
yii,CI(codeigniter),laravel,symfony,thinkphp
建议选laravel。

php的信息查看:
在你的网站的根目录创建phpinfo.php:
<?php
echo phpinfo();//输出php
?>

php的$_GET,$_POST,$_SESSION,$_COOKIE

 

 

 

composer包管理器:
linux安装Composer
1、将composer.phar下载到项目中
使用curl -sS https://getcomposer.org/installer | php下载Composer 的二进制文件,是一个 PHAR 包(PHP 的归档)
2、可以通过 –install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):curl -sS https://getcomposer.org/installer | php — –install-dir=lumen
3、如果把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar。 在类Unix系统中,你甚至可以在使用时不加 php 前缀。可以执行这些命令让 composer 在你的系统中进行全局调用:
#mv composer.phar /usr/local/bin/composer
现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar。
4、检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表

linux 下的laravel安装:
composer global require “laravel/installer”
或者composer create-project laravel/laravel –prefer-dist yourprojectname
对了,你不能用root用户执行这个命令,你要useradd新创建一个用户,然后用这个用户登录,在执行这个命令!
提示,这个安装一开始没有反应,你好耐性等待。。。保持安装电脑的网络畅通,知道安装完成;
安装完成后,用ls -a ~/,也就是说,实际上生成了用户根目录下的隐藏文件夹:如home/webuser/.config/composer/vendor/bin(webuser为当前用户);
添加环境变量
vim /etc/profile

添加如下的内容
PATH=$PATH:~/.config/composer/vendor/bin
PATH=$PATH:~/.composer/vendor/bin
保存esc键,输入wq!
使文件生效:source /etc/profile
用laravel创建项目之前,修改php.ini配置:
在php.ini里查找“disable_functions”,把 proc_get_status,proc_open删除

用laravel创建项目:
命令:
laravel new web3
等待下载安装完成即可!
生成的web3项目文件在路径~/.config/composer/vendor/laravel/下,注意”~/”是用户的根目录,你如果不是用安装laravel的用户账号登录,那就是”/home/[laravel安装用户名]/”,
把它拷贝到/home/web/web3
然后配置nginx.conf样例:

server {
listen 8011;
server_name 192.168.0.10;
set $root_path ‘/home/web/web3/public’;
root $root_path;
index index.php index.html index.htm;

access_log logs/web3-access.log main;
error_log logs/web3-error.log;

try_files $uri $uri/ @rewrite;

# location @rewrite {
# rewrite ^/(.*)$ /index.php?_url=/$1;
# }

location ~ \.php {

# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/dev/shm/php-fpm-index.sock;
fastcgi_index /index.php;

fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH-TARNSLATED $root_path$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
#配置下面信息,使网站能够访问响应目录,防止出现“open_basedir”的相关错误
fastcgi_param PHP_ADMIN_VALUE open_basedir=$document_root/:$root_path:/home/web/web3/;
include fastcgi_params;

}

location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
root $root_path;
location ~ /\.ht {
deny all;
}
}
}

用laravel5.4写个welcome页面:
首先创建路由:/routes/web.php添加如下代码:
Route::get(‘/welcome’,’[email protected]’);
创建路由器:php artisan make:controller WelcomeController
然后修改:/app/Http/Controllers/WelcomeController.php

public function index()
{

$str = “Hello , this is luxing first laravel page! Welcome!” ;//前端显示
# echo $str;
return view(‘welcome.index’,compact(‘str’));

}
然后创建view,/resources/views/welcome/index.blade.php,内容:

<!doctype html>
<html>
<head>
<title>welcome</title>
<body>

<p style=”width:100%;height:100%; text-align:center; padding-top:150px;”>
this is str from controller:
<br/>
{{$str}}
<p>
</body>
</html>

 

以上是关于php精简完全小结(linux/laravel篇)的主要内容,如果未能解决你的问题,请参考以下文章

PHPSession-完全PHP5之session篇

win7系统精简版怎么恢复完全版

精简版WINDOWS7和完全版有啥区别

国外比较好的几个的Php开源建站平台小结

前端js精简面试题(个人理解篇)

前端js精简面试题(个人理解篇)