本文參考文檔 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成功。