php官網:http://www.php.net
php版本: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。css
php下載:html
http://www.php.net/downloads.php;http://windows.php.net/download#php-7.1前端
php經常使用的擴展:linux
php-redis:下載URLhttps://pecl.php.net/package/redisnginx
一、安裝redis
下載:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
上傳phpredis-2.2.4.tar.gz到/usr/local/src目錄laravel
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/
二、配置php支持git
vi /usr/local/php/etc/php.ini #編輯配置文件,在最後一行添加如下內容
添加github
extension=」redis.so」web
: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;
}
}
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
一、將composer.phar下載到項目中
使用curl -sS https://getcomposer.org/installer | php下載Composer 的二進制文件,是一個 PHAR 包(PHP 的歸檔)
二、能夠經過 –install-dir 選項指定 Composer 的安裝目錄(它能夠是一個絕對或相對路徑):curl -sS https://getcomposer.org/installer | php — –install-dir=lumen
三、若是把composer.phar放在系統的 PATH 目錄中,就能在全局訪問composer.phar。 在類Unix系統中,你甚至能夠在使用時不加 php 前綴。能夠執行這些命令讓 composer 在你的系統中進行全局調用:
#mv composer.phar /usr/local/bin/composer
如今只須要運行 composer 命令就能夠使用 Composer 而不須要輸入 php composer.phar。
四、檢查 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>