壹 下载Apache 和 PHP源码包:
Apache:http://httpd.apache.org/download.cgi
PHP:http://php.net/downloads.php
贰 安装依赖:
一、养成update,upgrade的好习惯,以免之后因为系统没更新而报错。
1、sudo apt-get update
这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。
update后,可能需要upgrade一下。
2、sudo apt-get upgrade
这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果你的软件都是最新版本,会提示:升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
***总而言之,update是更新软件列表,upgrade是更新软件。
二 、需要的依赖:可能不是都需要,都装了也没啥错。
sudo apt-get install build-essential (这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。)
sudo apt install libapr1-dev libaprutil1-dev
sudo apt install libpcre3-dev zlib1g-dev
apt-get install libxml2-dev (以免这个报错:在某些平台上,您可能需要安装相应的-dev包,以允许httpd与您安装的APR和APR-Util进行构建。)
apt-get install libexpat-dev
apt-get install openssl libssl-dev
apt-get install make
apt-get install curl libcurl4-gnutls-dev
apt-get install libfreetype6-dev
apt-get install libjpeg-dev libpng12-dev
apt-get install libmcrypt-dev
apt-get install libreadline6 libreadline6-dev
APR:wget http://mirrors.hust.edu.cn/apache//apr/apr-1.6.2.tar.gz(可以不手动安,在编译apache时加:--with-included-apr)
APR-UTIL:wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.6.0.tar.gz (可以不手动安,在编译apache时加:--with-included-apr)
PCRE:wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz (手动装一下)
叄 编译安装apache:
一、这个大体流程都是:
1、解压源码包: tar -zxvf httpd-2.4.34.tar.gz
2、cd到解压的目录下: cd httpd-2.4.34
3、在上面的目录下执行编译: ./configure --prefix=/opt/apache2 --enable-so --with-included-apr
(--prefix=/opt/apache2:--prefix=后面接你指定的安装目录)
(--enable-so:让apache核心装载DSO)
(--with-included-apr:让之前不需要手动安装apr。apr-util)
4、make clean make clean (清理之前的安装环境,以免后面莫名其妙的报错)
5、make make
6、make install make install
二、检验Apache网站是否开通:
打开浏览器,输入网址:http://localhost/ 或者 localhost:80 或者你服务器的IP, 看到 It works 就行了 。
例如:
三、httpd和apachectl命令:
当我们安装好apache服务器后通常会在Serverroot/bin/目录形成一些相关的执行命令,其中httpd文件是apache服务器的主程序。其被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。Apache服务器的所有相关操作都可以通过httpd命令进行完成,但是通常情况下我们并不建议这么做,而是通过同一目录下的apachectl命令通过调用httpd命令的方式来完成对服务器的开启,关闭等相关的操作的。
apachectl -k start|restart|graceful|graceful-stop|stop
cd /opt/apache/bin 这个目录下有apachectl文件。
./apachectl start 在上面的目录下执行这个命令。
若没有这个命令。可以在环境变量里设置:export PATH=/usr/apache/bin:$PATH。也可能是之前没有make clean。
或者:
httpd -k start|restart|graceful|graceful-stop|stop
cd /opt/apache/bin
./httpd
肆、编译安装PHP:
一、装好后把PHP解压包里的php.ini-development或者php.ini-production文件拷贝到PHP安装目录下的/etc目录下,修改为php.ini,确保测试环境(本地)与正式环境(线上)一致。
cp php.ini-production /opt/php/etc/php.ini
php.ini-development ,对应于php.ini-dist,适合开发程式使用(测试用)
php.ini-production ,对应于php.ini-recommended,拥有较高的安全性设定,则适合上线当产品使用
官方说明:
二、创建一个目录存放网站文件(随意创建,自己喜欢就好,但是一般用这个路径):
mkdir /var/www
mkdir /var/www/html
注意事项:
1、一般来说,在make的时候,会重新生成objects, 也就说新的object覆盖旧的objects,所以貌似make命令本身应该是包含了make clean的功能。但是,实际用的时候,比如多次编译调试运行,有时候会遇到一些莫名其妙的问题,去百度查查,高手们一般都会支招说先make clean一下,再重新make。所以,建议大家修改了一些关键头文件、或者改动量比较大、或者修改了比较多的问题点时,先make clean一下,再进行make,确保整个工程能够重新正确的编译。