ubuntu18.04 编译安装 apache php
1. apache
apache 需要依赖几个模块:apr, apr-util, pcre,也分别源码安装。
1.1 编译安装
1.1.1 apr apr-util
下载地址:http://apr.apache.org/download.cgi
分别下载解压,然后在源码目录下 ./configure --prefix=xxx(apr-util 需要设置 --with-apr=[apr的安装路径]),然后 make && make install 即可。
1.1.2 pcre
下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
可以下载一个最新版的,然后同样也是在源码目录下 ./configure --prefix=xxx && make && make install 即可。
1.1.3 httpd
官网下载地址:http://httpd.apache.org/
下载解压后在源码目录下 ./configure --with-apr=[apr安装路径] --with-apr-util=[apr-util安装路径] --with-pcre=[pcre安装路径] --prefix=[httpd安装路径] && make && make install 完成安装。
1.2 httpd服务配置启动
cd [httpd安装路径]/conf,修改以下两个配置文件:
1.2.1 httpd.conf
(1) Listen 2080 (因为我是安装在用户目录下且不打算以root身份启动,所以默认的80端口需要改为其它的)
(2) ServerName localhost (这行是为了在 httpd -k start 时不出现 warning 的提示,可以不加)
(3) 把 Include conf/extra/httpd-vhosts.conf 前的注释去掉 (后面需要配置这个文件)
1.2.2 extra/httpd-vhosts.conf
去掉文件里原有的两个 example 主机配置,改为如下:
<VirtualHost *:2080>
DocumentRoot "/home/xxx/domain_name/"
ServerName domain_name.com
DirectoryIndex index.php index.html
ScriptAlias /cgi_bin/ "/home/xxx/domain_name/cgi_bin/"
AddHandler cgi-script .cgi .sh .py <Directory />
AllowOverride none
#allow from all
Require all granted
</Directory> <FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch> ErrorLog "/home/xxx/domain_name/error.log"
CustomLog "/home/xxx/domain_name/access.log" common
</VirtualHost>
这个是最后更改的文件,其中有一些是 cgi 和 php 相关的配置,现阶段可以省略。
1.2.3 启动服务器
../bin/httpd -k start
然后在浏览器地址栏里输入 domain_name.com:2080 看到 It works 的字眼就表示已经成功了。
1.3 cgi 配置
1.3.1 cgi module 编译安装
使用 apache 自带的 apxs 工具,可以在不重新编译 apache 的前提下,给 apache 添加模块。apache 运行 cgi 程序需要用到2个模块:mod_cgi.so 与 mod_cgid.so,步骤如下:
cd
[httpd源码路径]/modules/generators
[httpd安装路径]/bin/apxs
-i -a -c mod_cgi.c
[httpd安装路径]/bin/apxs
-i -a -c mod_cgid.c
此时查看 [httpd安装目录]/conf/httpd.conf 文件,可以发现 LoadModule cgid_module modules/mod_cgid.so 这一行被取消了注释,同时增加了 LoadModule cgi_module modules/mod_cgi.so 这一行。
1.3.2 虚拟主机配置文件更改
修改 extra/httpd-vhosts.conf 文件,在 <VirtualHost > 标签下加入:
ScriptAlias /cgi_bin/ "/home/xxx/domain_name/cgi_bin/"
AddHandler cgi-script .cgi .sh .py
然后重启 httpd 服务器:[httpd安装路径]/bin/httpd -k restart(或者先stop再start)
在浏览器地址栏里访问对应的cgi程序:http://domain_name.com/cgi_bin/hello.cgi 即可看到输出信息。
2. php7
官网下载地址:http://www.php.net/downloads.php
下载最新版本(我下载的是7.2.9)的源码并解压,然后准备安装。
2.1 前置准备
php 的编译安装稍微复杂一点,因为依赖到的库很多,首先需要安装一些基础的库,这些库有一部分我同样是下载源码编译安装,其它的因为不太常见,同时为了避免手动编译安装的繁琐就直接使用 apt install 的方式:
sudo apt install zlib1g-dev libpng-dev libjpeg-dev libfreetype6-dev
curl libxml2 openssl 这几个库我使用源码来编译安装(因为考虑到以后也会在开发中用到)
实际上依赖到的库可能不只这几个,需要看后面 ./configure 的配置参数以及系统是否自带了对应的库。
2.1 编译安装
cd [php源码目录]
./configure --prefix=/home/xxx/php/php-7.2.9/install --with-mcrypt --with-mhash --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-fpm --with-fpm-user=mywww --with-fpm-group=mywww --with-gd --with-iconv --with-zlib --enable-xml --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-jpeg-dir --with-freetype-dir --enable-opcache --with-libxml-dir=/home/xxx/libxml2/libxml2-2.9.8/install --with-openssl-dir=/home/xxx/openssl/1.1.0i/install --with-curl=/home/xxx/curl/7.61.1/install && make && make install
注意把命令里各个库的路径替换成实际的路径。
2.2 fpm 配置启动
cd [php源码目录]
cp php.ini-production [php安装目录]/etc/php.ini
cp sapi/fpm/init.d.php-fpm [php安装目录]/sbin/ && chmod u+x [php安装目录]/sbin/init.d.php-fpm
cd [php安装目录]/etc/
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/mywww.conf
把mywww.conf文件中第4行的[www]改为[mywww]
./init.d.php-fpm start
netstat -antp | grep php 即可看见 php-fpm 进程在运行(fpm进程默认使用 9000 端口):
2.3 apache 的 php 配置
好了,终于来到最后也是最重要的这一步了。也是更改这两个配置文件:
2.3.1 httpd.conf
把 LoadModule proxy_module modules/mod_proxy.so
和 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
前面的注释去掉,这两个是 apache 使用 fpm 方式解释 php 文件需要打开的模块扩展。
2.3.2 extra/httpd-vhosts.conf
添加以下几行:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
具体位置如 1.2.2 所示。
2.3.3 重启 httpd 服务
重启 httpd 服务,访问网站根目录下任何一个 php 文件可以看到对于的解释输出。
ubuntu18.04 编译安装 apache php的更多相关文章
- Win10 WSL Ubuntu18.04 编译安装MySQL5.7
---恢复内容开始--- 在win10 商店中选择 ubuntu18.04 下载地址 http://dev.mysql.com/downloads/mysql/ wget https://cdn.my ...
- ubutu16.04编译安装apache
// 安装编译器 sudo apt-get install build-essential // 下载所需依赖及apache2源码包 wget --no-check-certificate https ...
- Win10 Ubuntu18.04 编译安装 nignx
nginx 下载页 http://nginx.org/en/download.html wget http://nginx.org/download/nginx-1.14.0.tar.gz //安装依 ...
- ubuntu10.04编译安装LAMP
ubuntu10.04编译安装LAMP以及简单wordpress的使用 : http://linuxme.blog.51cto.com/1850814/971631 一.源码安装LAMP 网上有一堆关 ...
- Ubuntu14.04编译安装mysql5.6.26
Ubuntu14.04编译安装mysql5.6.26 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libncurses5-d ...
- 在ubuntu18.04上安装EOS
在ubuntu18.04上安装EOS 在ubuntu18.04上安装EOS的目的: 把交易所的eos转到eos主网,防止交易所跑路或者交易所被黑客攻击 在不联网的安全环境下,用eos官方的命令行工具, ...
- 在ubuntu18.04中安装opencv_contrib-3.2.0采坑教程
由于最近要在OpenCV3中使用SIFT和SURF特征提取,而自从OpenCV2升级到OpenCV3版本后,SIFT.SURF等这些算法都被移出opencv默认项目库,而被放到叫opencv_cont ...
- 如何在Ubuntu 18.04上安装Apache Web服务器
一. apt库安装 1.在终端输入更新检查命令,sudo apt-get update 2. 在更新完成后(如果不想检查更新,也可直接输入此步)输入:sudo apt-get install apac ...
- ubuntu20.04 编译安装ckermit
ubuntu20.04编译安装ckermit 我呢之前一直使用的是ubuntu18.04,最近在安装了某个软件之后,再加上自己的操作不当最终导致ubuntu系统卡死无法进入桌面环境,早就想更新20.0 ...
随机推荐
- ArcGIS案例学习笔记3_2
ArcGIS案例学习笔记3_2 联系方式:谢老师,135-4855-4328, xiexiaokui#qq.com 时间:第3天下午 内容:CAD数据导入,建库和管理 目的:生成地块多边形,连接属性, ...
- python的map函数和reduce函数(转)
map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例 ...
- 【Java】JVM(五)、虚拟机类加载机制
一.概念 类加载:虚拟机把类的数据从Class文件加载到内存中,并对数据进行校验,转化解析,和初始化,最终形成可以被虚拟机直接使用的Java类型. 二.加载时机 1.加载 加载阶段虚拟机完成的工作为: ...
- Hadoop slaves 没有nodeManager
1../start-yarn.sh 后从服务器没有nodemanager 进程,并且这里没有报错 在从服务器上的日志上见: 从服务器查看日志: 查看2.8.4官方文档: https://hadoop. ...
- 大型运输行业实战_day04_2_高级查询
1.高级查询最总效果 2.高级查询步骤 2.1页面输入框显示 开始车站:<input id="startStation" type="text" valu ...
- 对象池 object pool
对象池适用于: 对象的创建很耗时 对象频繁地释放再创建 对象池的实现:将释放的对象放进对象池中,在新建对象时,从对象池取对象 public class ObjectPool<T> wher ...
- Our Journey of Xian Ends
Our Journey of Xian Ends https://nanti.jisuanke.com/t/18521 262144K Life is a journey, and the roa ...
- ubuntu18 realsenseD435i
(flappbird) luo@luo-All-Series:~/librealsense/build201901/tools/enumerate-devices$ ./rs-enumerate-de ...
- iis 应用程序连接池 在计算机“.”上没有找到WAS服务
重新打开控制面板----打开或关闭windows功能,全部勾选internet information services 可承载的web核心. internet信息服务.microsoft.net f ...
- 查找ipa包,删除接的ipa包