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. Hbase单机安装部署

    Hbase单机安装部署 http://blogxinxiucan.sh1.newtouch.com/2017/07/27/Hbase单机安装部署/ 下载Hbase Hbase官网下载地址 http:/ ...

  2. HTMl课堂随笔

    html: 1.超文本标记语言(Hyper Text Markup Lan) 2.不是一种编程语言,而是一种标记语言(Markup Language) 3.标记语言是一套标记标签(Markup Tag ...

  3. hadoop入门,跑出第一个WordCount

    1.环境准备 下载:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz 解压:解压后,修改et ...

  4. CentOS安装配置MySql数据库

    CentOS版本7.2,MySql版本5.7 1.下载MySql安装源     wget https://dev.mysql.com/get/mysql57-community-release-el7 ...

  5. Nginx配置抵御DDOS或CC攻击

    防攻击的思路我们都明白,比如限制IP啊,过滤攻击字符串啊,识别攻击指纹啦.可是要如何去实现它呢?用守护脚本吗?用PHP在外面包一层过滤?还是直接加防火墙吗?这些都是防御手段.不过本文将要介绍的是直接通 ...

  6. 如何快速查看github代码库中第一次commit的记录

    发现一个别人推荐的代码库用来学习源码, star星还不少,别人推荐从第一次commit开始阅读,于是试着去找commits的第一次 问题来了,这个代码库commits7855次,点击进入commits ...

  7. 5. Leetcode 448. Find All Numbers Disappeared in an Array

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  8. 1. 数字根(Digital Root)

    数字根(Digital Root)就是把一个自然数的各位数字相加,再将所得数的各位数字相加,直到所得数为一位数字为止.而这个一位数便是原来数字的数字根.例如: 198的数字根为9(1+9+8=18,1 ...

  9. 用java调用.net的wcf其实还是很简单的

      前些天和我们的一个邮件服务商对接,双方需要进行一些通讯,对方是java团队,而作为.net团队的我们,只能公布出去的是一个wcf的basicbinding,想不 到问题来了,对方不知道怎么去调用这 ...

  10. akoj-1272-字母统计

    字母统计 Time Limit:1000MS  Memory Limit:65536K Total Submit:72 Accepted:48 Description 现在给你一个由小写字母组成字符串 ...