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/access.log"
    CustomLog "/home/xxx/domain_name/error.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 文件,可以发现 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
  sudo apt install libpng-dev
  sudo apt install libjpeg-dev
  sudo apt install 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 配置启动  

  cp php.ini-production ../install/etc/php.ini
  cp sapi/fpm/init.d.php-fpm ../install/sbin/ && chmod u+x ../install/sbin/init.d.php-fpm
  cd ../install/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 文件可以看到对于的解释输出。

原文地址:https://www.cnblogs.com/Newdawn/p/9614867.html

时间: 2024-08-30 11:48:17

ubuntu18.04 编译安装 apache php的相关文章

Ubuntu18.04编译安装mysql5.7.23

本博客为源码安装mysql5.7.23案例全过程 环境ubuntu18.04 安装规划: 配置文件:/etc/my.cnf 数据目录:/r2/mysqldata 安装目录:/usr/local/mysql 1.下载mysql-boost wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.23.tar.gz 2.安装工具 sudo apt-get install cmake -y apt-get install gcc

ubuntu18.04下安装apache+php7

1.配置apache2 (1)安装apache2 sudo apt install apache2 (2)查看apache2的状态 systemctl status apache2 2.PHP 脚本语言的安装: (1)执行以下安装 sudo apt install libapache2-mod-php php-mysql php-curl php-gd (2)进入vim /var/www/html/phpinfo.php 编写phpinfo <?php echo phpinfo(); ?> 3

WSL Ubuntu18.04 编译安装 nignx

http://nginx.org/en/download.html wget http://nginx.org/download/nginx-1.14.0.tar.gz sudo apt install build-essential libtool libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev  -y ./configure --prefix=/usr/local/nginx --with-http_stub_status_module

ubuntu10.04编译安装LAMP

ubuntu10.04编译安装LAMP以及简单wordpress的使用 : http://linuxme.blog.51cto.com/1850814/971631 一.源码安装LAMP 网上有一堆关于介绍lamp的在这里我就不罗嗦了,直接上配置过程 1.apr包的安装 apr简介: The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that

EOS 在ubuntu18.04上安装EOS

在ubuntu18.04上安装EOS 在ubuntu18.04上安装EOS的目的: 把交易所的eos转到eos主网,防止交易所跑路或者交易所被黑客攻击 在不联网的安全环境下,用eos官方的命令行工具,创建自己的公钥和私钥(待续) 用eos官方的命令行工具,创建钱包,执行转账,购买RAM等(待续) 本笔记包括二部分 一, 在虚拟机vbox上安装ubuntu18.04 二, 在ubuntu18.04上编译eos源代码,再安装eos 第一部分:在虚拟机vbox上安装ubuntu18.04 1,根据自己

在ubuntu18.04中安装opencv_contrib-3.2.0采坑教程

由于最近要在OpenCV3中使用SIFT和SURF特征提取,而自从OpenCV2升级到OpenCV3版本后,SIFT.SURF等这些算法都被移出opencv默认项目库,而被放到叫opencv_contrib的项目库.因此需要手动下载opencv和opencv_contrib的源码,然后将两个源码放在一起手动编译安装. 由于我的电脑是VMware虚拟机跑的ubuntu18.04,并且ubuntu18.04中安装了ROS-melodic,而ROS-melodic装完后默认就把opencv-3.2.0

ubuntu 14.04编译安装xen4.4总结

1. 安装环境 操作系统:ubuntu14.04 xen版本:xen4.4 2. 依赖包的安装 在安装xen之前先进行依赖包的安装,在不停得尝试之后,总结出以下需要安装的依赖包. suso apt-get install gcc make binutils zlib1g-dev python-dev sudo apt-get install libncurses5-dev libcurl4-openssl-dev libx11-dev sudo apt-get install uuid-dev

手工编译安装Apache

实验要求:手工编译安装Apache 实验步骤: 服务器(Redhat6)地址:192.168.4.2 客户机(Win7)地址:192.168.4.5 客户机设置LAMP文件夹共享,安装文件在LAMP文件夹中 mount.cifs //192.168.4.5/LAMP /opt/lamp //将LAMP文件夹挂载到服务器中的lamp目录中 smbclient -L 192.168.4.5 查看已经共享到的LAMP文件夹 tar xzvf httpd-2.4.2.tar.gz -C /opt/htt

linux中编译安装Apache、PHP、MySQL(上)

1.简介 在阿里云买了个云服务器,一直没时间折腾.过了近十天了吧,才有时间好好玩玩这个云服务器.自己是做Web开发的,所以我需要的开发环境是LAMP.之前打算是采用yum安装,不过yum安装apache可以安装到2.4版本,而PHP最高安装版本只能是5.4,这也是yum安装PHP的软肋,因此我这里主要涉及到的安装方式是源码安装.通过源码安装能够更好的管理这些软件,想安装到哪就放在哪. 云服务器: 阿里云CentOS 7.2 64位 阿帕奇版本:apache2.4 PHP版本:PHP5.6 主要的