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
至此, 算是告一段落