【Linux】LAMP架構之以模塊方式讓php和httpd搭檔工做

LAMP就是:Linux,Apache,Mysql,PHP的首字母縮寫。php


實驗環境html

Linux :CentOS-3 2.6.32-431.el6.x86_64
mysql

Apache:httpd-2.4.16.tar.gzlinux

Mysql :mysql-5.5.24.tar.gzc++

PHP   :php-5.6.11.tar.bz2sql


安裝順序爲:Apahce --> Mysql --> PHPshell


實驗步驟數據庫


方便實驗先關閉iptables和selinuxapache

[root@CentOS-3 ~]# service iptables stopvim

[root@CentOS-3 ~]# setenforce 0


安裝如下編譯工具和依賴包

[root@CentOS-3 ~]# yum -y install gcc \

> gcc-c++ \

> make \

> cmake \

> pcre-devel 


安裝apr和apr-util

apr是爲了搭建apache的運行環境


建立apr和apr-util安裝目錄

[root@CentOS-3 ~]# mkdir /usr/local/apr

[root@CentOS-3 ~]# mkdir /usr/local/apr-util


將源碼包解壓

[root@CentOS-3 ~]# tar xf /mnt/apr-1.5.2.tar.gz -C /usr/local/src/

[root@CentOS-3 ~]# tar xf /mnt/apr-util-1.5.4.tar.gz -C /usr/local/src/

切換到源碼包所在路徑

[root@CentOS-3 ~]# cd /usr/local/src/apr-1.5.2/

配置apr指定安裝目錄

[root@CentOS-3 apr-1.5.2]# ./configure --prefix=/usr/local/apr

以上配置完成若是沒有報錯則執行編譯並安裝

[root@CentOS-3 apr-1.5.2]# make && make install

切換到apr-util源碼目錄下

[root@CentOS-3 ~]# cd /usr/local/src/apr-util-1.5.4/

配置apr-util安裝目錄並指定apr所在路徑

