PHP簡介

人們常說,PHP是世界上最美的語言,緣何PHP的魅力如此之大呢,今天來帶你揭開PHP神秘的面紗

PHP簡介

PHP是通用服務器端腳本編程語言,主要用于web開發實現動態web頁面,也是最早實現將腳本嵌入

HTML源碼文檔中的服務器端腳本語言之一。同時,PHP還提供了一個命令行接口,因此,其也可以

在大多數系統上作為一個獨立的shell來使用

官方網站:http://www.php.net/

封面

PHP 文件是什么?

PHP 文件可包含文本、HTML、JavaScript代碼和 PHP 代碼

PHP 代碼在服務器上執行,結果以純 HTML 形式返回給瀏覽器

PHP 文件的默認文件擴展名是 “.php”

 

PHP 能做什么?

PHP 可以生成動態頁面內容

PHP 可以創建、打開、讀取、寫入、關閉服務器上的文件

PHP 可以收集表單數據

PHP 可以發送和接收 cookies

PHP 可以添加、刪除、修改您的數據庫中的數據

PHP 可以限制用戶訪問您的網站上的一些頁面

PHP 可以加密數據

通過 PHP,您不再限于輸出 HTML。您可以輸出圖像、PDF 文件,甚至 Flash 電影。您還可以輸出任

意的文本,比如 XHTML 和 XML。

 

為什么使用 PHP?

PHP 可在不同的平臺上運行(Windows、Linux、Unix、Mac OS X 等)

PHP 與目前幾乎所有的正在被使用的服務器相兼容(Apache、IIS 等)

PHP 提供了廣泛的數據庫支持

PHP 是免費開源的

PHP 易于學習,并可高效地運行在服務器端

 

php語言格式

<?php

…php code…

?>

 

 

基于LINUX系統的PHP布署

php:腳本語言解釋器

