1. 程式人生 > >php精簡完全小結(linux/laravel篇)

php精簡完全小結(linux/laravel篇)

functions .html swf nicolas doc 建議 沒有反應 指定 啟動

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篇)