Lmap

#實現LAMP架構php

1. LAMP介紹

在這裏插入圖片描述

  • 什麼是LAM(M)P
    一套開源組合,用來構建應用程序服務器css

    1. L:linux
    2. A:apache (httpd)
      承載客戶端鏈接,處理靜態資源,經過客戶端適配器轉發動態資源至後端服務器
    3. M: mysql, mariadb
      數據庫選擇,與編程語言沒有關係,與程序員解決方案有關係
    4. (M):memcached
    5. P:php, perl, python
      程序運行所須要的環境
  • 數據分類html

    1. 非機構化數據
      數據結構不規則或不完整,沒有預約義的數據模型,不方便用數據庫二維邏輯表來表現的數據
    2. 結構化數據
      可使用關係型數據庫表示和存儲,表現爲二維形式的數據。通常特色是:數據以行爲單位,一行數據表示一個實體的信息,每一行數據的屬性是相同的
    3. 半結構化數據
      半結構化數據是結構化數據的一種形式,它並不符合關係型數據庫或其餘數據表的形式關聯起來的數據模型結構,但包含相關標記,用來分隔語義元素以及對記錄和字段進行分層
  • WEB資源類型前端

    1. 靜態資源
      原始形式與響應內容一致,在客戶端瀏覽器執行
    2. 動態資源
      原始形式一般爲程序文件,須要在服務器端執行以後,將執行結果返回給客戶端,客戶端與服務器端看到的源碼不一樣
  • httpd怎麼處理動態資源python

    1. httpd只是一個純粹的靜態http協議,所能完成的工做爲分析用戶請求報文,理解用戶請求資源,根據本地的路徑映射基於本地磁盤加載內容,將內容自己封裝爲一個響應報文,併發還給客戶端
    2. 咱們不少時候指望web程序經過MIME識別出用戶請求類型後,將執行結果返回給用戶,而不是請求的內容,這就須要經過適配機制(例如CGI),將用戶的動態資源請求,轉發到後端服務器(例如php),將客戶端請求執行後以數據流的形式,經過web服務器響應給用戶
  • CGI:Common Gateway Interface(通用網關接口)
    可讓一個客戶端,從網頁瀏覽器經過http服務器向執行在網絡服務器上的程序傳輸數據;CGI描述了客戶端和服務器程序之間傳輸的一種標準mysql

    1. 請求流程:
      Client – (httpd) --> httpd – (cgi) --> application server (program file) – (mysql) --> mysql
      1. 客戶端發送一個請求訪問動態頁面,經過http協議訪問網站
      2. httpd服務器不能處理動態資源,經過cgi協議,發送給cgi應用程序
      3. cgi應用程序執行後,經過mysql調用數據,再經過httpd將結果返回給客戶端
    2. FastCGI
      早期CGI與web服務是在同一臺主機上的,web服務器承載大量的用戶請求服務於靜態資源,同時還須要調用另外一個組件來執行動態資源,生成結果,給單臺服務器帶來巨大壓力
      FastCGI,經過套接字來完成先後端的分離,前端服務器經過反向代理的方式與後端服務器通訊,當動態文件數據量較大時,一般不會放在本地的文件中,爲了加速較大量數據的解鎖,須要設置專業的數據存儲系統,
      1. 不須要文件自身作處理,只須要經過API調對方的服務接口
      2. 剝離數據與文件的關係,單獨存儲
  • php
    PHP是通用服務器端腳本編程語言,其主要用於web開發以實現動態web頁面,它也是最先實現將腳本嵌入HTML源碼文檔中的服務器端腳本語言之一。同時,php還提供了一個命令行接口,所以,其也能夠在大多數系統上做爲一個獨立的shell來使用,意味着php能夠在其交互式窗口直接運行linux

    1. 官方網站
      官網:http://www.php.net/
    2. Zend Engine
      開源的、PHP腳本語言的解釋器,將PHP代碼的處理過程分紅了兩個階段
      1. 分析PHP代碼並將其轉換爲稱做Zend opcode的二進制格式opcode(相似Java的字節碼),並將其存儲於內存中
      2. 使用Zend Engine去執行這些轉換後的Opcode
    3. php的加速器
      基於PHP的特殊擴展機制如opcode緩存擴展也能夠將opcode緩存於php的共享內存中,從而可讓同一段代碼的後續重複執行時跳過編譯階段以提升性能。這些加速器並不是真正提升了opcode的運行速度,而僅是經過分析opcode後並將它們從新排列以達到快速執行的目的
      1. APC (Alternative PHP Cache)
        遵循PHP License的開源框架,PHP opcode緩存加速器,目前的版本不適用於PHP 5.4
        項目地址:http://pecl.php.net/package/APC
      2. eAccelerator
        源於Turck MMCache,早期的版本包含了一個PHP encoder和PHP loader,目前encoder已經不在支持。
        項目地址: http://eaccelerator.net/
      3. XCache
        快速並且穩定的PHP opcode緩存,通過嚴格測試且被大量用於生產環境,收錄EPEL源
        項目地址:http://xcache.lighttpd.net/
      4. Zend Optimizer和Zend Guard Loader
        Zend Optimizer並不是一個opcode加速器,它是由Zend Technologies爲PHP5.2及之前的版本提供的一個免費、閉源的PHP擴展,其可以運行由Zend Guard生成的加密的PHP代碼或模糊代碼。 而Zend Guard Loader則是專爲PHP5.3提供的相似於Zend Optimizer功能的擴展
        項目地址:http://www.zend.com/en/products/guard/runtime-decoders
      5. NuSphere PhpExpress
        NuSphere的一款開源PHP加速器,它支持裝載經過NuSphere PHP Encoder編碼的PHP程序文件,並可以實現對常規PHP文件的執行加速。
        項目地址:http://www.nusphere.com/products/phpexpress.htm