配置文件:/etc/php.ini, /etc/php.d/*.ini

配置文件在php解釋器啟動時被讀取

對配置文件的修改生效方法

Modules:重啟httpd服務

FastCGI:重啟php-fpm服務

Modules配置格式:

/etc/php.ini配置文件格式:

[foo]:Section Header

directive = value

注釋符:較新的版本中,已經完全使用;進行注釋

#:純粹的注釋信息

;:用于注釋可啟用的directive

max_execution_time= 30 ? ? ? ?最長執行時間30s

memory_limit 128M ? ? ? ? ? ? ? ? 生產不夠,可調大

display_errors off ? ? ? ? ? ? ? ? ? ? ?調試使用,不要打開,否則可能暴露重要信息

display_startup_errors off ? ? ? 建議關閉

post_max_size 8M ? ? ? ? ? ? ? ? ? ?最大上傳數據大小,生產可能臨時要調大,比下面項要大

upload_max_filesize 2M ?? ? ? ? ?最大上傳文件,生產可能要調大

max_file_uploads = 20? ? ? ? ? ? ?同時上傳最多文件數

date.timezone =Asia/Shanghai 指定時區

short_open_tag=on ? ? ? ? ? ? ? ? ? 開啟短標簽,如<? phpinfo();?>

 

php.ini的核心配置選項文檔:

http://php.net/manual/zh/ini.core.php

php.ini配置選項列表:

http://php.net/manual/zh/ini.list.php

 

 

FastCGI配置格式:

配置文件:/etc/php.ini,/etc/php.d/*.ini

Module下,重啟Httpd服務

FastCGI模式下,重啟php-fpm服務

配置文件格式

配置文件格式:[foo]:Section Header

Directive=value

注釋符:# 純粹的注釋信息

; 用于注釋可啟動的指令

說明:在較新的版本中,已經完全使用”;”進行注釋

 

fcgi服務配置文件:/etc/php-fpm.conf, /etc/php-fpm.d/*.conf

連接池:

??? pm = static|dynamic

static:固定數量的子進程;pm.max_children

? dynamic:子進程數量以動態模式管理

???????? pm.max_children

???????? pm.start_servers

???????? pm.min_spare_servers

???????? pm.max_spare_servers

???????? pm.max_requests = 500

確保運行php-fpm進程的用戶對session目錄有讀寫權限

mkdir /var/lib/php/session

chown apache.apache /var/lib/php/session

 

配置fastcgi

(1)配置httpd,添加/etc/httpd/conf.d/fcgi.conf配置文件,內容類似

DirectoryIndex index.php

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

注意:在HTTPD服務器上必須啟用proxy_fcgi_module模塊,充當PHP客戶端

httpd –M |grep fcgi

cat /etc/httpd/conf.modules.d/00-proxy.conf

 

(2)虛擬主機配置

vim /etc/httpd/conf.d/vhosts.conf

DirectoryIndex index.php

<VirtualHost *:80>

??? ServerName www.b.net

??? DocumentRoot /apps/vhosts/b.net

??? ProxyRequests Off

??? ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/apps/vhosts/b.net/$1

??? <Directory “/apps/vhosts/b.net”>

???????? Options None

???????? AllowOverride None

???????? Require all granted

??? </Directory>

</VirtualHost>

 

php-mysql

Php連接數據庫三種方式:

1)使用mysql擴展連接數據庫(漸已淘汰)

2)使用mysqli擴展連接數據庫

3)使用pdo擴展連接數據庫(主流);支持mysql外的其他一些數據庫

 

測試代碼:

1)PHP使用mysql擴展連接數據庫的測試代碼:

vim /var/www/html/test.php

<?php

$conn = mysql_connect(‘mysql_host’,’mysql_username’,’mysql_password’);

if ($conn)

echo “OK”;

else

echo “Failure”;

#echo mysql_error();

mysql_close();

?>

連接成功返回OK,失敗則返回Failure

 

 

2)PHP用mysqli擴展連接數據庫的測試代碼:

vim /var/www/html/test.php

<?php

$mysqli=new mysqli(‘mysql_host’,’mysql_username’,’mysql_password’);

if(mysqli_connect_errno()){

echo “Failure”;

$mysqli=null;

exit;

}

echo “OK”;

$mysqli->close();

?>

連接成功返回OK,失敗則返回Failure

 

 

3)PHP使用pdo擴展連接數據庫的測試代碼1:

vim /var/www/html/test.php

<?php

$dsn=’mysql:host=localhost;dbname=mysql’;

$username=’root’;

$passwd=’centos’;

$dbh=new PDO($dsn,$username,$passwd);

var_dump($dbh);

?>

連接成功返回object(PDO)#1 (0) { } ,失敗則返回500狀態碼

 

PHP使用pdo擴展連接數據庫的測試代碼2:

vim /var/www/html/test.php

<?php

try {

$user=’root’;

$pass=’centos’;

$dbh = new PDO(‘mysql:host=localhost;dbname=mysql’, $user, $pass);

foreach($dbh->query(‘SELECT user,host from user’) as $row) {

print_r($row);

}

$dbh = null;

} catch (PDOException $e) {

print “Error!: ” . $e->getMessage() . “<br/>”;

die();

}

?>

成功返回:Array([user]=>root[0]=>root[host]=>127.0.0.1[1]=>127.0.0.1)…

失敗返回:Error!

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/101390

(0)
wangxczwangxcz
上一篇 2018-06-23 11:03
下一篇 2018-06-23 11:25

相關推薦

  • 用戶及用戶組管理

    簡要介紹用戶以及用戶組的一些命令

    Linux筆記 2018-04-04
  • 網絡管理。

    網絡管理: IEEE 802.3 (以太網)(物理層及數據聯絡層)wifiFDDI 城市網絡OSI 開放系統互聯,網絡國際ISO 國際標準化組織ATM 異步傳輸模式細軸網線 最大185m粗軸網線 最大500m普通網線 最大100m 單工:單向傳輸數據雙工:雙向傳輸數據全雙工:同時雙向半雙工:輪流雙向 沖突域:網橋可以隔離沖突域。廣播域:單播:unicast廣…

    Linux筆記 2018-05-13
  • Linux?安裝簡介

    因為自己對6版本不太熟悉,所以,整理梳理了整個安裝的流程,供大家參考使用。

    2018-07-23
  • 變量替換 字符串處理

    變量替換非空 空 不存在 Var=${Str-Expr} Str 空 Expr Var=${Str:-Expr} Str Expr Expr 不存在至stderrVar=${Str?Expr} Str 空 Expr(stderr) Var=${Str:?Expr} Str Expr(stderr) Expr(stderr) 不存在 被賦值Var=${Str=…

    Linux筆記 2018-07-15
  • 計算機的組成及功能(硬件及操作系統)

    主要從計算機的硬件和操作系統兩方面介紹了計算機的組成及功能

    2018-05-11
欧美性久久久久