linux之apache部署php(源碼)

本文參考文檔  https://blog.csdn.net/zl834205311/article/details/82856817

                        https://blog.csdn.net/u011280342/article/details/80024016

筆者是在windows安裝的VWware虛擬機,裝載CentOS7 64位系統。

源碼版本,apache-2.4.41,php-7-2-10以及apache安裝依賴包apr-1.6.5,apr-util-1.6.1,pcre-8.40

源碼來源,apache-2.4.41   http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.41.tar.gz

php-7.2.10  http://mirrors.sohu.com/php/php-7.2.10.tar.gz

apache和php的部署是有順序的,先apache,後php,原因後面說。

apache的部署。

apache安裝之前,需要安裝APR、APR-Util和PCRE依賴包,因爲apache是依賴於它們的

APR: https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.5.tar.gz

APR-Util:https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz

PCRE:https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz

1.一般源碼默認安裝路徑是/usr/local/下,將源碼用wget下載並解壓

tar -zxvf apr-1.6.5.tar.gz -C /usr/local/
tar -zxvf apr-util-1.6.1.tar.gz -C /usr/local/
tar -zxvf pcre-8.40.tar.gz -C /usr/local/
tar -zxvf httpd-2.4.41.tar.gz -C /usr/local/

2.將apr與apr-util移動到指定目錄(httpd-2.4.41/srclib/)下並安裝編輯器
mv apr-1.6.5 httpd-2.4.41/srclib/apr
mv apr-util-1.6.5 httpd-2.4.41/srclib/apr-util
yum install gcc gcc-c++

3.到pcre-8.40目錄下配置並安裝pcre
./configure --prefix=/usr/local/pcre

make && make install

4.到http-2.4.41目錄下配置並安裝httpd
./configure --prefix=/usr/local/apache --with-included-apr --with-pcre=/usr/local/pcre

make && make install

5.安裝完成後,就需要更改配置設置域名並測試了。

爲避免麻煩,提前關閉防火牆。

systemctl stop firewalld

curl 虛擬機ip,返回‘it works’,說明安裝無誤。

vi  /usr/local/apache/conf/extra/httpd-vhosts.conf 

設置自定義域名,添加

<VirtualHost *:80>
    ServerName www.mytest.com
    DocumentRoot "/var/www/html"
    <Directory "/var/www/html">
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>
</VirtualHost>

保存後重啓生效,同時需要修改linux的hosts域名目錄文件

vi /etc/hosts

添加  ip/localhost  www.mytest.com

curl www.mytest.com,返回‘it works’,說明域名設置成功。

6.下面轉向php安裝,過程同上,可能編譯時會爆出很多錯誤,大多都是需要安裝新的插件或工具,耐心解決。

./configure --prefix=/usr/local/php-7.2.10 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip --with-apxs2=/usr/local/apache/bin/apxs
注意:上面命令最後的–with-apxs2=/usr/local/apache/bin/apxs千萬不能少,否則在Apache下的/usr/local/apache2/modules目錄下不會生成libphp7.so模塊

make && make install

7.打開Apache的/usr/local/apache2/conf下的httpd.conf,爲了使得Apache識別php,應該做如下修改:

<IfModule dir_module> DirectoryIndex index.html </IfModule>

->

<IfModule dir_module> DirectoryIndex index.html  index.php </IfModule>

在配置文件中搜素: AddType 關鍵字,在其後面追加下面三行,如果不追加,httpd會直接打印php文件內容,不會調用php執行。

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

還有必須新增一行:

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

在/usr/local/apache/htdocs目錄下新建info.php

<?php

     phpinfo();

?>

運行curl www.mytest.com/info.php ,如顯示php的版本信息,說明apache解析php成功。

 

 

 

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