一.LAMP介紹 ?
(1)LAM(M)P:
L: linux
A: apache (httpd)
M: mysql, mariadb
M:memcached
P: php, perl, python ?
WEB資源類型:
靜態資源:原始形式與響應內容一致
動態資源:原始形式通常為程序文件,需要在服務器端執 行之后,將執行結果返回給客戶端 ?
Web相關語言 客戶端技術: javascript,html 服務器端技術:php, jsp,python
(2)CGI:Common Gateway Interface
可以讓一個客戶端,從網頁瀏覽器通過http服務器向執行在 網絡服務器上的程序傳輸數據;
CGI描述了客戶端和服務器程 序之間傳輸的一種標準 ?
程序=指令+數據
指令:代碼文件
數據:數據存儲系統、文件 ?
請求流程: Client -- (httpd) --> httpd -- (cgi) --> application server (program file) -- (mysql) --> mysql ?
php: 腳本編程語言、嵌入到html中的嵌入式web程序語言 基于zend編譯成opcode(二進制格式的字節碼,重復運行,可 省略編譯環境)
(3)LAMP工作原理
image.png
工作流程說明:
- 當客戶端請求的資源是靜態資源時,web服務器會將靜態資源直接返回客戶端
- 當客戶端請求的資源是動態資源時,httpd的php會進行相應的動態資源運算,當該過程還需要數據庫的運算時,php還要連接數據庫獲取數據并進行推算,運算的結果會通過web服務器將動態資源轉化為靜態資源返回客戶端
二.PHP簡介
(1) PHP是通用服務器端腳本編程語言,主要用于web開發實現動態web頁面,也是最 早實現將腳本嵌入HTML源碼文檔中的服務器端腳本語言之一。同時,php還提供 了一個命令行接口,因此,其也可以在大多數系統上作為一個獨立的shell來使用
(2)PHP Zend Engine——開源的、PHP腳本語言的解釋器
作用:為PHP提供了內存和資源管理的功能以及其它的一些標準服務 ,其高性能、可靠性和可擴展性在促進PHP成為一種流行的語 言方面發揮了重要作用
(3)Zend Engine的出現將PHP代碼的處理過程分成了兩個階段
首先是分析PHP代碼并將其轉換為稱作Zend opcode的二進制 格式(類似Java的字節碼),并將其存儲于內存中;
第二階段 是使用Zend Engine去執行這些轉換后的Opcode
(4)PHP的Opcode
?Opcode是一種PHP腳本編譯后的中間語言,類似于Java的 ByteCode,或者.NET的MSL。PHP執行PHP腳本代碼一般會經 過如下4個步驟(確切的來說,應該是PHP的語言引擎Zend)
總結來說就是經過了掃描-->分析-->編譯-->執行了這四個過程
(5)php的配置文件
1.配置文件:/etc/php.ini, /etc/php.d/*.ini
image.png
對php配置文件修改后的重啟服務有兩種方法
基于Modules: 重啟httpd服務即可
基于FastCGI:重啟php-fpm服務
注釋符:較新的版本中,已經完全使用;進行注釋 #:純粹的注釋信息 ;:用于注釋可啟用的directive
2.php中常見的設置
max_execution_time= 30 最長執行時間30s ?
image.png
memory_limit 128M 生產不夠,可調大
?image.png
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語言腳本的練習
cd /var/www/html中,在該目錄下編輯a.php和b.php腳本
vim a.php
1 <h1>
2 <?php echo "hello world!"?>
3 </h1>
4
image.png
vim b.php
1 <h1>
2 <?php
3 echo "hello php2!";
4 phpinfo();
5 ?>
6 </h1>
image.png
修改b.php
1 <h1>
2 <?php
3 echo "hello php2!";
4 echo date ("Y/m/d h:i:s");——顯示時間
5 phpinfo();
6 ?>
7 </h1>
image.png
vim /etc/php.ini
image.png
重啟服務:systemctl restart httpd
image.png
也可以將index.html改為index.php,將index.php設為默認主站點
cd /var/www/html
cp b.php index.php
vim /etc/httpd/conf/httpd.conf
image.png
image.png
三.LAMP
(1)LAMP ?
httpd:接收用戶的web請求;靜態資源則直接響應;動態資源 為php腳本,對此類資源的請求將交由php來運行 ?
php:運行php程序 ?
MariaDB:數據管理系統 ?
http與php結合的方式
CGI
FastCGI
modules (將php編譯成為httpd的模塊,默認方式)
MPM:
prefork: libphp5.so
event, worker: libphp5-zts.so
(2)LAMP的安裝
CentOS 7: ?
Modules:httpd, php, php-mysql, mariadb-server ?
FastCGI:httpd, php-fpm, php-mysql, mariadbserver ?
systemctl start httpd.service systemctl start mariadb.service
CentOS 6: ?
Modules:httpd, php, php-mysql, mysql-server ?
FastCGI:默認不支持
service httpd start service mysqld start
注意:要使用prefork模型
(3)Php使用mysql擴展連接數據庫
實現過程:以centos7,centos6最小化安裝兩臺主機為實驗主機
在centos6(最小化安裝)中,通過yum install 安裝mysql和mysql-server
開啟mysql服務,進行編輯創建新的數據庫
mysql> create database testdb;
mysql> grant all on testdb.* to testuser@'192.168.136.%' identified by 'centos';——授權并創建用戶和設置密碼
在centos7中,安裝php-mysql。并vim /var/www/html/b.php
1 <h1>
2 <?php
3 $conn = mysql_connect('192.168.136.173','testuser','centos');
4 if ($conn)
5 echo "OK";
6 else echo "Failure";
7 mysql_close();
8 echo date ("Y/m/d h:i:s");
9 phpinfo();
10 ?>
11 </h1>
image.png
方法二:Php使用mysqli擴展連接數據庫的測試代碼
<?php
$mysqli=new mysqli("mysqlserver",“username",“password");
if(mysqli_connect_errno()){
echo "連接數據庫失敗!";
$mysqli=null; exit; }
echo "連接數據庫成功!";
$mysqli->close();
?>
image.png
四.LAMP的應用
PhpMyAdmin是一個以PHP為基礎,以Web-Base方式架構在網站 主機上的MySQL的數據庫管理工具,讓管理者可用Web接口管理 MySQL數據庫 ?
WordPress是一種使用PHP語言開發的博客平臺,用戶可以在支持 PHP和MySQL數據庫的服務器上架設屬于自己的網站。也可把 WordPress當作一個內容管理系統(CMS)來使用
1.部署phpMyadmin
在官網上www.phpmyadmin.net下載 phpMyAdmin-4.0.10.20-all-languages.zip
cd /app 執行rz命令
在/var/www/html/進行解壓
unzip /app/phpMyAdmin-4.0.10.20-all-languages.zip
創建軟鏈接 ln -s phpMyAdmin-4.0.10.20-all-languages/ pma
進入pma
cp config.sample.inc.php config.inc.php
vim config.inc.php
image.png
安裝php-mbstring,重啟服務
image.png
進行登錄后可以管理本機的數據庫
image.png
2.在web端創建數據庫
image.png
image.png
創建新的用戶
image.png
設置用戶用戶名和密碼,設置成功后點擊執行
image.png
設置權限,進行授權
選擇wpdb數據庫,選擇全選,點擊執行
image.png
image.png
進行測試實驗image.png
3.設置wordpress
官網下載:https://cn.wordpress.org/
cd /app
rz
tar xvf wordpress-4.8.1-zh_CN.tar.gz -C /var/www/html
cd /var/www/html
ln -s wordpress/ blog
cd wordpress/
vim wp-config-sample.php
顯示無法寫入,可以手動創建文件,并將內容復制進去,或是修改權限來實現
在 /var/www/html中設置
setfacl -R -m u:apache:rwx wordpress/*
setfacl -R -m u:apache:rwx wordpress/
或者 cp wp-config-sample.php wp-config.php
vim wp-config.php
將數據庫名稱,數據庫用戶名和連接的主機名,密碼進行修改
設置成功
進行安裝
設置站點名稱和用戶名,密碼
成功后,修改權限
在web端登陸訪問image.png
image.png
image.png