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
安裝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
繼續搜索「/DirectoryIndex」在此處添加一下內容以支持php主頁面
LoadModule php5_module modules/libphp5.so
DirectoryIndex index.php index.html
將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
訪問服務器測試
關聯數據庫測試
編輯網頁文件刪除原有內容輸入如下代碼
[root@CentOS-3 htdocs]# vim index.php
<?php
$conn=mysql_connect('192.168.10.250','tom','123456');
if($conn)
echo "數據庫鏈接成功!!";
else
echo "數據庫鏈接失敗!!";
?>
訪問服務器測試
以上就是lamp架構的內容了
以模塊方式使php和httpd搭檔工做,把PHP編譯成httpd的模塊,不能獨立執行。當httpd須要用到php進程的時候直接從磁盤加載進來,在它內部運行便可不須要啓動一個新的進程。