2017 10-09 LAMP的應用

一.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

工作流程說明:

  1. 當客戶端請求的資源是靜態資源時,web服務器會將靜態資源直接返回客戶端
  2. 當客戶端請求的資源是動態資源時,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

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

image.png

顯示無法寫入,可以手動創建文件,并將內容復制進去,或是修改權限來實現
image.png

在 /var/www/html中設置
setfacl -R -m u:apache:rwx wordpress/*
setfacl -R -m u:apache:rwx wordpress/
image.png

或者 cp wp-config-sample.php wp-config.php
vim wp-config.php
將數據庫名稱,數據庫用戶名和連接的主機名,密碼進行修改
設置成功
進行安裝
設置站點名稱和用戶名,密碼
image.png

成功后,修改權限

在web端登陸訪問
image.png

image.png

image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容