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’,’WelcomeController@index’);
创建路由器: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篇)的更多相关文章

  1. 面试小结之Elasticsearch篇(转)

    最近面试一些公司,被问到的关于Elasticsearch和搜索引擎相关的问题,以及自己总结的回答. Elasticsearch是如何实现Master选举的? Elasticsearch的选主是ZenD ...

  2. 运维利器:钉钉机器人脚本告警(Linux Python 篇)

    写在前面的话 在前面的博客中已经具体提到了如何获取对的机器人的 Token 等操作,不清楚的可以参考之前写的 [运维利器:钉钉机器人脚本告警(Linux Shell 篇)]这篇博客的前部分. 本文主要 ...

  3. 不就是抽个血吗,至于么-jQuery,Linux完结篇

    hi 趁着周一去抽血化验,真开心...下午报告才出来,不过早上来了就开始各种晕菜,叫错名字,说错话.....至于么.. 还有在教研室的30天就可以肥家了,凯森凯森.今天不想干活(哪天想干过我就问问), ...

  4. LNMP平台搭建---Linux系统安装篇

    在互联网网站开发领域,有一个名词,大家一定不陌生,那就是LAMP,经典的Web服务器环境,由Linux+Apache+MySQL+PHP组成,,后来,一个名叫Nginx的Web服务器开源出来了,因其更 ...

  5. Linux入门篇(一)——文件

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  6. Linux入门篇(四)——Vim的使用与Bash

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  7. Linux入门篇(二)——文件

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  8. Linux入门篇(三)——文件与目录

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  9. ARM Linux驱动篇 学习温度传感器ds18b20的驱动编写过程

    ARM Linux驱动篇 学习温度传感器ds18b20的驱动编写过程 原文地址:http://www.cnblogs.com/NickQ/p/9026545.html 一.开发板与ds18b20的入门 ...

随机推荐

  1. Bean 的生命周期 之 后处理Bean

    这里先把Bean 的生命周期总结一下,然后引出后处理Bean 首先,Bean 的生命周期总共有11步: 1.instantiate bean对象实例化 2.populate properties 封装 ...

  2. Scrapy常用命令行工具

    查看所有命令 scrapy -h 查看帮助信息 scapy --help 查看版本信息 (venv)ql@ql:~$ scrapy version Scrapy 1.1.2 (venv)ql@ql:~ ...

  3. 学生问的一道javascript面试题[来自腾讯]

    function Parent() { this.a = 1; this.b = [1, 2, this.a]; this.c = { demo: 5 }; this.show = function ...

  4. LoadRunner入门(二)

    三.设计场景 1.打开Controller 2.选择运行的脚本 3.场景设置 3.1修改场景模式 点击scenario-convert- 修改场景百分比模式 (1)Group Name:脚本名称 (2 ...

  5. css中的几个小tip(二)

    margin的塌陷现象 (一)在标准文档流中, 垂直方向存在margin的塌陷现象 先上段代码: <style type="text/css"> .box{ width ...

  6. numastat的理解

    numa的统计数据及理解如下, [root@localhost kernel]# numastat                     node0           node1numa_hit ...

  7. NYOJ 57 6174问题

    6174问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替 ...

  8. mybatis 详解(九)------ 一级缓存、二级缓存

    上一章节,我们讲解了通过mybatis的懒加载来提高查询效率,那么除了懒加载,还有什么方法能提高查询效率呢?这就是我们本章讲的缓存. mybatis 为我们提供了一级缓存和二级缓存,可以通过下图来理解 ...

  9. jQuery之jquery.lazyload.js插件用法

    研究背景:网站中如果图片过多,就会因为加载图片而等待很长时间,此时我们就用到图片延时加载插件jquery.lazyload.js,这个插件可以让我们在向下滚动的时候加载图片.让网页首屏尽可能快的加载进 ...

  10. Ubuntu apt-get update 失败

    apt-get碰上了"fetch http://--失败", 自带源在国内连接性不好. 解决:改用"阿里云Ubuntu源": https://www.yuren ...