Ubuntu 16.04 系统编译部署lamp服务。

  下载Apache 和 PHP源码包:

Apache:http://httpd.apache.org/download.cgi

PHP:http://php.net/downloads.php

 

 

贰  安装依赖:

一、养成update,upgrade的好习惯,以免之后因为系统没更新而报错。

1、sudo apt-get update

这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。

update后,可能需要upgrade一下。

2、sudo apt-get upgrade

这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果你的软件都是最新版本,会提示:升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

***总而言之,update是更新软件列表,upgrade是更新软件。

 

二 、需要的依赖:可能不是都需要,都装了也没啥错。

sudo apt-get install build-essential (这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。)

sudo apt install libapr1-dev libaprutil1-dev

sudo apt install libpcre3-dev zlib1g-dev

apt-get install libxml2-dev (以免这个报错:在某些平台上,您可能需要安装相应的-dev包,以允许httpd与您安装的APR和APR-Util进行构建。)

apt-get install libexpat-dev

apt-get install openssl libssl-dev
apt-get install make
apt-get install curl libcurl4-gnutls-dev
apt-get install libfreetype6-dev
apt-get install libjpeg-dev libpng12-dev
apt-get install libmcrypt-dev
apt-get install libreadline6 libreadline6-dev

PCRE:wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz (手动装一下)

 

 

 叁  先装mysql。

因为装php需要设置和它相关的参数,不用编译装了,麻烦。

sudo apt-get update
sudo apt-get install mysql-server

测试:
systemctl status mysql.service

您将看到类似于以下内容的输出:


mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en Active: active (running) since Wed 2016-11-23 21:21:25 UTC; 30min ago Main PID: 3754 (mysqld) Tasks: 28 Memory: 142.3M CPU: 1.994s CGroup: /system.slice/mysql.service └─3754 /usr/sbin/mysqld

如果MySQL没有运行,您可以启动它:

sudo systemctl mysql start

 

 

 

肆 编译安装apache:

一、编译安装大体流程都是:


1、解压源码包:                                         tar -zxvf httpd-2.4.34.tar.gz

2、cd到解压的目录下:                              cd httpd-2.4.34

3、在上面的目录下执行编译:                   ./configure --prefix=/opt/apache2 --with-pcre=/opt/pcre --with-included-apr --enable-so 

                                                                    (👆泪与汉而得出的参数配置~~)
                                                                   (--prefix=/opt/apache2:--prefix=后面接你指定的安装目录)
                                                                   (--enable-so:让apache核心装载DSO,和php相关,必要的!)
                                                                   (--with-included-apr:让之前不需要编译安装apr,apr-util,但要把他们解压到apache解压包的srclib目录下。)

4、make  clean                                           make clean (清理之前的安装环境,以免后面莫名其妙的报错)

5、make                                                      make

6、make install                                            make install


 

二、检验Apache网站是否开通:

打开浏览器,输入网址:http://localhost/  或者  localhost:80  或者你服务器的IP, 看到  It works  就行了 。

 

 

肆、安装php:

1、编译的主要参数:
./configure --prefix=/opt/php --with-apxs2=/opt/apache2/bin/apxs --with-mysql=mysqlnd --enable-mysqlnd --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --enable-fpm

 

2、php的配置文件需要手动调试一下:

i、cp php.ini-production /opt/php/lib/php.ini (配置文件要手动复制改名一份才有。)

ii、/opt/php/etc
cp php-fpm.conf.default php-fpm.conf (配置文件要手动复制改名一份才有。)

root@ubuntu:/opt/php/sbin# ./php-fpm (启动php)

 

*****这时遇到2个报错:
1、[30-Jul-2018 18:10:24] WARNING: Nothing matches the include pattern '/opt/php/etc/php-fpm.d/*.conf' from /opt/php/etc/php-fpm.conf at line 125.
[30-Jul-2018 18:10:24] ERROR: No pool defined. at least one pool section must be specified in config file
大概意思就是说找不到 opt/php7/etc/php-fpm.d/目录下的配置文件。 进入里面的目录,会有一个www.conf.default文件。执行下面命名复制一份。

关于找不到 nobody,除了创建一个nobody用户,还有一种方法

复制好之后,编辑该文件
root@ubuntu:/opt/php7/etc/php-fpm.d/# nano www.conf
定位到里面文件的 user = nobody 和 group = nobody ,调整为 www-data。这一步和5版编译安装一样。最后启动PHP-FPM
root@ubuntu:~# /opt/php7/sbin/php-fpm
root@ubuntu:~#

 


3、改/opt/apache2/conf/httpd.conf配置文件,让ahache和php关联起来:

配置文件是:/opt/apache2/conf/httpd.conf
加一句:AddType application/x-httpd-php.php.html
改这里:<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

 

*****又报错:

ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
1、以为是端口问题:
root@iZj6c68y2crcy0uxvcavk9Z:/opt/php/sbin# netstat -lntup | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3645/php-fpm.conf)
root@iZj6c68y2crcy0uxvcavk9Z:/opt/php/sbin# killall php-fpm
2、杀进城,重启也不行。
root@iZj6c68y2crcy0uxvcavk9Z:/opt/php/sbin# service php-fpm start
Failed to start php-fpm.service: Unit php-fpm.service not found.
3、直到瞎摸索重启apache这个报错才知道,是不是php服务处问题,而是apache转发服务给php出问题,转发配置设置的不对,少了空格!!!
root@iZj6c68y2crcy0uxvcavk9Z:/opt/apache2/bin# ./apachectl stop
AH00526: Syntax error on line 390 of /opt/apache2/conf/httpd.conf:
AddType requires at least two arguments, a mime type followed by one or more file extensions

注意:要有空格的:AddType application/x-httpd-php .php .html
没有空格的:AddType application/x-httpd-php.php.html

 

 

 

4、在apache默认的网页目录下创建一个php文件:

vi /opt/apache2/htdocs/ 里创建一个文件info.php

// 文件内容
<?php

phpinfo();

?>

启动apache服务器测试一下:

/opt/apache2/bin# ./apachectl restart

打开浏览器:输入网址:ip+info.php回车 :

 

posted @ 2018-07-24 11:52  Sinsen柳  阅读(261)  评论(0编辑  收藏  举报