在如下页面下载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
链接文件的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编译安装成功。