[root@CentOS-3 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr

以上無報錯便可編譯並安裝

[root@CentOS-3 apr-util-1.5.4]# make && make install


編譯apache

建立apache根目錄

[root@CentOS-3 ~]# mkdir /usr/local/apache

解壓並切換至apache源碼包目錄下

[root@CentOS-3 ~]# tar xf /mnt/httpd-2.4.16.tar.gz -C /usr/local/src/

[root@CentOS-3 ~]# cd /usr/local/src/httpd-2.4.16/


定製httpd


[root@CentOS-3 httpd-2.4.16]# ./configure \

--prefix=/usr/local/apache \     //指定安裝目錄

> --enable-so \          

//支持動態共享模塊,不然php沒法以模塊方式和apache結合工做

> --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 \        //支持全部mpm模塊

--with-apr-util=/usr/local/apr-util        //指定apr-util位置

以上無報錯便可編譯並安裝

[root@CentOS-3 httpd-2.4.16]#make && make install


啓動httpd

[root@CentOS-3 ~]# /usr/local/apache/bin/apachectl start


測試看httpd是否工做正常

服務器的IP地址爲:192.168.10.250

wKioL1ajkL3S-FKEAAA1KY_Y65I934.png


安裝Mysql數據庫

安裝數據須要先安裝ncurses-devel

[root@CentOS-3 mysql-5.5.24]# yum -y install ncurses-devel

建立Mysql安裝目錄

[root@CentOS-3 ~]# mkdir /usr/local/mysql

建立mysql用戶,"-s"指定登陸shell

[root@CentOS-3 ~]# useradd -s /sbin/nologin mysql

解壓Mysql並切換至源碼包所在目錄

[root@CentOS-3 ~]# tar xf /mnt/mysql-5.5.24.tar.gz -C /usr/local/src/

[root@CentOS-3 ~]# cd /usr/local/src/mysql-5.5.24/


使用cmake工具定義mysql

[root@CentOS-3 mysql-5.5.24]# 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 \

可以使用loadinfile來批量導入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

字符集排序規則


以上若是沒有報錯則執行編譯並安裝數據庫

[root@CentOS-3 mysql-5.5.24]# make && make install


爲了系統安全將mysql目錄下屬組改成mysql

[root@CentOS-3 ~]# chown :mysql /usr/local/mysql/


初始化數據庫

[root@CentOS-3 mysql-5.5.24]# /usr/local/mysql/scripts/mysql_install_db \

> --user=mysql \

> --ldata=/var/lib/mysql \

> --basedir=/usr/local/mysql \

> --datadir=/home/mysql


建立配置文件

[root@CentOS-3 mysql-5.5.24]# cp support-files/my-large.cnf /etc/my.cnf


建立啓動腳本,加入到service管理

[root@CentOS-3 mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld


配置開機啓動

[root@CentOS-3 mysql-5.5.24]# chkconfig --add mysqld

[root@CentOS-3 mysql-5.5.24]# chkconfig mysqld on

添加執行權限

[root@CentOS-3 mysql-5.5.24]# chmod 755 /etc/init.d/mysqld


將mysql添加到$PATH環境變量中

[root@CentOS-3 mysql-5.5.24]# vim /etc/profile.d/mysql.sh

輸入如下內容

export PATH=$PATH:/usr/local/mysql/bin

運行腳本使其當即生效

[root@CentOS-3 mysql-5.5.24]# . /etc/profile.d/mysql.sh


啓動mysql

[root@CentOS-3 mysql-5.5.24]# service mysqld start


爲了後面測試方便受權一個帳號

進入mysql數據庫

[root@CentOS-3 ~]# mysql -u root

受權tom用戶全部權限

mysql> GRANT all ON *.* TO 'tom'@'192.168.10.250' IDENTIFIED BY '123456';

刷新受權信息

mysql> flush privileges;




安裝PHP

默認apache只能支持靜態的網站要想支持動態網站須要與PHP搭配工做

php與httpd工做有三種方式分別爲:CGI、Modules、FastCGI


下面以Modules方式安裝PHP


建立安裝目錄

[root@CentOS-3 ~]# mkdir /usr/local/php

解壓PHP並切換至PHP源碼包所在目錄

[root@CentOS-3 ~]# tar xf /mnt/php-5.6.11.tar.bz2 -C /usr/local/src

[root@CentOS-3 ~]# cd /usr/local/src/php-5.6.11/


安裝GD庫以及關聯程序

[root@CentOS-3 php-5.6.11]# yum -y install \

> libjpeg-devel \

> libpng-devel \

> freetype-devel \

> zlib-devel \

> gettext-devel \

> libXpm-devel \

> libxml2-devel \

> fontconfig-devel \

> openssl-devel \

> bzip2-devel



配置PHP

[root@CentOS-3 php-5.6.11]# ./configure \

> --prefix=/usr/local/php \

指定安裝路徑

> --with-mysql=/usr/local/mysql \

指定mysql位置

> --with-openssl \

開啓openssl功能

> --with-mysqli=/usr/local/mysql/bin/mysql_config \

另外一種mysql訪問接口

> --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-apxs2=/usr/local/apache/bin/apxs \

將mysql編譯成apache模塊

> --with-config-file-path=/etc \

PHP配置文件位置

> --with-config-file-scan-dir=/etc/php.d \

> --with-bz2 \

> --enable-maintainer-zts

若是apache的mpm使用的是event或worker時要加,不是不用


以上若是不報錯便可編譯並安裝

[root@CentOS-3 php-5.6.11]# make && make install


建立配置文件

[root@CentOS-3 php-5.6.11]# cp php.ini-production /etc/php.ini



編輯httpd配置文件,搜索「/AddType」添加以下內容讓apache支持php格式頁面

[root@CentOS-3 ~]# vim /usr/local/apache/conf/httpd.conf

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

wKiom1ajrt2CcbskAAEiZMNg5XU909.png



繼續搜索「/DirectoryIndex」在此處添加一下內容以支持php主頁面

LoadModule    php5_module    modules/libphp5.so

DirectoryIndex index.php index.html

wKiom1ajqlLynsyoAABIMlqRrVk121.png


將httpd的默認主頁修改成「.php」,並輸入如下代碼進行測試

切換至網頁文件目錄

[root@CentOS-3 ~]# cd /usr/local/apache/htdocs/

改成index.php

[root@CentOS-3 htdocs]# mv index.html index.php

編輯文件刪除原有內容,添加以下內容

<?php

phpinfo();

?>


重啓httpd服務

[root@CentOS-3 htdocs]# /usr/local/apache/bin/apachectl restart


訪問服務器測試

wKioL1ajr8mw90uMAAFIpZUPlqs789.png出現以上界面說明php與httpd搭檔成功


關聯數據庫測試


編輯網頁文件刪除原有內容輸入如下代碼

[root@CentOS-3 htdocs]# vim index.php

<?php

    $conn=mysql_connect('192.168.10.250','tom','123456');

    if($conn)

        echo "數據庫鏈接成功!!";

    else

        echo "數據庫鏈接失敗!!";

?>

wKiom1ajsTSBnSkcAABA8-78atU132.png


訪問服務器測試

wKiom1ajsW-CVAkDAABbbBAmj_w003.png

以上就是lamp架構的內容了

以模塊方式使php和httpd搭檔工做,把PHP編譯成httpd的模塊,不能獨立執行。當httpd須要用到php進程的時候直接從磁盤加載進來,在它內部運行便可不須要啓動一個新的進程。

相關文章
相關標籤/搜索