• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于WampServer 環(huán)境的多版本PHP 網(wǎng)站群搭建

    2019-04-03 01:39:06柏建明劉斌文董銀麟
    現(xiàn)代計(jì)算機(jī) 2019年35期
    關(guān)鍵詞:配置文件語句站點(diǎn)

    柏建明,劉斌文,董銀麟

    (中色(寧夏)東方集團(tuán)有限公司,石嘴山753000)

    0 引言

    WampServer(簡稱Wamp),就是Windows+Apache+MySQL+PHP 的網(wǎng)站搭建集成環(huán)境,即在Windows 下的Apache、MySQL 和PHP 的服務(wù)器軟件。在一臺服務(wù)器上的Apache 和MySQL 可以管理多個站點(diǎn)和數(shù)據(jù)庫,但要服務(wù)器同時(shí)兼容各種版本的PHP 程序代碼就顯得尤為費(fèi)勁。同一服務(wù)器上多個不同的網(wǎng)站可能使用不同版本的PHP 語言和插件,在網(wǎng)站集成環(huán)境中單一的設(shè)置PHP 版本號,往往會影響個別站點(diǎn)的正常響應(yīng)和界面顯示,造成站點(diǎn)無法訪問。本文重點(diǎn)在不使用虛擬主機(jī)的物理主機(jī)上通過對Wamp 文件改寫和特別配置,實(shí)現(xiàn)多個版本PHP、不同的CMS(網(wǎng)站內(nèi)容管理系統(tǒng))站點(diǎn)同時(shí)在線運(yùn)行,解決服務(wù)器中已有低版本PHP 網(wǎng)站和新建高版本PHP 網(wǎng)站共存的問題。

    單一CMS 管理下的網(wǎng)站群管理不涉及多版本PHP 問題,本文不做討論。本文中的網(wǎng)站群主要指同一主機(jī)中使用不同CMS 搭建、內(nèi)容可以完全獨(dú)立的多個網(wǎng)站。為方便說明,本文使用兩個WordPress CMS,安裝在不同子目錄下,以子目錄區(qū)分不同站點(diǎn),且分別啟用不同版本的PHP。本文中的虛機(jī)指的是WampServer 的一種多網(wǎng)站解析方式,不同于具有獨(dú)立操作系統(tǒng)的虛擬主機(jī)。本文涉及到的軟件版本號:

    WampServer 3.1.7,Apache 2.4.37,MySQL 5.7.24,PHP 5.6.40 及以上,fcgid 2.3.10。

    1 WampServer安裝與配置

    1.1 數(shù)據(jù)庫配置

    安裝Wamp 前,必須先安裝VC2012、VC2013、VC2015 幾個必要的運(yùn)行庫。Wamp 安裝成功后,在右下角的系統(tǒng)托盤里右鍵點(diǎn)擊圖標(biāo)在菜單里設(shè)置為中文界面,左鍵點(diǎn)擊,將服務(wù)“切換到在線狀態(tài)”(此操作是直接改寫Apache 的配置文件httpd.conf)。

    Options+Indexes+FollowSymLinks+Multiviews+ExecCGI

    AllowOverride all

    #由原來的Require local 更改為Require all granted

    Require all granted

    再選擇“phpMyAdmin”進(jìn)入MySQL 數(shù)據(jù)庫管理器(即登錄http://localhost/phpmyadmin/,可以在登錄時(shí)選擇MariaDB 數(shù)據(jù)庫,二者區(qū)別只在高版本MySQL 的使用有版權(quán)限制),初始賬號/密碼為:root/空。

    新建網(wǎng)站群的管理員賬號webadmin,設(shè)置密碼webpassword。新建wordpress_one 數(shù)據(jù)庫和wordpress_two 數(shù)據(jù)庫(字符集與排序規(guī)則utf8mb4_unicode_ci),并在權(quán)限中將這兩個數(shù)據(jù)庫的權(quán)限賦予賬號webadmin,這兩個數(shù)據(jù)庫將分別用于下文中安裝的兩個網(wǎng)站。最后設(shè)置一下數(shù)據(jù)庫系統(tǒng)管理員root 的賬號密碼。

    1.2 網(wǎng)站文件安裝

    假設(shè)要建兩個域名分別為www.webone.com 和www.webtwo.com 的網(wǎng)站,將兩個WordPress 安裝包分別解壓放在Wamp 安裝子目錄“wamp64wwwwebone”和“wamp64wwwwebtwo”下,這兩個網(wǎng)站的數(shù)據(jù)庫分別對應(yīng)wordpress_one 和wordpress_two。

    在 服 務(wù) 器 本 地 以 類 似“http://localhost/www/web_one/wp-admin/setup-config.php”的方式分別安裝子站。安裝時(shí)需要輸入以下信息(填寫數(shù)據(jù)庫的界面是英文,之后可以選擇語言,可能出現(xiàn)錯誤提示“The site is experiencing technical difficulties”,刷新后繼續(xù)出現(xiàn)安裝畫面):

    數(shù)據(jù)庫名:wordpress_one(網(wǎng)站www.webone.com 的數(shù)據(jù)庫);

    用戶名:webadmin(網(wǎng)站群管理員賬號);

    用戶密碼:webpassword(網(wǎng)站群管理員賬號的密碼);

    安裝完成后,后臺自動將以上信息填入了Word-Press 配置文件wp-config.php 中。另一個網(wǎng)站以同樣的方式安裝。不同的CMS 有不同的安裝界面和配置文件,具體的安裝方式要參照其相應(yīng)的安裝說明進(jìn)行。

    1.3 Wamp的多站點(diǎn)解析設(shè)置

    服務(wù)器上有多個網(wǎng)站時(shí),需要Apache 建立網(wǎng)站域名和網(wǎng)站文件路徑對應(yīng)關(guān)系。通過圖形界面配置可以自動對路徑“wamp64inapacheapache2.4.37confextra”下的httpd-vhosts.conf 文件添加相應(yīng)內(nèi)容。

    如圖1 所示在虛機(jī)管理器的圖形界面(左鍵點(diǎn)擊面板的“Your”、“VirtualHost Management”,打開http://localhost/add_vhost.php)填寫網(wǎng)站www.webone.com 域名和網(wǎng)站目錄信息(注意路徑中是反斜杠),生成httpdvhosts.conf 文件,同時(shí)自動生成了本地hosts 文件的站點(diǎn)域名解析。另一個網(wǎng)站也做類似設(shè)置。

    圖1 配置網(wǎng)站www.webone.com的虛機(jī)管理

    這樣生成的文件配置里,只能本地訪問網(wǎng)站的。可以在執(zhí)行以上操作前,修改路徑“wamp64www”下的文件add_vhost.php。

    ServerName{$vh_name}

    DocumentRoot"{$vh_folder}"

    Options+Indexes+Includes+FollowSymLinks+MultiViews

    AllowOverride All

    #由原來的Require local 更改為Require all granted

    Require all granted

    此設(shè)置可以使虛機(jī)管理器在自動生成httpdvhosts.conf 文件時(shí),直接填寫“Require all granted”語句而具有非本地訪問權(quán)限。如果不對此文件預(yù)先修改,則需要手動去將httpd-vhosts.conf 文件中的網(wǎng)站訪問權(quán)限改為“Require all granted”。

    2 Wamp網(wǎng)站群多版本PHP配置

    多站點(diǎn)實(shí)現(xiàn)多版本PHP 運(yùn)行的核心方法是使用Apache 的mod_fcgid 模塊,mod_fcgid 模塊是Apache 的FastCGI 實(shí)現(xiàn),在Apache 的2.4 以后的版本中得到支持。FastCGI 是語言無關(guān)的、可伸縮架構(gòu)的CGI 開放擴(kuò)展,其主要行為是讓CGI 解釋器進(jìn)程常駐內(nèi)存并接受FastCGI 進(jìn)程管理器調(diào)度,因此獲得較高的性能。

    2.1 安裝加載fcgid模塊

    下載fcgid 文件包mod_fcgid-2.3.10-win64-VS16.zip(下載地址https://www.apachelounge.com/download/),解壓后將其中的mod_fcgid.so 文件復(fù)制到服務(wù)器中Apache 模 塊 目 錄 里( 如 C:wamp64inapacheapache2.4.37modules)。然后在httpd.conf 文件中加載相應(yīng)的模塊,添加語句LoadModule fcgid_module modules/mod_fcgid.so(最好和其他LoadModule 語句放在一起)。

    2.2 修改httpd.conf文件

    引入fcgid 后,需要進(jìn)一步對fcgid 的運(yùn)行參數(shù)進(jìn)行配置。左鍵點(diǎn)擊系統(tǒng)托盤中Wamp 的Apache 菜單,打開httpd.conf 文件(wamp64inapacheapache2.4.37conf),修改或添加以下內(nèi)容:

    #在下面的語句末尾添加“+ExecCGI”,允許該目錄下使用CGI 解釋器(也可以在httpd-vhosts.conf 文件的每個主機(jī)里單獨(dú)添加)

    Options+Indexes+FollowSymLinks+Multiviews+ExecCGI

    AllowOverride all

    Require all granted

    在以上模塊之后添加下面的模塊內(nèi)容,保證在啟用fcgid 之后能正常登錄MySQL 數(shù)據(jù)庫。

    Options+Indexes+FollowSymLinks+Multiviews+ExecCGI

    AllowOverride all

    Require all granted

    在httpd.conf 文件末尾添加以下模塊的所有內(nèi)容,確定執(zhí)行fcgid 時(shí)的主要參數(shù)。

    #添加映射將文件擴(kuò)展名映射到指定的處理程序

    AddHandler fcgid-script.fcgi.php

    #設(shè)置PHP_FCGI_MAX_REQUESTS 大于或等于Fcgid-MaxRequestsPerProcess,防止php-cgi 進(jìn)程在處理完所有請求前退出

    FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000

    #設(shè)置php-cgi 每個進(jìn)程的最大請求數(shù)

    FcgidMaxRequestsPerProcess 1000

    #設(shè)置php-cgi 最大進(jìn)程數(shù)

    FcgidMaxProcesses 5

    #設(shè)置fcgid 的通信超時(shí)時(shí)間

    FcgidIOTimeout 120

    #超時(shí)終止空閑fcgid 程序

    FcgidIdleTimeout 120

    #設(shè)置啟用fcgid 后上傳附件的大小值(單位是字節(jié)),如下16777216=16M

    FcgidMaxRequestLen 16777216

    #指定運(yùn)行默認(rèn)PHP 版本時(shí)的php.ini 配置文件所在的文件夾路徑

    FcgidInitialEnv PHPRC "C:/wamp64/bin/apache/apache2.4.37/bin"

    #指定默認(rèn)PHP 版本,同wamp 面板中設(shè)置的PHP 版本保持一致

    FcgidWrapper "C:/wamp64/bin/php/php5.6.40/php-cgi.exe" .

    php

    #指定可執(zhí)行PHP 代碼的文件類型

    AddType application/x-httpd-php.php

    2.3 修改httpd-vhosts.conf文件

    修改httpd-vhosts.conf 文件,針對具體的網(wǎng)站指定不同版本的PHP。打開路徑“wamp64inapacheapache2.4.37confextra”下的httpd-vhosts.conf 文件(即圖1 生成的配置文件),對網(wǎng)站www.webone.com 和www.webtwo.com 的配置信息做如下內(nèi)容添加。

    ServerName www.webone.com

    DocumentRoot"c:/wamp64/www/webone"

    #添加以下兩條語句,指明網(wǎng)站www.webone.com 運(yùn)行php7.0.33 版本,

    FcgidInitialEnv PHPRC"C:/wamp64/bin/php/php7.0.33"

    FcgidWrapper "C:/wamp64/bin/php/php7.0.33/php-cgi.exe" .php

    Options+Indexes+Includes+FollowSymLinks+MultiViews

    AllowOverride All

    Require all granted

    #

    ServerName www.webtwo.com

    DocumentRoot"c:/wamp64/www/webtwo"

    #添加以下兩條語句,指明網(wǎng)站www. webtwo.com 運(yùn)行php7.3.1 版本

    FcgidInitialEnv PHPRC"C:/wamp64/bin/php/php7.3.1"

    FcgidWrapper "C:/wamp64/bin/php/php7.3.1/php- cgi.exe" .php

    Options+Indexes+Includes+FollowSymLinks+MultiViews

    AllowOverride All

    Require all granted

    這兩個網(wǎng)站指定了不同版本的PHP 解釋器,對各自的代碼和插件有不同的兼容性和特點(diǎn)。這里指定了PHP 較高的版本,如果這里不特別指明PHP 版本,則網(wǎng)站默認(rèn)運(yùn)行系統(tǒng)設(shè)置里指定的低版本PHP 5.6.40,以便適應(yīng)較舊的網(wǎng)站。

    3 結(jié)語

    相對于在服務(wù)器上啟用多個Web 服務(wù)器(例如Apache 和IIS)分別配置或以虛擬主機(jī)方式隔離網(wǎng)站主體的方式,本方法僅使用Apache 服務(wù)器并引入fcgid模塊來解決多網(wǎng)站的PHP 版本沖突問題,配置方式簡單且系統(tǒng)運(yùn)行穩(wěn)定,避免了多Web 服務(wù)器的干擾影響,也避免使用虛擬主機(jī)造成系統(tǒng)資源消耗過大。非常適合集團(tuán)性企業(yè)的子分公司各門戶網(wǎng)站統(tǒng)一管理,也適合網(wǎng)站托管集成商有效提高云資源利用率。

    猜你喜歡
    配置文件語句站點(diǎn)
    提示用戶配置文件錯誤 這樣解決
    重點(diǎn):語句銜接
    搭建簡單的Kubernetes集群
    互不干涉混用Chromium Edge
    基于Web站點(diǎn)的SQL注入分析與防范
    電子制作(2019年14期)2019-08-20 05:43:42
    2017~2018年冬季西北地區(qū)某站點(diǎn)流感流行特征分析
    忘記ESXi主機(jī)root密碼怎么辦
    精彩語句
    首屆歐洲自行車共享站點(diǎn)協(xié)商會召開
    中國自行車(2017年1期)2017-04-16 02:53:52
    怕被人認(rèn)出
    故事會(2016年21期)2016-11-10 21:15:15
    达孜县| 北辰区| 西乌珠穆沁旗| 安新县| 大冶市| 九龙坡区| 万宁市| 南江县| 双鸭山市| 东丰县| 中牟县| 霍林郭勒市| 成安县| 渝中区| 壤塘县| 时尚| 武邑县| 鱼台县| 永丰县| 涞源县| 汉源县| 凤冈县| 新疆| 龙门县| 兰考县| 琼中| 新和县| 咸丰县| 车致| 钟祥市| 海晏县| 胶南市| 仪征市| 定日县| 满洲里市| 嘉荫县| 黄平县| 顺平县| 天镇县| 仙居县| 来凤县|