【LAP服務器搭建】Linux平臺+Apache服務器+PHP語言源碼安裝及配置

最近發現自己曾經配過無數次的WEB服務器出現了一些小問題,原因是我換成了Linux平臺,而以前也只是配配源碼的Apache服務器,現在,我需要再添加PHP語言,使得Apache能解析PHP.本次安裝全是源碼安裝,因此早早的把CentOS裏面的Apache和PHP卸載了.
下面我來介紹下安裝順序。

  • Apache安裝[2.4]版本
  • PHP 安裝[5.3x以上]版本

別看安裝的少,實際上需要許多依賴的.所以我在裝之前先把依賴安裝好
第一步:安裝APACHE前提

安裝 apr包

wget http://apache.fayea.com//apr/apr-1.5.2.tar.gz
tar -xvzf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --help 
查看配置安裝可選擇的配置項
這裏我們可以看到 
--prefix=
--exec-prefix= 默認在prefix/bin下
表示的是安裝路徑和執行路徑
./configure --prefix=/opt/apr
make && make install
cd /opt/apr/bin
ls 查看可執行文件
apr-1-config

一般apr包是能安裝的,如果缺少依賴的話,清查看錯誤異常,然後下載依賴包編譯安裝,再通過 ./configure –help去查看如何安裝.

apr-util包安裝

wget http://apache.fayea.com//apr/apr-util-1.5.4.tar.gz
tar -xvzf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --help 找到一些關鍵的選項
--prefix=
--with-apr= 需要有apr的支持
./configure --prefix=/opt/apr-util --with-apr=/opt/apr
make && make install

cd /opt/apr-util/bin
ls 查看可執行文件
apu-1-config 

安裝好後,請不要先把這兩個文件目錄刪除,在後面安裝apache還需要用到.

pcre安裝

wget http://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz
tar -xvzf pcre-8.37.tar.gz
cd pcre-8.37
./configure --help | grep prefix
--prefix 可以使用
./configure --prefix=/opt/pcre
make && make install

這樣三個依賴前提都已經安裝好了,至於三個包分別起到什麼作用,可以去搜索一下,如果介紹下去我也不是特別的懂.

第二步:安裝apache
首先我們需要下載最新版本2.4.x版本

下載的時候使用命令行下載太慢,改用瀏覽器下載,實際是一樣的.
wget http://apache.dataguru.cn//httpd/httpd-2.4.12.tar.gz
tar -xvzf httpd-2.4.12.tar.gz
cd httpd-2.4.12
./configure --help
--prefix= 
--enable-so 模塊自動加載
--enable-rewrite 開啓重寫模塊
--with-apr  依賴 apr
--with-apr-util 依賴 apr-util
--wtih-pcre  依賴pcre
執行
./configure --prefix=/opt/httpd  --enable-so   --enable-rewrite --with-apr-util=/opt/apr-util --with-apr=/opt/apr --with-pcre=/opt/pcre 
make && make install
如果沒有報錯,那麼cp apr 和 apr-util 兩個包到srclib中就沒有必要了.

第三步,將apache設置成服務項

cp /opt/httpd/bin/apachectl /etc/rc.d/init.d/httpd
vi /etc/rc.d/init.d/httpd
第1#!/bin/sh
在第2行加入
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve
# HTML files and CGI.
退出後使用
chkconfig –add httpd
就可以
service httpd start|stop|status 了

這一段內容是截取網上的一些文章,自己也親自測試過可行.

解決 “httpd: Could not reliably determine the server’s fully qualified domain name”問題

vi /opt/httpd/conf/httpd.conf
臨時辦法
ServerName 127.0.0.1:80
原因是開啓了一個域名對應主機的模塊,當然可以取消使用模塊.
service httpd start
這時候就可以看到 It Works! 的文字

查看apache的配置

