1. 程式人生 > >linux 安裝Apache, php並安裝php擴充套件

linux 安裝Apache, php並安裝php擴充套件

首先安裝Apache伺服器

1. 下載原始碼包

http://httpd.apache.org/download.cgi#apache24

2. 上傳到伺服器, 解壓

tar zvxf httpd-XX.tar.gz

3. 安裝 apr和apr-util(如果已安裝,可直接看4)

下載apr與apr-util , 地址 : http://apr.apache.org/

解壓 apr , 修改解壓好的目錄名, 不要帶版本號(官網上說的), 進入解壓目錄,執行

 ./configure    (如果沒有改解壓目錄名, 則需要指定安裝路徑 --prefix=/xxx/apr) 
   make
   make install

 

解壓apr-util,修改目錄名(去掉版本號),進入解壓目錄, 執行

cd apr-util
  ls
  ./configure --with-apr=/web/servers/apr(為apr安裝路徑)

4. 進入到解壓目錄, 執行命令

./configure --prefix=PREFIX (PREFIX為你要安裝的路徑)

make

make install

5. 將Apache安裝為服務

找到安裝目錄下的 apachectl , 拷貝到init.d下

cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd

在init.d的httpd連結檔案中第2行新增如下注釋,並wq儲存退出

#chkconfig:35 61 61
#description:Apache

此時可以使用 service httpd start 開啟 apache 伺服器, 使用 chkconfig --list 可以檢視服務列表

6. 簡單配置 httpd.conf 檔案

Listen 8080 修改為自己需要監聽的埠

LoadModule php5_module modules/libphp5.so 加上對php的支援, 如果安裝的時候沒有配置的話, 現在手動加上

 AllowOverride None 改為  AllowOverride All (所有的,雖然不知道為什麼,ps:我是小白),

加上下面兩句(當時忘了加了, 結果訪問的時候直接將php檔案給下載下來了)

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

安裝 PHP

1. 下載原始碼包 http://php.net/downloads.php 2. 上傳到伺服器, 解壓 3. 安裝 libxml2 (因為執行下一步的時候報錯) yum install libxml2 yum install libxml2-devel 4. 配置 ./configure --prefix=/web/php/php5.6/ --with-apxs2=/web/servers/apache24/bin/apxs

兩個引數分別是php的安裝路徑和apache安裝路徑

5. 簡單修改 php.ini

將原始碼包下的 php.ini-development 拷貝到安裝路徑下的 lib 目錄下, 並改名為 php.ini

配置引數可以參考網上的

安裝php擴充套件

因為安裝php的時候沒有指定任何擴充套件, 只能手動安裝了

先安裝 curl(因為我在windows下被他折磨的最慘, 當時第一次接觸php)

1. 進入到php原始碼目錄下的ext, 裡面都是擴充套件

2. 進入curl目錄

cd curl/

/web/php/php5.6/bin/phpize (此路徑是安裝路徑, 跟原始碼路徑不是一個)

./configure --with-php-config=/web/php/php5.6/bin/php-config (報錯, 需要安裝curl-devel)

yum install curl curl-devel

再執行上面的兩條命令 , 就會發現在安裝路徑下的lib目錄下多了extensions/no-debug-zts-20131226/curl.so., 再配置一下php.ini就可以了

本以為其他擴充套件也一樣手到擒來, 結果現實是骨感的, 安裝mysql擴充套件的時候直接把我整崩潰了

在mysql/目錄下執行上面類似的命令時, 報錯了, 具體錯不說了, 反正就是error, 然後在網上找到說安裝mysql擴充套件需要用到mysql資料庫, 需要這樣寫命令

./configure --with-php-config=/web/php/php5.6/bin/php-config --with-mysql=/usr/lib/mysql/ 後面的是mysql的安裝路徑

但是還是報錯, 說是Cannot find MySQL header files under /usr/include/m, 然後就是瘋狂的找資料, 最後有人說需要安裝mysql開發包, 因為之前伺服器上用yum裝過mysql(我是做java的), 就按照網上的試了試

yum install php-mysql

執行上面的命令, 還是報上面的錯, 不知道什麼原因, 後來一發狠, 你不是在lib下找不到嗎, 我直接給你寫到上級目錄, 然後執行, 發現生成了mysql.so檔案, 莫名其妙啊

./configure --with-php-config=/web/php/php5.6/bin/php-config --with-mysql=/usr

make

make install

本以為mysql擴充套件都成功了, mysqli應該一樣, 結果又出么蛾子了, 安裝的時候先是跟安裝mysql擴充套件一樣的命令, 結果報錯, 在網上找說是要用mysql-config

就用了 find / -name mysql_config, 找到了路徑

執行

phpize

./configure --with-php-config=/web/php/php5.6/bin/php-config --with-mysqli=/usr/lib/mysql/mysql_config 

make 

結果出現了 找不到 ext/mysqlnd/mysql_float_to_double.h, 然後就去原始碼包去找, 納尼, 竟然找到了, 還說沒有, 但是就是報錯, 得, 你是大爺,接著找解決方法, 突然想到執行命令是在mysqli, 會不會是以此為根目錄的, 然後我就把原始碼包的檔案目錄結構在mysqli裡又建了一遍, mysqli/ext/mysqlnd/mysql_float_to_double.h,

然後執行

phpize

./configure --with-php-config=/web/php/php5.6/bin/php-config --with-mysqli=/usr/lib/mysql/mysql_config 

make 

make install

蒼天啊, 大地啊, phpinfo()終於打印出來了

安裝 pdo_mysql 擴充套件的時候要加上 --with-pdo-mysql=/usr

至此, 算是告一段落