實驗拓撲
php
實驗需求mysql
要求php以FastCGI模式和httpd協同工做而且可以連接MySQL數據庫linux
訪問靜態頁面內容直接有httpd處理sql
訪問動態頁面交由PHP處理shell
實驗規劃數據庫
全部linux系統使用:CentOS 2.6.32-431.el6.x86_64apache
Apache版 本 號 爲:httpd-2.4.16.tar.gz服務器
PHP 版 本 號 爲:php-5.6.11.tar.bz2socket
MySQL 版 本 號 爲:mysql-5.5.24.tar.gzide
httpd服務器地址爲:192.168.10.150/24
PHP 服務器地址爲:192.168.10.200/24
MySQL服務器地址爲:192.168.10.250/24
實驗步驟
爲了實驗方便建議關閉防火牆和selinux
[root@CentOS-1 ~]# service iptables stop
[root@CentOS-1 ~]# setenforce 0
安裝httpd服務
安裝編譯工具以及依賴包
編譯安裝apr和apr-util
建立apr和apr-util的安裝目錄
將apr和apr-util解壓
切換至apr源碼目錄並配置apr安裝路徑
配置完成後若是最後幾行沒有報錯便可「make && make install」編譯並安裝了
切換至apr-util源碼目錄並配置相關參數,因爲apr-util依賴於apr因此要指定apr所在目錄
建立apache安裝目錄,並解壓其壓縮包,切換路徑到源碼包所在目錄
./configure
--prefix=/usr/local/apache \ //指定安裝路徑
--enable-so \ //支持動態共享模塊
--enable-rewirte \ //支持URL重寫
--enable-cgi \ //支持CGI
--enable-cgid \ //使用event或者worker的mpm模式要啓用cgid
--enable-modules=most \
--enable-mods-shared=most \ //啓動共享模塊
--enable-mpms-shared=all \ //支持全部mpm模式
--with-apr=/usr/local/apr \ //指定apr位置
--with-apr-util=/usr/local/apr-util //指定apr-util位置
若是配置沒有報錯則直接編譯並安裝
編輯httpd的service啓動腳本在開頭添加以下2行內容
將httpd的service啓動腳本添加執行權限
將httpd加入到chkconfig設置開機自啓動
啓動httpd服務
因爲沒有定義域名因此會報一個警告這個是正常的,能夠經過netstat命令過濾一下80端口發現是正在監聽
訪問頁面測試httpd是否工做正常
安裝MySQL數據庫
安裝cmake等編譯工具以及相關依賴包
建立mysql用戶並指定shell爲「/sbin/nologin」
建立mysql安裝目錄,解壓mysql並切換至源碼目錄
使用cmake配置mysql參數
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //安裝路徑
-DMYSQL_DATADIR=/home/mysql \ //數據文件路徑,若是不指定就是安裝目錄下的data
-DSYSCONFDIR=/etc \ //配置文件路徑
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //安裝INNOBASE存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ //安裝ARCHIVE存儲引擎
-DWITH_BLCAKHOLE_STORAGE_ENGINE=1 \ //安裝BLACKHOLE存儲引擎
-DWITH_READLINE=1 \ //可以使用localinfile來批量導入mysql數據
-DWITH_SSL=system \ //支持基於SSL的會話
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \ //壓縮庫
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ //默認套接字文件路徑
-DEXTRA_CHARSETS=all \ //支持的字符集
-DDEFAULT_CHARSET=utf8 \ //默認的字符集
-DDEFAULT_COLLATION=utf8_general_ci //字符集排序規則
若是配置無誤便可編譯安裝
將mysql全部文件屬主修改成mysql組
建立配置文件,若是已有則直接覆蓋
將mysql加入到$PATH路徑中
啓動mysql數據庫,默認監聽在TCP的3306端口
安裝php
安裝編譯工具
安裝GD庫
建立php安裝目錄,並將壓縮包解壓而後切換至源碼包所在目錄
./configure --prefix=/usr/local/php \ //指定安裝路徑
--enable-fpm \ //啓用fpm模式
--with-mysql=mysqlnd \ //若是要想鏈接數據庫就須要加上這三項
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \//開啓openssl功能
--enable-mbstring \
--with-freetype-dir \//加載freetype字體庫
--with-jpeg-dir \//支持圖片
--with-png-dir \
--with-zlib \//讓數據文件先壓縮在傳送
--with-libxml-dir=/usr \ //指定xml庫目錄
--enable-xml \//開啓xml支持
--enable-sockets \//讓PHP支持套接字
--with-config-file-path=/etc \//PHP配置文件位置
--with-config-file-scan-dir=/etc/php.d \//關聯子配置文件的位置
--with-bz2
若是配置過程沒有任何報錯則能夠編譯並安裝了
建立PHP配置文件
爲php-fpm提供service啓動腳本,並添加到chkconfig管理
啓動php-fpm
配置httpd支持php
編輯httpd的配置文件
將此行的註釋#號去掉開啓虛擬主機
將這2個模塊啓用,將其前面註釋去掉
編輯虛擬主機配置文件
輸入以下內容
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.200:9000/opt/www/$1
//匹配以/開頭「.php」結尾的文件交有192.168.10.200:9000(PHP服務器)處理,$1表示調用前面括號中的內容「(.*\.php)$」
重啓httpd服務
在PHP服務器中建立php測試頁
輸入以下內容
訪問測試是否可以工做正常
因而可知PHP頁面工做正常
測試httpd自身的靜態頁面
切換至數據庫服務器受權一個用戶
進入數據庫
添加tom帳號,擁有全部權限,容許從任意主機登陸(%表示任意IP),刷新受權信息
編輯PHP服務器的網頁文件,測試數據庫連接是否正常
輸入一下內容
測試數據庫是否連接正常
使用php-fpm模式和模塊方式安裝的區別在於模塊安裝用到php時直接將模塊加載進來而php-fpm模式則是須要啓動一個新的進程