/opt/httpd/bin/apachectl -V
 -D HTTPD_ROOT="/opt/httpd"  apache 根目錄
 -D SUEXEC_BIN="/opt/httpd/bin/suexec" 
 -D DEFAULT_PIDLOG="logs/httpd.pid" apache 主線程id
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"  錯誤日誌
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf" 配置文件路徑

第四步,安裝php前提
php也是有一定的依賴的,最近了解了下php-cli 和 php-cgi 兩種模式,實際上這一次安裝使用php-cli的方法,這就必須依賴apache的apxs命令了,它會編譯一個lib5php.so的文件.
1. libxml2包 下載地址 ftp://gd.tuwien.ac.at/pub/libxml/libxml2-2.9.0.tar.gz

libxml2其它版本地址ftp://xmlsoft.org/libxml2/

wget ftp://gd.tuwien.ac.at/pub/libxml/libxml2-2.9.0.tar.gz

tar -xvzf libxml2-2.9.0.tar.gz
cd  libxml2.9.0
./configure --help
--prefix
./configure --prefix=/opt/libxml2
make && make install
這是安裝php必須要指定的一個庫.

第五步,安裝php
關於php的源碼下載,可以從官網去找鏈接,這裏需要告訴大家,項目不同,使用的php版本也許也不同,最好是下載與項目要求的版本一致,這樣在跨平臺的時候,保證可行性.
php5.4.40 下載鏈接:http://cn2.php.net/get/php-5.4.40.tar.gz/from/this/mirror

wget http://cn2.php.net/get/php-5.4.40.tar.gz/from/this/mirror
這裏建議使用瀏覽器下載 用wget太慢了
tar -xvzf php-5.4.40.tar.gz
cd php-5.4.40
./configure --help
--prefix php 根目錄
--with-libxml-dir 支持依賴庫路徑
--with-config-file-path  php.ini文件存放生效目錄
--with-config-file-scan-dir
--with-apxs  讓apache支持cli模式的php
--bindir bin執行目錄
--sbindir sbin執行目錄
執行以下代碼
 ./configure  --prefix=/opt/php --with-libxml-dir=/opt/libxml2/ --with-config-file-path=/etc/php/php-5.4.40  --with-apxs2=/opt/httpd/bin/apxs
 make && make install

然後需要修改httpd.conf文件 加入解析腳本type

vi /opt/httpd/conf/httpd.conf
AddType  application/x-httpd-php  .php .phtml 
#細心的人應該看到 LoadModule 裏面有一個libphp5.so 這就是通過apxs命令編譯的模塊,默認放在apache下的modules裏面.

接下來我們測試apache是否支持php,不用多說,就寫一個index.php,裏面有phpinfo();

service httpd restart
vi /opt/httpd/htdocs/index.php

index.php

<?php
phpinfo();
?>

其實我們的機子裏有兩個php版本,而能用命令行直接讀取的是舊的5.3.29版本,我把它的php命令軟鏈接到path目錄下.而apache讀取的是我新安裝的php5.4.40版本.說明apache讀取的libphp5.so這個編譯模塊的內容.所以換一個php版本還需要再次編譯咯.

tips小知識點
1. 查看php安裝時 configure 內容

cd /opt/php/bin
./php -i | grep configure

2.查看php已經的安裝模塊

./php -m
[PHP Modules]
Core
ctype
date
dom
ereg
fileinfo
filter
hash
iconv
json
libxml
pcre
...
  1. 查看apache配置信息
cd /opt/httpd/bin
./apachectl -V
[root@lzx bin]# ./apachectl  -V

Server version: Apache/2.4.12 (Unix)
Server built:   May 13 2015 06:22:26
Server's Module Magic Number: 20120211:41
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   32-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/opt/httpd"
 -D SUEXEC_BIN="/opt/httpd/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

這樣基本的安裝apache和php就完成了,有機會可以完善一下,添加php-cgi的安裝模式.安裝配置好後,就是爲了之後編譯phalcon框架.下次會介紹phalcon框架的編譯和安裝使用.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章