2. 在httpd中使用php的方法

  • httpd+php結合的方式:程序員

    1. Modules:將php編譯成依附於httpd服務的子模塊,處理動態資源時,生成子進程處理,配置文件生效須要重啓httpd服務
      1. 缺點
        每啓動一個httpd進程就會裝載一次php模塊,不管是否使用
      2. 啓動
        配置文件生效須要重啓httpd服務
    2. FastCGI:PHP以獨立的服務器使用(fastcgi server)運行,用fpm實現,php自己只是解釋器,配合fpm,讓php以守護進程的方式運行,監聽在某個套接字上,接收前端的httpd的請求
      1. 運行過程
        請求資源先發送給httpd,經過httpd內部的fastcgi客戶端模塊,經過此模塊可以做爲客戶端去請求fastcgi的服務端(fpm運行的php server),一般爲tcp協議的9000端口
      2. 啓動
        配置文件生效須要重啓php-fpm服務
        systemctl start php-fpm
        php配置
      3. 版本要求
        1. CentOS 6:須要編譯安裝httpd-2.4, php-5.3.3+
          PHP-5.3.2以前:默認不支持fpm機制;須要自行打補丁並編譯安裝
          httpd-2.2:默認不支持fcgi協議,須要自行編譯此模塊
        2. CentOS 7:
          httpd-2.4:rpm包默認編譯支持fcgi模塊
          php-fpm包:專用於將php運行於fpm模式
      4. 模塊要求
        在HTTPD服務器上必須啓用proxy_fcgi_module模塊,充當PHP客戶端,查看方式:
        1. httpd –M |grep fcgi
        2. cat /etc/httpd/conf.modules.d/00-proxy.conf
  • 在LAMP中設計的PHP程序web

    1. php-mysql
      讓mysql支持php解釋器
    2. php
      php解釋器主程序包,包含向Apache HTTP服務器添加php解釋器支持的模塊
    3. php-fpm
      (FastCGI Process Manager)是PHP FastCGI的另外一種備選方案,具備一些額外的特性,對任何規模的站點都有用,特別是比較繁忙的站點
  • php通用配置文件
    配置文件在php解釋器啓動時被讀取正則表達式

    1. 主配置文件
      /etc/php.ini
    2. 子配置文件
      /etc/php.d/*.ini
    3. 配置文件來源:安裝php或php-fpm都會經過依賴關係安裝php-common
             
             
             
             
      • 1
      • 2
      [root@hai7-6 ~]$rpm -qf /etc/php.ini php-common-5.4.16-45.el7.x86_64
    4. /etc/php.ini配置文件格式
      1. 格式
                 
                 
                 
                 
        • 1
        • 2
        [foo]:Section Header directive = value
      2. 描述
        [foo]:表示段落名稱
        ;:沒空格的表示能夠啓用的選項
        ;:加空格的表示純粹的說明信息
    5. /etc/php.ini配置文件經常使用項
      1. php.ini的核心配置選項文檔:
        http://php.net/manual/zh/ini.core.php
      2. php.ini配置選項列表:
        http://php.net/manual/zh/ini.list.php
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      max_execution_time= 30 <==最長執行時間30s,高併發狀況下,能夠考慮調小 max_input_time = 60 <==最大輸入時間 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 phpinfo(); ?>
  • 如下實驗會用到的測試代碼

    1. php測試代碼
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      <?php echo date("Y/m/d H:i:s"); phpinfo(); ?>
    2. Php使用mysql擴展鏈接數據庫
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      <?php $conn = mysql_connect(‘mysqlserver','username','password'); if ($conn) echo "OK"; else echo "Failure"; ?>
    3. Php使用mysqli擴展鏈接數據庫測試代碼
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      <?php $mysqli=new mysqli("mysqlserver",「username",「password"); if(mysqli_connect_errno()){ echo "Failure"; $mysqli=null; exit; } echo 「OK"; $mysqli->close(); ?>
    4. 使用pdo擴展鏈接數據庫的測試代碼1
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      <?php $dsn='mysql:host=localhost;dbname=mysql'; $username='root'; $passwd='centos'; $dbh=new PDO($dsn,$username,$passwd); var_dump($dbh); ?>
    5. 使用pdo擴展鏈接數據庫的測試代碼2
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      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(); } ?>

3. 實現LAMP架構

  • 以模塊(Modules)方式實現
    CentOS 7:涉及安裝程序
    Modules:httpd, php, php-mysql, mariadb-server
    CentOS 6:涉及安裝程序
    Modules:httpd, php, php-mysql, mysql-server

    1. 安裝,若是已經安裝了httpd,直接安裝php,會經過依賴關係會默認安裝php-cli和php-common
             
             
             
             
      • 1
      [root@hai7-7 ~]$yum install php
    2. 安裝成功後,會在/etc/httpd/conf.d/下生成新的配置文件,php.conf
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      [root@hai7-7 ~]$vim php.conf <FilesMatch \.php$> SetHandler application/x-httpd-php <==全部以.php結尾的文件,都交給httpd-php處理 </FilesMatch> DirectoryIndex index.php <==設置默認主頁 php_value session.save_handler "files" php_value session.save_path "/var/lib/php/session" <==保存session目錄
    3. 在httpd模塊目錄下,/etc/httpd/conf.modules.d/會增長一個php模塊配置文件,10-php.conf
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      [root@hai7-7 conf.modules.d]$vim 10-php.conf <IfModule prefork.c> <==只要在prefork.c模型下才會裝載名爲php5_module的模塊 LoadModule php5_module modules/libphp5.so </IfModule>
      也就是說httpd以線程模式運行的話,須要裝入的模塊爲php-zts,在extras倉庫
    4. 檢查php5模塊是否已裝載,若是未加載,須要檢查配置文件和安裝的程序包是否相匹配
             
             
             
             
      • 1
      root@hai7-7 conf.modules.d]$httpd -M
    5. 測試,在httpd頁面路徑下建一個.php文件,而後訪問主頁,若是能夠看到php設置環境界面,說明php模塊能夠正常運行
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      [root@hai7-7 html]$vim index.php <?php phpinfo(); ?>
    6. 安裝mysql,同時讓php支持鏈接mysql,須要組件爲 php-mysq
             
             
             
             
      • 1
      [root@hai7-6 ~]$yum -y install mariadb-server php-mysql
    7. 在web服務器主機,編輯一個測試代碼
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      <?php $conn = mysql_connect('127.0.0.1','root',''); <本機測試用,生產環境不能夠用root,配置文件容易丟 if ($conn) echo "OK"; else echo "Failure"; ?>
    8. 重啓服務後,訪問web頁面,若是出現「Failure」錯誤,說明php擴展沒有問題,只是鏈接數據庫失敗,多是數據庫沒有啓動,或者帳號密碼錯誤,或者數據服務器端口錯誤等。若是出現ok界面,說明能夠正常鏈接至數據庫,IMP平臺也就搭建成功,php程序放在網頁目錄下就能夠對外提供服務了
  • 以FastCGI實現(php-fpm)
    php包與php-fpm包是互斥的,只能安裝一種,若是測試機上有php須要先卸載
    FastCGI涉及程序:httpd, php-fpm, php-mysql, mariadb-server

    1. 安裝程序包,httpd、php-mysql、mariadb-server
             
             
             
             
      • 1
      [root@hai7-7 ~]$yum install httpd php-mysql php-fpm mariadb-server -y
    2. 修改mysql數據庫配置文件,不容許反向解析ip
             
             
             
             
      • 1
      • 2
      • 3
      [root@hai7-7 ~]$vim /etc/my.cnf.d/server.cnf [mysqld] skip_name_resolve=ON
    3. httpd要適配到FastCGI服務端,依賴於模塊proxy_fcgi_module,2.4默認啓動狀態,2.2須要在epel源安裝
             
             
             
             
      • 1
      • 2
      [root@hai7-7 ~]$httpd -M |grep cgi proxy_fcgi_module (shared)
    4. 編輯fastCGI服務器端配置文件/etc/php-fpm.conf用來配置php守護進程工做特性(如何管理本身的進程),/etc/php.ini依然生效,用來配置加載那些模塊,修改了模塊設置,就須要要重啓php-fpm服務
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      [root@hai7-7 ~]$vim /etc/php-fpm.conf include=/etc/php-fpm.d/*.conf <==模塊化配置加載此目錄下全部的配置文件 [global] pid = /run/php-fpm/php-fpm.pid <==守護進程的pid error_log = /var/log/php-fpm/error.log <==錯誤日誌 log_level = notice <==日子記錄級別 daemonize = no <==表示是否以守護進程的方式運行,定義爲no,由於要託管到 systemd上 ;;;;;;;;;;;;;;;;;;;; ; Pool Definitions ; ;;;;;;;;;;;;;;;;;;;; ; See /etc/php-fpm.d/*.conf <==Connection Pool鏈接池的定義都在php-fpm.d/下模塊化的配置文件中
    5. 定義鏈接池的配置文件
             
             
             
             
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      [root@hai7-7 ~]$vim /etc/php-fpm.d/www.conf [www] <==鏈接池的名字,此名能夠自定義 listen = 127.0.0.1:9000 <==監聽在哪一個地址哪一個端口上,本機全部ipv4地址可用修改成0.0.0.0 listen.backlog = -1 <==隊列長度,-1表示在服務器承載範圍內不設限,隊列時放在內存中的,防止didos攻擊,推薦設限 #listen.allowed_clients = 127.0.0.1 <==訪問控制,註釋掉 user = apache <==表示子進程以哪一個身份運行 group = apache pm = dynamic <==定義管理鏈接池的模式,有兩個值static和dynamic static: <==靜態模式,直接啓用全部子進程 dynamic: <==動態管理模式 following directives: pm.max_children:'最大鏈接數,動態靜態都有用,默認值50,經過壓測肯定' pm.start_servers:'服務啓動時啓動的進程數,此參數動態模式有用,默認值5' pm.min_spare_servers:'空閒進程數,此參數動態模式有用,默認值5' pm.max_spare_servers:'最大空閒進程數,此參數動態模式有用,默認值35' pm.max_requests = 500 <==進程最大服務數,達到此值就會kill生成新的,設爲0表示不設限 pm.status_path = /status <==pm狀態頁面 ping.path = /ping <==判斷服務工做狀態的URL ping.response = pong <==判斷/ping後返回的結果,能夠自定義 php_value[session.save_handler] = files <==定義會話管理模式 php_value[session.save_path] = /var/lib/php/session <==會話保存路徑,確保此文件存在,且apache有讀寫權限
    6. 建立session(會話)管理目錄,而且修改成apache具備讀寫權限
             
             
             
             
      • 1
      • 2
      [root@hai7-7 ~]$mkdir /var/lib/php/session [root@hai7-7 ~]$chown apache.apache /var/lib/php/session/
    7. 在虛擬主機上配置http,須要手動指明默認主頁文件使用index.php
      1. '編輯http配置文件,添加FCGI的配置'
      [root@hai7-7 data]$vim /etc/httpd/conf.d/text.conf
      DirectoryIndex index.php       <==指明默認主頁文件爲index.php
      <VirtualHost *:80>
      ServerName www.v9.com
      DocumentRoot /data/virtual/v9.com
      ProxyRequests Off              <==關閉正向代理
      ProxyPassMatch ^/(.*\.php)$  fcgi://192.168.50.115:9000/apps/vhosts/b.net/$1  <==反向代理,以php結尾的URL,轉發給fcgi由/apps/vhosts/b.net/$1提供,後面的$1是指前面的/(.*\.php)

<Directory 「/data/virtual/v9.com」> <==受權限制目錄
Options None
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 在指定的頁面路徑下建一個網頁測試文件,重啓服務
      
      
      
      
    • 1
    • 2
    • 3
    • 4
    [root@hai7-7 v9.com]$ vim /data/virtual/v9.com/index.php <?php phpinfo(); ?>
  • 4. 常見LAMP應用

    • phpmyadmin
      一個以PHP爲基礎,以Web-Base方式架構在網站主機上的MySQL的數據庫管理工具,讓管理者可用Web接口管理MySQL數據庫
      1. 獲取站點
        下載:https://www.phpmyadmin.net/downloads/
      2. 佈置phpmyadmin
        1. 將工具包解壓後,移動至httpd服務的DocumentRoot下,作一個指向軟鏈接,方便切換版本
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          1. '解壓文件' [root@hai7-7 ~]$tar xf phpMyAdmin-4.0.10.20-all-languages.tar.gz 2. '移動至頁面目錄下' [root@hai7-7 ~]$mv phpMyAdmin-4.0.10.20-all-languages /data/virtual/ 3. '作軟鏈接' [root@hai7-7 ~]$ln -sv phpMyAdmin-4.0.10.20-all-languages v9.com
        2. 進入phpMyAdmin-4.0.10.20-all-languages目錄,將配置文件模板,修改成配置文件,去掉sample
                 
                 
                 
                 
          • 1
          [root@hai7-7 ~]$cp config.sample.inc.php config.inc.php
        3. 修改配置文件config.inc.php
                 
                 
                 
                 
          • 1
          • 2
          • 3
          [root@hai7-7 ~]$vim /data/virtual/phpMyAdmin-4.0.10.20-all-languages/config.inc.php $cfg['blowfish_secret'] = '123456'; <==輸入一個隨機字符串 $cfg['Servers'][$i]['host'] = 'localhost'; <==修改鏈接地址,與數據庫中受權的用戶地址要相同
        4. 安裝php相關組件,重啓服務後,即在httpd頁面登入工具,帳號密碼爲數據庫受權的帳戶
                 
                 
                 
                 
          • 1
          • 2
          • 3
          yum install php-mbstring <==多字符支持 yum install php-mcrypt <==加密相關 systemctl restart php-fpm <==重啓php-fpm
    • WordPress
      WordPress是一款開源的我的網站搭建程序,用戶能夠在支持PHP和MySQL數據庫的服務器上架設屬於本身的網站
      1. 獲取地址
        https://cn.wordpress.org/
      2. 部署WordPress
        1. 將得到的壓縮包,解壓到網頁目錄中,進入目錄找到配置文件模板,將其重命名爲wp-config.php
                 
                 
                 
                 
          • 1
          • 2
          [root@hai7-7 ~]$cd /var/www/html/wordpress-4.9 [root@hai7-7 wordpress-4.9]$cp wp-config-sample.php wp-config.php
        2. 修改配置文件權限,保證Apache有讀寫權限
                 
                 
                 
                 
          • 1
          [root@hai7-7 ~]$chmod 666 wp-config.php
        3. 在數據庫中建立一個網站專用數據庫,專用帳戶
                 
                 
                 
                 
          • 1
          • 2
          • 3
          [root@hai7-7 ~]$mysql MariaDB [(none)]> CREATE DATABASE wpdb; MariaDB [(none)]> GRANT ALL ON phptest.* TO 'wpuser'@'172.20.0.%'IDENTIFIED BY 'centos';
        4. 編輯配置文件,修改以下項,以鏈接數據庫
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          [root@hai7-7 ~]$vim /var/www/html/wordpress-4.9/wp-config.php define('DB_NAME', 'phptest'); <==指定數據庫名 define('DB_USER', 'root'); <==指定用戶名 define('DB_PASSWORD', ''); <==指定密碼 define('DB_HOST', '192.168.50.115'); <==指定主機
        5. 或者將配置文件刪除,訪問網站,會出現配置頁面,填寫相關信息後,會生成配置文件,將內容複製到wordpress目錄下生成一個配置文件wp-config.php

    5. 將httpd/fpm分別以獨立主機運行

    • 獨立搭建服務器優勢

      1. 不須要文件自身作處理,只須要經過API調對方的服務接口
      2. 剝離數據與文件的關係,單獨存儲
    • 搭建過程
      規劃以110爲httpd服務器,107爲php-fpm服務器,基於FastCGI

      1. 在107上安裝php,若是須要鏈接數據庫,還要安裝php-mysql組件
             
             
             
             
        • 1
        [root@hai7-7 ~]$yum install php-fpm php-mysql
      2. php服務器沒有httpd服務,因此將web的php相關程序單獨存放在一個目錄下,新建目錄/data/website
             
             
             
             
        • 1
        [root@hai7-7 ~]$mkdir /data/website
      3. 修改Php服務器的監聽端口,默認狀況是監聽本地127.0.0.1上,須要修改成監聽在網絡ip,或者直接寫端口,表示全部地址的9000均可以訪問,重啓服務
             
             
             
             
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        [root@hai7-7 website]$vim /etc/php-fpm.d/www.conf listen = 9000 [root@hai7-7 website]$systemctl restart php-fpm [root@hai7-7 website]$ss -ntl State Recv-Q Send-Q Local Address:Port LISTEN 0 128 *:9000 <==看到*就說明全部地址均可以訪問
      4. 在110服務器上安裝Apache服務,並修改配置文件爲代理服務器
             
             
             
             
        • 1
        • 2
        • 3
        • 4
        • 5
        [root@hai7-8 ~]$yum install httpd [root@hai7-8 ~]$vim /etc/httpd/conf.dfcgi.conf DirectoryIndex index.php ProxyRequests Off ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.50.107:9000/data/website/$1 <==目標地址改成php服務器

    6 搭建虛擬主機,在同一臺服務器上運行2個網站

    • 實驗目標
      實現LAMP架構,在web服務器上維護兩個網站
    • 使用的網頁資源
      1. wordpress-4.9.4-zh_CN.tar.gz
      2. Discuz_X3.2_SC_UTF8.zip
    • 搭建過程
      1. 數據庫服務器

        1. 先搭建數據庫服務器,這裏以服務器C(107)爲例
                 
                 
                 
                 
          • 1
          [root@hai7-6 ~]$yum install mariadb-server
        2. 計劃運行兩個網頁,因此在數據庫中創建相應數據庫和帳戶
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          1. '爲wordpress網頁創建數據庫和帳戶' [root@hai7-6 ~]$mysql -e "CREATE DATABASE wpdb;GRANT ALL ON wpdb.* TO wpuser@'192.168.50.%' IDENTIFIED BY 'centos'" 2. '爲Discuz網頁創建數據庫和帳戶' [root@hai7-6 ~]$mysql -e "CREATE DATABASE Dzdb;GRANT ALL ON Dzdb.* TO dzuser@'192.168.50.%' IDENTIFIED BY 'centos'"
      2. php-fpm服務器

        1. 服務器B(110),安裝php-fpm,鏈接數據庫組件php-mysql
                 
                 
                 
                 
          • 1
          [root@hai7-6 ~]$yum install php-fpm php-mysql
        2. 分別創建2個網站對應的網頁目錄,Discuz稍後重命名
                 
                 
                 
                 
          • 1
          [root@hai7-6 ~]$mkdir /data/wordpress
        3. 在官網獲取頁面文件包wordpress-4.9.4-zh_CN.tar.gz和Discuz_X3.2_SC_UTF8.zip,分別解壓至對應網頁目錄
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          [root@hai7-6 ~]$tar xvf wordpress-4.9.4-zh_CN.tar.gz [root@hai7-6 ~]$unzip Discuz_X3.2_SC_UTF8.zip 'Discuz解壓後的目錄爲upload,重命名爲discuz' [root@hai7-6 ~]$mv upload/ discuz
        4. 修改wordpress配置文件
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          1. '進入wordpress目錄下,將配置文件模板修改成配置文件' [root@hai7-8 ~]$mv wp-config-sample.php wp-config.php 2. '修改配置文件' [root@hai7-8 ~]$vim /data/wordpress/wp-config.php /** WordPress數據庫的名稱 */ define('DB_NAME', 'wpdb'); /** MySQL數據庫用戶名 */ define('DB_USER', 'wpuser'); /** MySQL數據庫密碼 */ define('DB_PASSWORD', 'centos'); /** MySQL主機 */ define('DB_HOST', '192.168.50.107');
        5. 讓Apache對discuz目錄具備寫權限
                 
                 
                 
                 
          • 1
          [root@hai7-8 /data]$setfacl -R -m u:apache:rwx discuz/
      3. httpd服務器

        1. 安裝httpd服務
                 
                 
                 
                 
          • 1
          [root@hai7-8 ~]$yum -y install httpd
        2. 修改httpd配置文件,定義兩個虛擬主機,並受權目錄
          [root@hai7-8 ~]$vim /etc/httpd/conf.d/test.conf
          DirectoryIndex index.php         <==指定默認網頁文件爲index.php
          <VirtualHost *:80>       		 <==設立虛擬主機
          ServerName www.wordpress.net     <==服務名
          DocumentRoot /data/wordpress/    <==web服務頁面路徑
          ProxyRequests Off       		 <==不啓用正向代理
          ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/wordpress/$1        <==啓用反向代理
          <Directory "/data/wordpress/">   <==受權虛擬主機服務目錄
          Require all granted
          </Directory>
          </VirtualHost>

    <VirtualHost :80> <==第二個虛擬機
    ServerName www.discuz.net
    DocumentRoot /data/discuz/
    ProxyRequests Off
    ProxyPassMatch ^/(.
    .php)$ fcgi://127.0.0.1:9000/data/discuz/$1
    <Directory 「/data/discuz/」>
    Require all granted
    </Directory>
    </VirtualHost>

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 客戶端
    在客戶端D上修改hosts文件,模擬DNS解析,登陸網頁檢測

      
      
      
      
    • 1
    • 2
    [root@hai6 ~]$vim /etc/hosts 192.168.50.110 www.wordpress.net www.discuz.net
  • 7 CentOS7編譯安裝LAMP,基於fastcgi方式

    • 編譯環境
      1. httpd可移植運行庫
        apr-1.6.3.tar.gz
        apr-util-1.6.1.tar.gz
      2. Apache源碼
        httpd-2.4.34.tar.bz2
      3. mariadb二進制文件
        mariadb-10.2.15-linux-x86_64.tar.gz
      4. php解釋器
        php-7.1.18.tar.bz2
      5. 頁面文件
        wordpress-4.9.4-zh_CN.tar.gz
    • 編譯順序
      mariadb–>httpd–>php
      mariadb和httpd前後能夠隨意,php依賴於mariadb,須要最後安裝
    • 編譯流程
      1. 準備開發包組
             
             
             
             
        • 1
        [root@hai7-8 ~]$yum groupinstall "Development Tools"
      2. 編譯httpd
        1. 安裝依賴包
                 
                 
                 
                 
          • 1
          [root@hai7-7 ~]$yum install pcre-devel openssl-devel expat-devel -y
        2. 官方下載httpd源碼,以及依賴的apr包(apr-1.6.3.tar.gz、apr-util-1.6.1.tar.gz 、httpd-2.4.34.tar.bz2),導入linux中,而後解壓縮
                 
                 
                 
                 
          • 1
          • 2
          • 3
          [root@hai7115 srcd]$tar xf apr-1.6.3.tar.gz [root@hai7115 srcd]$tar xf apr-util-1.6.1.tar.gz [root@hai7115 srcd]$tar xf httpd-2.4.34.tar.bz2
        3. 將apr和apr-util整個目錄拷貝到httpd-2.4.34/srclib/目錄下,而且更名(必須)爲apr和apr-util
                 
                 
                 
                 
          • 1
          • 2
          [root@hai7115 srcd]$cp -r apr-1.6.3 httpd-2.4.34/srclib/apr [root@hai7115 srcd]$cp -r apr-util-1.6.1 httpd-2.4.34/srclib/apr-util
        4. 編譯,./configure做用,檢查系統環境和配置生成makefile文件,檢查全部所須要的編譯操做的依賴環境是否能夠知足,若是能夠知足,將檢查結果和命令行定義的選項特性結合makefile.in生成爲makefile文件
          –enable-so \ enable表示啓用某個內建特性;
          –disable表示禁用程序自帶的特性;
          –with表示須要調用另一個軟件程序一塊兒安裝;
          –without表示不結合;
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          '進入httpd解壓後的目錄,運行configure' ./configure\ --prefix=/app/httpd24\ --enable-so\ <==是否支持動態模塊 --enable-ssl\ <==是否支持加密 --enable-cgi\ --enable-rewrite\ --with-zlib\ --with-pcre\ <==正則表達式 --with-included-apr\ <==表示已經將apr相關須要編譯的內容放在httpd相關的路徑下,能夠一塊兒編譯 --enable-modules=most\ <==是否支持大部分模塊 --enable-mpms-shared=all\ --with-mpm=prefork <==是否支持mpm的prefork工做模型
        5. 構造和安裝,make爲項目管理工具,組織項目間的依賴關係,讓最終的構建者可以快速構建項目代碼,調用GCC等編譯器,編譯成特定程序包。
          安裝步驟爲大量的cp操做,將編譯好的二進制程序放到對應目錄下,make install會調用相應腳本執行cp動做。
          建立apache帳號,不建立系統默認啓動的帳號爲daemon
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          1. '構造和安裝 ' [root@hai7115 httpd-2.4.34]$make -j 8 && make install 2. '建立用戶' [root@hai7-7 ~]$useradd -r -s /sbin/nologin apache 3. '修改配置文件中的用戶項,將httpd帳號修改成apache' [root@hai7-7 ~]$vim /app/httpd24/conf/httpd.conf User apache Group apache
        6. 編譯安裝目錄
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          [root@hai7-8 /app/httpd24]$ll bin build cgi-bin <==動態資源存放目錄,cgi腳本 conf error <==錯誤頁(例如訪問頁面不存在返回404等) htdocs <==網頁測試頁面 icons include <==調用當前開發庫作二次開發,須要知道API接口有哪些接口可被調用,對於c語言而言,都在include裏用頭文件標識 lib <==當前程序提供的庫文件,分爲共享庫和開發庫,共享庫,被本程序的多個程序或程序包共享使用,開發庫時作二次開發的的調用接口 logs <==日誌文件 man <==幫助手冊 manual <==超連接手冊,須要web服務進行訪問,在主配置文件中啓用 #Include conf/extra/httpd-manual.conf行,配置文件在include後面爲manual配置文件,須要啓用negotiation_module模塊 modules <==以編譯的模塊
        7. 將二進制程序放入PATH變量中,啓動測試,測試所見頁面文件來自/app/httpd24/htdocs目錄下
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          1. '加入PATH列表' [root@hai7-7 ~]$echo PATH=/app/httpd24/bin:$PATH > /etc/profile.d/lamp.sh 2. '重啓生效' [root@hai7-7 ~]$. /etc/profile.d/lamp.sh
        8. 讓自編譯httpd開機啓動,將其放入系統啓動腳本rc.local,加上執行權限。或者寫啓動腳本,寫啓動腳本能夠用service控制啓動
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          1. '將啓動程序放在啓動腳本中' [root@hai7-7 rc.d]$vim /etc/rc.d/rc.local /app/httpd24/bin/apachectl 2. '加上執行權限' [root@hai7-7 rc.d]$chmod +x /etc/rc.d/rc.local
      3. 二進制編譯數據庫
        1. 解壓數據庫二進制包到指定目錄下,目錄必須/usr/local
                 
                 
                 
                 
          • 1
          [root@hai7-7 ~]$tar xvf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local
        2. 解壓後程序名爲mariadb,須要修改成mysql,建一個軟鏈接,創建一個系統mysql帳號,修改全部者和所屬組
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          1. '進入解壓目錄' [root@hai7-7 ~]$cd /usr/local/ 2. '創建軟鏈接,重命名程序' [root@hai7-7 local/]$ln -s mariadb-10.2.15-linux-x86_64/ mysql 3. '創建系統帳戶' [root@hai7-7 local/]$useradd -r -s /sbin/nologin mysql 4. '修改權限' [root@hai7-7 local]$chown -R mysql.mysql mysql/
        3. 準備數據目錄
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          1. '創建數據庫目錄' [root@hai7-7 ~]$mkdir /app/mysql 2. '將目錄所屬組所屬者修改成mysql' [root@hai7-7 ~]$chown mysql.mysql /app/mysql 3. '運行解壓包帶的腳本,生成系統數據庫,必須在解壓目錄(/usr/local/mysql)運行,指定路徑爲新建的數據庫目錄,指定帳號' [root@hai7-7 mysql]$scripts/mysql_install_db --datadir=/app/mysql --user=mysql
        4. 準備配置文件
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          1. '在etc下建一個獨立配置文件目錄' [root@hai7-7 ~]$mkdir /etc/mysql 2. '拷貝二進制包中模板來修改' [root@hai7-7 ~]$cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf 3. '修改配置文件,指定數據庫目錄' [root@hai7-7 ~]$vim /etc/mysql/my.cnf [mysqld] datadir=/app/mysql
        5. 準備服務腳本,壓縮包有模板文件,而後加入服務腳本啓動列表中
                 
                 
                 
                 
          • 1
          • 2
          [root@hai7-7 ~]$cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@hai7-7 ~]$chkconfig --add mysqld
        6. 將mysql下的bin放入PATH變量中,加入httpd自定義變量文件中
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          [root@hai7-7 bin]$vim /etc/profile.d/lamp.sh PATH=/app/httpd24/bin:/usr/local/mysql/bin:$PATH '生效一下' [root@hai7-7 bin]$. /etc/profile.d/lamp.sh
        7. 跑一下安全腳本mysql_secure_installation後,爲wordpress創建一個使用的帳號
                 
                 
                 
                 
          • 1
          • 2
          '創建wordpress網頁用的帳號和數據庫' [root@hai7-7 bin]$mysql -e "CREATE DATABASE wpdb2;GRANT ALL ON wpdb2.* TO wpuser@'localhost' IDENTIFIED BY 'centos'"
      4. 編譯php
        1. 安裝依賴包
          libxml2-devel:php有些功能啓用時,須要使用代碼處理xml格式的文檔,必須兼容使用xml的開發庫
          bzip2-devel:php自己使用壓縮解壓功能,所依賴的庫
          libmcrypt-devel :加密解密功能(epel)
                 
                 
                 
                 
          • 1
          [root@hai7-7 bin]$yum -y install libxml2-devel bzip2-devel libmcrypt-devel
        2. 解壓php源碼文件,進入目錄,運行configure
          基於模塊方式編譯,加以下項,不可與fpm模式共用,使用apxs2編譯成httpd模塊
          –with-apxs2=/app/httpd24/bin/apxs
          基於fpm模式編譯
          –enable-fpm
          注意:php-7.0以上版本使用–enable-mysqlnd --with-mysqli=mysqlnd ,原–with-mysql再也不支持
                 
                 
                 
                 
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24
          • 25
          1. '解壓源碼包' [root@hai7-7 data]$tar xvf php-7.1.18.tar.bz2 2. '進入目錄' [root@hai7-7 data]$cd php-7.1.18/ 3. '運行configure' [root@hai7-7 php-7.1.18]$./configure --prefix=/app/php \ --enable-mysqlnd \ --with-mysqli=mysqlnd \ <==鏈接數據庫的3種方法之一 --with-openssl \ --with-pdo-mysql=mysqlnd \ <==鏈接數據庫的方法之一,基於對象方式來訪問數據的接口 --enable-mbstring \ <==支持多字節 --with-freetype-dir \ <==與字體處理相關聯的庫 --with-jpeg-dir \ <==與圖形處理相關的 --with-png-dir \ <==png圖形處理相關 --with-zlib \ <==壓縮解壓縮相 --with-libxml-dir=/usr \ <==處理xml格式文檔 --enable-xml \ <==啓用xml功能 --enable-sockets \ <==支持基於sockets本地進行通信 --enable-fpm \ <==基於fpm工做 --with-config-file-path=/etc \ <==指明config路徑 --with-config-file-scan-dir=/etc/php.d \ <==模塊化配置文件路徑 --enable-maintainer-zts \ <==mpm若是是prefork不須要此項,此項爲啓用線程化的php模塊 --disable-fileinfo 禁止訪問file信息 4. '構造和安裝' [root@hai7-7 php-7.1.18]$make -j 8 && make install
        3. 將php的bin目錄加入PATH變量
                 
                 
                 
                 
          • 1
          • 2
          [root@hai7-7 bin]$cat /etc/profile.d/lamp.sh PATH=/app/httpd24/bin:/usr/local/mysql/bin:/app/php/bin:$PATH
        4. 爲php提供配置文件,在編譯目錄下複製一份到etc目錄下,命名爲php.ini,默認設置,除時區外,一般不須要修改
          php.ini-development(開發環境)和php.ini-production(生成環境),兩者配置參數不一樣,根據環境選擇
                 
                 
                 
                 
          • 1
          [root@hai7-7 ~]$cp /data/php-7.1.18/php.ini-production /etc/php.ini
        5. 在Apache配置文件中加入一些設置,讓其識別php程序,創建一個獨立子配置文件
          1. '先在主配置文件中加入include,讓其能夠包含子配置文件'
          [root@hai7-7 ~]$vim /app/httpd24/conf/httpd.conf
          Include conf/extra/php.conf
          2. '創建子配置文件,加入FCGI配置項'
          [root@hai7-7 ~]$cd /app/httpd24/conf/extra/
          [root@hai7-7 extra]$vim php.conf
          AddType application/x-httpd-php .php          <==讓httpd能夠識別php文件
          AddType application/x-httpd-php-source .phps

    ProxyRequests Off <==不啓動正向代理
    ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1 <==啓動反向代理```

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 啓用httpd的兩個模塊,定位到LoadModule,去掉註釋便可,指定默認頁面文件爲php
      
      
      
      
    • 1
    • 2
    • 3
    • 4
    [root@hai7-7 ~]$vim /app/httpd24/conf/httpd.conf DirectoryIndex index.php index.html <==指定默認頁面文件爲php文件,沒有在讀取html LoadModule proxy_module modules/mod_proxy.so <==須要啓動的模塊 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so <==須要啓動的模塊
  • 準備啓動腳本
      
      
      
      
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. '將解壓目錄下init.d.php-fpm文件做爲模板,拷貝到init.d中' [root@hai7-7 ~]$cp /data/php-7.1.18/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 2. '爲其加上執行權限' [root@hai7-7 ~]$chmod +x /etc/init.d/php-fpm 3. '加入到啓動服務列表' [root@hai7-7 ~]$chkconfig --add php-fpm
  • 準備php配置文件,和www的子配置文件
      
      
      
      
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. '編譯後已經生成,只是文件後綴不符合要求,進入/app/php/etc目錄,修改後綴,啓動服務' [root@hai7-7 ~]$cd /app/php/etc [root@hai7-7 etc]$cp php-fpm.conf.default php-fpm.conf <==主配置文件 2.' 進入 /app/php/etcphp-fpm.d' [root@hai7-7 etc]$cd php-fpm.d/ [root@hai7-7 php-fpm.d]$cp www.conf.default www.conf <==子配置文件 3. '在子配置文件中修改運行帳號,還能夠定義監聽端口等' [root@hai7-7 php-fpm.d]$vim www.conf user = apache <==將運行帳號修改成apache group = apache 4. '啓動服務' [root@hai7-7 php-fpm.d]$service php-fpm start
  • workpress
    1. 解壓workpress文件,拷貝到網頁文件目錄下(/app/httpd24/htdocs/)
          
          
          
          
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      1. '解壓文件' [root@hai7-7 data]$tar xvf wordpress-4.9.4-zh_CN.tar.gz 2. '拷貝到頁面目錄下' [root@hai7-7 data]$cp -r wordpress/* /app/httpd24/htdocs/ 3. '準備wordpress的配置文件' [root@hai7-7 htdocs]$cp wp-config-sample.php wp-config.php 4. '修改配置,鏈接數據庫' [root@hai7-7 htdocs]$vim wp-config.php /** WordPress數據庫的名稱 */ define('DB_NAME', 'wpdb2'); /** MySQL數據庫用戶名 */ define('DB_USER', 'wpuser'); /** MySQL數據庫密碼 */ define('DB_PASSWORD', 'centos'); /** MySQL主機 */ define('DB_HOST', 'localhost');
  • 8 CentOS6編譯安裝PHP-FPM模式的LAMP

    • 編譯環境
      1. mairadb:通用二進制格式,mariadb-5.5.56
      2. httpd:編譯安裝,httpd-2.4.27
      3. php5:編譯安裝,php-5.6.30
      4. Wordpress: 安裝wordpress-4.8-zh_CN.tar.gz
      5. Xcache:編譯安裝xcache-3.2.0
    • 實現順序
      mariadb–>httpd–>php
    • 編譯過程
    1. 安裝相關包
      bzip2-devel libxml2-devel libmcrypt-devel(epel源)
    2. 編譯安裝php
      1. 進入解壓目錄
        cd php-5.6.30/
      2. 編譯安裝
        1. 運行configure腳本
          ./configure --prefix=/app/php5 --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc/php5 --with-config-file-scan-dir=/etc/php5.d --with-bz2
        2. 構造和安裝
          make -j 4 && make install
        3. 實現php的配置文件和服務腳本
          1. mkdir /etc/php5 /etc/php5.d/
          2. cd php-5.6.30/
          3. cp php.ini-production /etc/php5/php.ini
          4. cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
          5. chmod +x /etc/rc.d/init.d/php-fpm
          6. chkconfig --add php-fpm
          7. chkconfig --list php-fpm
    3. 編輯php配置文件
      1. cd /app/php5/etc
      2. cp php-fpm.conf.default php-fpm.conf
      3. vim /app/php5/etc/php-fpm.conf
        pm.max_children = 50
        pm.start_servers = 5
        pm.min_spare_servers = 2
        pm.max_spare_servers = 5 和pm.start_servers一致
        pid = /app/php5/var/run/php-fpm.pid
      4. service php-fpm restart
    4. 修改httpd24的配置文件
      1. vim /app/apache24/conf/httpd.conf
        說明:啓用httpd的相關模塊
        在Apache httpd 2.4之後已經專門有一個模塊針對FastCGI的實現,此模塊爲mod_proxy_fcgi.so,它實際上是做爲mod_proxy.so模塊的擴充,所以,這兩個模塊都要加載
        去掉下面兩行註釋
        LoadModule proxy_module modules/mod_proxy.so
        LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
        添加以下二行
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
        定位至DirectoryIndex index.html
        修改成:
        DirectoryIndex index.php index.html
        加下面兩行
        ProxyRequests Off 關閉正向代理
        ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
        service httpd24 restart
    5. 測試
      vim /app/httpd24/htdocs/index.php
         
         
         
         
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      <?php $link = mysql_connect('127.0.0.1','root','magedu'); if ($link) echo "Success..."; else echo "Failure..."; mysql_close(); phpinfo(); ?>
    </div>
    					<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-7f770a53f2.css" rel="stylesheet">
                </div>
    相關文章
    相關標籤/搜索