相关文章推荐
果断的火腿肠  ·  ZymaD -·  6 月前    · 
腼腆的皮带  ·  Azure Space helps ...·  1 年前    · 

在如下页面下载apache的for Linux 的源码包

https://archive.apache.org/dist/httpd/

http://www.apache.org/dist/httpd/

存至/home/xx目录,xx是自建文件夹,我建了一个wj的文件夹。

命令列表:

cd /home

tar -zxvf httpd-2.4.54.tar.gz

mv httpd-2.4.54 apache

cd apache

./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-module=shared --enable-module=so

make && make install

安装apache至/usr/local/apache2 并配置apache支持dso方式

/usr/local/apache2/bin/apachectl restart

2.php

在如下页面下载php的for Linux 的源码包

http://www.php.net/downloads.php ;

存至/home/wj目录

命令列表:

cd /home

tar -xf php-5.6.30.tar.gz

cd php-5.6.30

./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs \       #--with-apxs2指向Apache的apxs路径

--enable-gd --enable-xml  \          #加载fpm、mbstring模块

--with-config-file-path=/usr/local/php5/etc \      #PHP配置文件路径
--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 \
--with-gd \
--with-freetype-dir=/usr/local/freetype \
--with-jpeg-dir=/usr/local/jpeg/lib

make -j 4 && make install

其中apache是根据你安装的目录名变,我的是 =/usr/local/apache2/bin/apxs

以dso方式安装php至/usr/local/php5 设置配置文件目录为/usr/local/lib 开启mysql,xml支持

复制PHP配置文件。

cp php.ini-development  /usr/local/php5/etc/php.ini

修改Apache的配置文件httpd.conf

DirectoryIndex index.html index.php #添加index.php

AddType  application/x-compress .Z

AddType application/x-gzip .gz .tgz

添加如下内容

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

AddType application/x-httpd-php .php .phtml .php3 .inc

检查LoadModule php5_module modules/libphp5.so 是否已经添加 libphp5.so文件是否存在

vi /usr/local/apache2/conf/httpd.conf

对apache做如下配置

将ServerAdmin mailto:[email protected]一行改为您的邮箱地址

DocumentRoot "/usr/local/apache2/htdocs" 此处为htdocs文件主目录

Options FollowSymLinks MultiViews 为安全起见,去掉"Indexes"

DirectoryIndex index.php index.phtml index.php3 index.html index.htm

#设置apache的默认文件名次序

AddType application/x-httpd-php .php .phtml .php3 .inc

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

#设置php文件后缀

4.启动服务

/usr/local/apache2/bin/apachectl start  启动

/usr/local/apache2/bin/apachectl stop   停止

/usr/local/apache2/bin/apachectl restart 重启

如果想将httpd列入系统自动启动的服务,可以直接将上述的apachectl文件拷贝到 /etc/rc.d/init.d 中,然后在相应的启动级别如3,5中加入链接即可。命令如下:

cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd # 复制到init.d 并重命名为httpd

链接文件的S61是启动时的序号。当init.d目录下有httpd脚本后,我们就可以通过service命令来启动关闭apache了。在任意路径下执行:

service httpd start | stop | restart
service httpd restart

5. 在编译安装apache时,建议加上两个参数(以后用到就不需要再编译):

--enable-modes-shared=most        //编译加载最多的模块 
--enalbe-modes-shared=all        //编译加载所有模块

总之出现故障后,先要判断问题的原因,这样才有办法应对。

/usr/local/apache2/bin/apachectl  -M:查看安装了哪些模块
/usr/local/apache2/bin/apachectl   -V:查看使用的模式
/usr/local/apache2/bin/apachectl  -t:检查语法错误
/usr/local/apache2/bin/apachectl  -l:查看安装的库文件
/usr/local/apache2/bin/apachectl graceful:重新加载配置
/usr/local/apache2/htcocs         主页存放目录
/usr/local/apache2/bin/apachectl  启动文件目录

这时有个问题就是:虽然apache已经可以自动启动,但在linux的服务列表中却看不到它,要添加服务,一般通过chkconfig --add xxx来实现,但需要脚本中有相应的信息才行,否则chkconfig就会提示:xxx 服务不支持 chkconfig。所以我们首先编辑httpd脚本,在第2行(#!/bin/sh下面)添加如下注释信息(包括#):

第一行的3个参数意义分别为:在哪些运行级别启动httpd(3,5);启动序号(S61);关闭序号(K61)。注意:第二行的描述必须要写!
保存后执行:

然后写个php测试页info.php:内容如下

phpinfo();

正常的话,应该能看到php的信息了,恭喜你的Apche Mysql PHP安装成功。

6、apache自动启动- -

下面用自启动apache为例;

自启动脚本:

/usr/local/apache/bin/apachectl start

文件位于/etc/rc.d/init.d下,名为apached,注意要可执行.

#chmod x /etc/rc.d/init.d/apached //设置文件的属性为可执行

#ln -s /etc/rc.d/init.d/apached /etc/rc3.d/S90apache //建立软连接,快捷方式

#ln -s /etc/rc.d/init.d/apached /etc/rc0.d/K20apache

需要下载缺少的软件包。

错误“APR not found”表示缺少APR,所以下载apr并配置

apr下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/apr/ ,找个合适的版本下载

然后将压缩包移动到Linux系统下

执行tar -zxvf apr-1.6.5.tar.gz命令解压缩

然后进入到apr目录下,执行./configure --prefix=/usr/local/apr命令进行检查

将该压缩包移动到Linux系统下,执行如下命令安装编译,具体就不截图:

tar -zxvf apr-util-1.6.1.tar.gz #解压缩
cd apr-util-1.6.1 #进入目录下
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config #检查
make && make install #编译并安装

如果执行make && make install命令时遇到如下问题,解决请参考: 在Linux中编译安装“apr-util“报错“xml/apr_xml.c:35:19: 错误:expat.h:没有那个文件或目录“

在安装Apache时遇到了如下报错

xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
#include <expat.h>
1
2
解决方案
安装expat-devel即可,然后重新编译

yum -y install expat-devel

再次进入httpd解压缩目录,执行如下命令进行检查

./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

执行结果如下:

 发现缺少pcre-config,所以又需要解决该问题,进入该网站http://pcre.org/下载pcre-config

然后将该压缩包移动到Linux系统中的/usr/local/目录下进行解压缩安装,执行如下命令即可:

tar -zxvf pcre-8.00.tar.gz #解压缩
cd pcre-8.00 #进入pcre目录
./configure --prefix=/usr/local/pcre #检查
make && make install #编译安装

在编译安装过程中如果遇到如下错误,则解决参考:在Linux系统中安装pcre报错“make[1]: *** [pcrecpp.lo] 错误 1“

再次进入httpd解压缩目录,执行如下命令进行检查

./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

那么执行如下命令进行检查

./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre

就不会报上面的错误了,没有报错的话,则执行make && make install命令进行安装编译。

那么这次又报错了,解决请参考:在Linux中安装httpd执行make命令报错“make[2]: *** [htpasswd] 错误 1“

最后不报错后,执行make && make install编译安装成功。