linux中編譯安裝Apache、PHP、MySQL(上)


1、簡介

  在阿里雲買了個雲服務器,一直沒時間折騰。過了近十天了吧,才有時間好好玩玩這個雲服務器。自己是做Web開發的,所以我需要的開發環境是LAMP。之前打算是采用yum安裝,不過yum安裝apache可以安裝到2.4版本,而PHP最高安裝版本只能是5.4,這也是yum安裝PHP的軟肋,因此我這里主要涉及到的安裝方式是源碼安裝。通過源碼安裝能夠更好的管理這些軟件,想安裝到哪就放在哪。
  雲服務器: 阿里雲CentOS 7.2 64位
  阿帕奇版本:apache2.4
  PHP版本:PHP5.6
  主要的安裝方式:源碼安裝
 

2、安裝apache

  2.1、yum方式安裝apache

注意apache在linux中的名字是httpd
a、首先檢查是否已經安裝apache
  rpm -qa |grep httpd
  若沒有則進行下一步的安裝
b、yum安裝apache
  yum -y install httpd
  rpm -qa |grep httpd //檢查是否有安裝apache
c、開啟停止重啟apache服務
  service httpd start | stop | restart
  ps -A|grep httpd //檢查是否已經啟動apache服務
注意:
  CentOS7用的是Firewall-cmd,CentOS7之前用的是iptables防火牆;要想讓外網能訪問到apache主目錄,就需要做以下的操作:
  firewall-cmd --permanent --zone=public --add-service=http
  firewall-cmd --permanent --zone=public --add-service=https
  firewall-cmd --reload
命令含義:
  --zone #作用域
  --add-service=http #添加服務;也可以添加端口
  --add-port=80/tcp  #添加端口,格式為:端口/通訊協議
  --permanent   #永久生效,沒有此參數重啟后失效
d、訪問外網ip

  2.2、源碼方式安裝apache

a、 首先我們從apache官網中獲取apache2.4版本軟件
  也可以直接在linux中執行命令進行下載: wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.27.tar.gz
b、 安裝httpd的軟件依賴包
  這里我們采用yum安裝,方便快捷。
  yum install -y apr-devel apr-util-devel openssl-devel libevent-devel pcre-devel
c、 解壓安裝
1 tar -zxvf httpd-2.4.27.tar.gz
2 cd httpd-2.4.18
3 ./configure --prefix=/usr/local/apache24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-zlib --with-pcre --with-apr=/usr --with-apr-util=/usr
4 make && make install
   編譯說明:
  --prefix 指明程序安裝目錄 --enable-so 表示啟用模塊的動態裝卸載功能
  --enable-ssl 表示啟用ssl功能,此項可能需要先安裝openssl-devel包
  --enable-cgi 表示啟用支持cgi機制的功能 --enable-rewrite 表示支持url重寫功能
  --enable-modules=most 表示啟用的http模塊有哪些,most表示啟動大多數
  --enable-mpms-shared=all 表示以共享方式啟用哪些MPM模塊(prefork、worker、event), all表示所有的,此項為httpd2.4獨有的選項,因為只有2.4才支持MPM的動態裝卸載,2.2的MPM為靜態的,只有編譯進去,才能使用
  --with-mpm=prefork 表示默認啟動的MPM是哪種
  --with-zlib 表示依賴zlib,用於支持壓縮功能 沒用=等號指明zlib的路徑,則系統會自動到被依賴的文件的默認的路徑去尋找, 如果被依賴的文件不是rpm安裝,或不放在默認路徑下,則需要手動利用=等號指明路徑
  --with-pcre 表示依賴的pcre,用於支持url重寫時支持正則表達式 --with-apr 依賴的apr
  --with-apr-util 依賴的apr-util
注意:
  這里需要填寫依賴的軟件包的安裝位置,yum安裝是基於rpm進行安裝的,因此我們可以使用命令(rpm -ql 軟件全名)進行查看軟件安裝在哪里。一般來說,yum安裝大多數都安裝在usr目錄中。
d、啟動httpd服務
1 #cd /usr/local/apache24/bin/
2 #./apachectl start
  出現一個錯誤,即配置文件中沒有serverName,那就在httpd.conf 中增加 ServerName 
  vim /usr/local/apache24/conf/httpd.conf
  #增加 ServerName localhost
e、同上開啟相應的端口
f、訪問外網ip
 

3、安裝PHP

  3.1、yum方式安裝PHP

  方法同安裝apache一樣
  yum install php
  重啟httpd,開始測試

  3.2、源碼方式安裝PHP

a、首先將PHP壓縮文件下載下來
b、yum安裝依賴軟件
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel
c、解壓PHP壓縮文件,並安裝
tar zvxf php-5.6.30.tar.gz
cd php-5.6.30
groupadd www
useradd -g www -s /sbin/nologin www
#編譯相關參數
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache24/bin/apxs \ 
--with-config-file-path=/usr/local/php/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--with-readline
make
&& make install

 

##參數解釋
""" 安裝路徑 """
--prefix=/usr/local/php \
""" php.ini 配置文件路徑 """
--with-apxs2=/usr/local/apache24/bin/apxs \
""" 促使生成libphp5.so """
--with-config-file-path=/usr/local/php56/etc \
""" 優化選項 """
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
""" 啟用 opcache,默認為 ZendOptimizer+(ZendOpcache) """
--enable-opcache \
""" FPM """
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
""" MySQL """
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
""" 國際化與字符編碼支持 """
--with-gettext \
--enable-mbstring \
--with-iconv \
""" 加密擴展 """
--with-mcrypt \
--with-mhash \
--with-openssl \
""" 數學擴展 """
--enable-bcmath \
""" Web 服務,soap 依賴 libxml """
--enable-soap \
--with-libxml-dir \
""" 進程,信號及內存 """
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
""" socket & curl """
--enable-sockets \
--with-curl \
""" 壓縮與歸檔 """
--with-zlib \
--enable-zip \
--with-bz2 \
""" GNU Readline 命令行快捷鍵綁定 """
--with-readline
d、配置服務
#配置文件
cp php.ini-development /usr/local/php/etc/php.ini
#php-fpm 服務
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
 
chkconfig --add php-fpm
chkconfig on php-fpm
service php-fpm start
e、環境變量
#vim /etc/profile
  PATH=$PATH:/usr/local/php/bin
  export PATH
#source /etc/profile
f、修改apache配置文件
httpd.conf
  1、在LoadModule后面添加:LoadModule php5_module modules/libphp5.so //不添加則訪問.php文件將會變成下載
  2、在DirectoryIndex后面添加:index.php
  3、 在AddType application/x-gzip .gz .tgz后面添加:AddType application/x-httpd-php .php //.php前面有一個空格
 
注意:
源碼安裝的時候必須加上這個(--with-apxs2=/usr/local/apache24/bin/apxs),它的作用就是生成libphp5.so。
 
MySQL的安裝將在下一篇隨筆中《linux中編譯安裝Apache、PHP、MySQL(下)》
 

(以上是自己的一些見解,若有不足或者錯誤的地方請各位指出)

 作者:那一葉隨風   http://www.cnblogs.com/phpstudy2015-6/

 原文地址:http://www.cnblogs.com/phpstudy2015-6/p/7536872.html

 聲明:本博客文章為原創,只代表本人在工作學習中某一時間內總結的觀點或結論。轉載時請在文章頁面明顯位置給出原文鏈接

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM