centos7中编译安装apach2.4+php7.2环境
作为一名web开发人员一直没有自己搭建过环境,觉得很惭愧,所以今天就动手在centos7环境中编译安装apache2.4+php7.2的运行环境。下面是我总结的安装过程。
1 在centos7中预先安装编译工具和插件
[root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
2 下载apache安装包及其依赖包:
Apache源码包位置:http://httpd.apache.org/ 这里选用【httpd-2.4.38.tar.bz2】
依赖包 apr、apr-util、pcre
apr、apr-util包的位置:http://apr.apache.org/
pcre包的位置:http://pcre.org/
3. 注意:
把这些包准备好后,可以先安这些包,也可以在安Apache的过程中提示缺少包再安,还有就是apr、apr-util
开始安装Apache2.4【httpd-2.4.38.tar.bz2】
1. 先把下载好的httpd包传到服务器,并解压,我是解压到/etc目录下,安装目录是/usr/local/httpd
解压命令:tar -jxvf httpd-2.4.18.tar.bz2
2. 进入目录
cd /etc/httpd-2.4.38
3. 执行写入配置,其中apache24目录不用自己创建,安装过程会自动创建
./configure --prefix=/usr/local/httpd -- 参数prefix指定安装路径
4. 到这一步应该提示缺少apr包
开始安装apr包和apr-util【apr-1.5.2.tar.gz&apr-util-1.5.4.tar.gz】
安装apr:
1. 先把下载好的apr包传到服务器,并解压,我是解压到/etc目录下,安装目录是/usr/local/apr
解压命令:tar -zxvf apr-1.5.2.tar.gz
2. 进入目录
cd /etc/apr-1.5.2.tar.gz
3. 执行写入配置,其中/usr/local/apr目录不用自己创建,安装过程会自动创建
./configure --prefix=/usr/local/apr -- 参数prefix指定安装路径
4. make
5. make install
继续安装apr-utl:
1. 先把下载好的apr包传到服务器,并解压,我是解压到/home目录下,安装目录是/usr/local/apr-util
解压命令:tar -zxvf apr-util-1.5.2.tar.gz
2. 进入目录
cd /etc/apr-util-1.5.2.tar.gz
3. 执行写入配置,其中/usr/local/apr-util目录不用自己创建,安装过程会自动创建
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
参数prefix指定安装路径, 参数--with-apr表示apr-util安装需要依赖apr,所以这里一定要指定apr的安装目录
4. make
5. make install
6. apr-util安装完成
7. 文章开头提到的问题:用apr-1.6.5/apr-util-1.6.1在执行步骤4的时候会出错
两个apr包安好了,在返回httpd的目录再次配置apache
1. ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-
util=/usr/local/apr-util
2. 会提示缺少包pcre,包的位置开始有提到,这里用的是pcre-8.38.zip
3. 解压
unzip pcre-8.38.zip
4. cd pcre-8.38
5. ./configure --prefix=/usr/local/pcre
6. make
7. make install
8. pcre包安装成功
返回httpd的位置安装Apache
1. ./configure --prefix=/usr/apache24 --with-apr=/usr/local/apr --with-apr-
util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
//在./configure 配置参数中一定要记住带上 --enable-so 启用动态加载模块功能,否则在后面编译php的时候将不会生成libphp7.so 文件,将导致php文件无法解析。
2. make
3. make install
4. 出现如下界面安装成功
5. 启动apache服务后,在浏览器地址栏输入apache服务器的Ip验证是否成功【eg:http://192.168.5.130】
Is works!
Apache服务操作
1. /usr/local/httpd/bin/apachectl start
2. /usr/local/httpd/bin/apachectl stop
3. /usr/local/httpd/bin/apachectl restart
Apache服务的默认根目录
1. 服务器的默认根目录在/usr/local/httpd/htdocs/
2. 更改默认根目录的方法
a. vi /usr/local/httpd/conf/httpd.conf
b. 搜索 DocumentRoot
c. 将/usr/local/httpd/htdocs/更改为你想要的根目录【例如:/var/www/html】
3. 测试的index.html就存在于它的根目录下
注意:
注意:如果make中出现错误,必须执行make clean清除所有缓存文件后继续,如果是在make install过程中出现错误,必须执行make clean并且删除生成了安装目录,然后重新执行make和make install安装完成之后删除原来释放出来的那些目录即可,如果以后要卸载,只要不忘记安装目录,直接删除安装目录就可以,也不会出现任何残留垃圾
安装以后可能会出现这个问题:
安装完以后通过/usr/local/httpd/bin/apachectl start启动apache服务,发现报如下错误:
httpd: Could not reliably determine the server's fully qualified domain name
解决方法:
1. cd /usr/local/httpd/conf
2. 编辑httpd.conf文件,
搜索"#ServerName",添加ServerName localhost:80
3. 再重新启动apache 即可
问题解决
Apache简单配置
如果说我们想通过浏览器看到我们本地的文件/目录,两种方法:
将我们本地的文件通过软链接ln -s指向apache的默认根目录,然后在浏览器地址栏输入http://ip即可看到 ,但是要注意/usr/local/httpd/htdocs/index.html的move掉或者换个名字,不然首页默认会显示index.html
直接将我们想要的目录/文件link到指定目录/var/www/html然后在/usr/apache24/conf/httpd.conf更改apache服务的根目录
将/usr/local/httpd/bin/apachectl 拷贝为 /etc/init.d/httpd 就可以用systemctl开启关闭服务
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
systemctl start httpd
systemctl stop httpd
systemctl restart httpd
搭建PHP运行环境
一:安装编工具及插件
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel \
libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
二:解压安装包
[root@localhost ~]# tar xjvf php-7.1.10.tar.bz2
三:配置(个性化配置及优化项目)
[root@localhost php-7.1.10]# cd php-7.1.10
[root@localhost php-7.1.10]# ./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
注意 --with-apxs2=/usr/local/httpd/bin/apxs \ 这项配置必须要有,否则不会生成 libphp7.so
四:编译与安装
[root@localhost php-7.1.10]# make
[root@localhost php-7.1.10]# make install
五:编辑配置文件
[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
//创建配置文件
[root@localhost php-7.1.10]# vi /usr/local/php/lib/php.ini //编辑配置文件
mysqli.default_socket = /usr/local/mysql/mysql.sock //将php与mysql关联
date.timezone = Asia/Shanghai //时区设置
[root@localhost php-7.1.10]# /usr/local/php/bin/php –m //验证安装的模块
六:关联php与apache服务
[root@localhost php-7.1.10]# vi /etc/httpd.conf //编辑Apache配置文件,使httpd支持php网页解析
添加以下两行内容:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
修改以下内容:
DirectoryIndex index.php index.html //此处注意,php文件必须放前面,优先读取
[root@localhost php-7.1.10]# rm -f /usr/local/httpd/htdocs/index.html //删除默认html文件
[root@localhost php-7.1.10]# vi /usr/local/httpd/htdocs/index.php //编辑php测试网页
添加以下内容(php信息)
<?php
phpinfo();
?>
保存退出
[root@localhost php-7.1.10]# systemctl stop httpd
[root@localhost php-7.1.10]# systemctl start httpd //重启httpd服务
七:验证
- 用win7访问192.168.80.10
(注意:如果访问不了,用netstat检查httpd运行状态)