第十七次课 课后笔记

预习内容

11.1 LAMP架构介绍
11.2 MySQL、MariaDB介绍
11.3/11.4/11.5 MySQL安装
11.6 MariaDB安装
11.7/11.8/11.9 Apache安装
11.10/11.11/11.12 安装PHP5
11.13 安装PHP7
11.14/11.15 Apache和PHP结合

 11.1 LAMP架构介绍

• Linux+Apache(httpd)+MySQL+PHP

LAMP是 Linux Apache MySQL PHP的简写,即把 Apache、 MySQL以及PHP安装在 Linux系统上,
组成一个环境来运行PHP的脚本语言,通常是网站,比如阿铭的论坛askapelearn.com就是用PHP语言
写出来的。 Apache是最常用的web服务软件,而MySQL是比较小型的数据库软件,这两个软件以及PHP都可以安装到 Windows的机器上。


我们可以把 Apache+PHP安装在一台机器上,再把 MySQL安装在另外一台机器上,也可以把它们
三个安装在同一台机器上。但 Apache和PHP需要在同一台机器上,这是因为PHP是作为 Apache的一个模块存在的,它们两个必须在一起。

 11.2 MySQL、MariaDB介绍

 MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀)

MySQL官网https://www.mysql.com  最新版本5.7GA/8.0DMR

MySQL5.6变化比较大,5.7性能上有很大提升

Mariadb为MySQL的一个分支,官网https://mariadb.com/最新版本10.2

MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立.

Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6

Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本

 11.3/11.4/11.5 MySQL安装

  • 我们平时是通过源码包安装 MySQL的,但是由于它的编译时间比较长,建议我们应该安装二进制免编译包,前文也介绍过源码包的安装方法。源码包都是可以更改的C或者C++语言编写的源码文件,而免编译的二进制包就是已经编译过的文件再打包后提供给我们。其实 Windows上的安装程序(比如QQ、360安全卫士等)就是类似的这种安装包。你可以到 MySQL的官方网站(htp:/ dev. mysql.com/ downloads/)下载,具体下载哪个版本根据你的平台和需求而定。目前比较常用的为mysq-5.6以上版本。

 

  • 1.下载软件包

我们可以到MySQL官方网站去下载MySQL的包,也可以到阿铭老师指定的网站(r.aminglinux.com)下
载,这个地址里面会提供本书中用到的所有软件包的下载地址,而且是在不断更新的。随着时间的推
移,有的软件包更新了,下载地址也会变更,后续如果你发现本书案例中提供的地址已经失效,请到r.aminglinux.com找最新的下载地址。
此次安装我使用的是免编译二进制包。需要注意的是,这个软件包是区分平台的。 CentOS7之前的版本都有区分32位和64位,但如果你使用的是 Centos7,那么直接选择64的包下载。在阿铭老师提供的下载地址中,带有x8664字样的就是64位的包,带有686字样的就是32位的包。

查看你的 Linux是多少位的,方法如下:(二种方法)

[root@hongwei ~]# uname -i
x86_64
[root@hongwei ~]# uname -a
Linux hongwei 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

2.首先我们进入cd /usr/local/src (因为之前老师说过,以后所有下载的源码包或者二进制免编译的包都放在这个目录下)

[root@hongwei ~]#  cd /usr/local/src
[root@hongwei src]# 

3.然后下载源码包:

[root@hongwei src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

4.解压源码包

[root@hongwei src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

5.解压之后,我们需要把安装包移动到这个目录下面去。

mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql

6.然后进入到mysql目录下去

cd /usr/local/mysql

7.创建用户mysql 和创建一个data目录

useradd mysql
 mkdir /data/

8.运行下面命令

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

运行上面命令之后可能会出现一个错误信息。就是缺少包,使用yum安装它。

yum install -y perl-Module-Install
  • 配置mysql 

1.首先复制配置文件,如下所示

# cp support-files/my-default. cnf /etc/my cnf
cp:是否覆盖"/etc/my.cnf"?y

2.因为系统默认就有etc/ mycnf,所以会提示是否覆盖,直接按“y”即可。然后打开配置文件,做一些简单地配置,把配置文件改成如下内容:

[mysqld]
# Remove leading #f and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%
innodb buffer pool size=128M


# Remove leading #t to turn on a very important data integrity option: logging
# changes to the binary log between backups
og_ bin= hongweilinux


# These are commonly set, remove the #t and set as required
basedir= /usr/local/mysql
datadir =/data/mysq
ort
server id= 128
socket=/tmp/mysql. sock


# Remove leading to set options mainly useful for reporting servers
# The server defaults are faster for transactions and fast selects
# Adjust sizes as needed, experiment to find the optimal values
join buffer size= 128M
sort buffer size= 2M
read rnd buffer size=2M

sql_mode=NO_ENGINE_SUBSTITUTION, STRICT_TRANS_TABLES

其中, basedir是 MySQL包所在的路径, datadir是定义的存放数据的地方,默认情况下,错误日志也会
记录在这个目录下面。port定义 MySQL服务监听的端口,如果不定义默认就是3306。 server_id定义
该 MySQL服务的ID号,这个参数用在做主从配置的时候。 socket定义 MySQL服务监听的套接字地址,在 Linux系统下面,很多服务不仅可以监听一个端口(通过TCPP的方式通信),也可以监听 socket,两个进程就可以通过这个 socket文件通信。下面几个 buffer是关于内存的配置参数,保持默认即可。

3.然后复制启动脚本文件并修改其属性,如下所示:

# cp support-files/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld

4.然后修改启动脚本,如下所示:

# vim /etc/init.d/mysqld

5.需要修改的地方有 datadir=/data/mysq1(前面初始化数据库时定义的目录)。把启动脚本加人系
统服务项,设定开机启动并启动 MySQL,如下所示:

# chkconfig- add mysq1d
# chkconfig mysqld on
# service mysqld start

6.检查Mysql是否启动的命令为:

[root@hongwei src]# ps aux|grep mysqld
root      1201  0.0  0.0 115432     0 ?        S    08:20   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/hongwei.pid
mysql     1773  0.1  1.0 1301336 10652 ?       Sl   08:20   0:16 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/hongwei.err --pid-file=/data/mysql/hongwei.pid --socket=/tmp/mysql.sock --port=3306
root     61821  0.0  0.0 112720   976 pts/1    R+   12:19   0:00 grep --color=auto mysqld

7.看看有没有监听3306的端口:

[root@hongwei src]# netstat -lnp|grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      1773/mysqld    

 

11.6 MariaDB安装 

安装mariadb的方法跟安装mysql的方法一样,介绍步骤:

1.进去到src目录下面去

 cd /usr/local/src

2.安装mariadb源码包

wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz

3.解压mariadb包

tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz

4.把mariadb包移动到mariadb目录下面

mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb

5.进入到mariadb目录下

cd /usr/local/mariadb

6.执行下面命令 类似于mysql

• ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb

7.拷贝一下 配置文件

• cp support-files/my-small.cnf /usr/local/mariadb/my.cnf

8.编辑它 其实这个配置文件是不用更改的

• vi /usr/local/mariadb/my.cnf //定义basedir和datadir

9.拷贝一下 启动的配置文件

• cp support-files/mysql.server /etc/init.d/mariadb

10.编辑启动配置文件 ,定义basedir、datadir、conf以及启动参数

• vim /etc/init.d/mariadb

11.开启mariadb服务

• /etc/init.d/mariadb start

 

11.7/11.8/11.9 Apache安装

 Apache其实是一个软件基金会组织的名字,早期他们开发的 Web Server软件非常流行,当时名字就叫作 Apache,不过后来改名字叫作htpd了。所以,以后大家说Apache的时候说的就是httpd。 Apache基金会下面有很多开源的软件,其中就包含了 Tomcat。
安装httpd前也需要到官网下载合适的版本,目前使用较多的版本为2.2或者2.4,两个版本的安装步骤大同小异,配置的差别也并不大。官网下载地址http://mirrors.hust.edu.cn/apache/httpd/,women 我们可以使用阿铭老师提供的地址http://r.aminglinux.com下载,在这里下载的是2.4版本。不过2.4版本有一个较麻烦的事情,就是需要手动编译安装apr以及 apr-util包。

下面介绍详细步骤:

1.首先还是进入到src目录下面去

cd /usr/local/src/

2.下载源码包

# wgethttp://mirrors.cnniccn/apache/httpd/httpd-2.4.25.tar.gz
# wgethttp://mirrors.husteducn/apache/apr/apr-1.5.2.tar.gz
# wgethttp://mirrors.hust.educn/apache/apr/apr-util-1.5.4.tar.gz

如果这个地址失效,就到r.aminglinux.com找最新的下载地址。
3.首先解压下载好的三个源码包,如下所示

# tarzxvfhttpd-2.4.25.tar.gz
# tar zxvf apr-1.5.2.tar.gz
# tar zxvf apr-util-1.5.4.tar.gz

其中apr(包含apr和apr-uti1)可以理解成一个通用的函数库,主要为上层应用提供支持。在这里httpd是依赖apr和apr-util的,如果不安装这两个东西,httpd就无法工作。

4.先来安装apr以及apr-util:

cd /usr/local/src/apr-1.5.2
# /configure --prefix/usr/local/apr

5.之后编译它

make & make install

6.进入到apr-util-1.5.4目录下面去

cd /usr/local/src/apr-util-1.5.4

7.

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

8.

# make & make install

如果在安装apr-uti1时出现如下错误:

libtool: link: cannot find the library"/usr/local/src/apr-util-154/xml/expat/libexpat la'or
unhandled argument /usr/local/src/apr-util-1 54/xml/expat/libexpat la
make:* libaprutil-1.1a]错误1

解决办法:

yum install -y expat-devel

9.安装完apr以及apr-uti1,继续安装htpd,配置编译参数,如下所示:

# cd/usr/local/src/httpd-2.4.25/
# ,/configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most

这里,--prefix指定安装目录,-- enable-so表示启用DSO。DSO的意思是,把某些功能以模块(一个功能模块就是一个so文件,这些文件在编译完hpd后会看到)的形式展现出来。enable-mods- shared=most表示以共享的方式安装大多数功能模块,安装后会在 modules目录下面看到这些文件。因为选择了大多数,所以后面的编译时间就会大大增加。另外,为了避免在make的时候出现
错误,你最好提前安装好一些库文件,如下所示

yum install -y pcre pcre-devel

10.最后编译和安装,如下所示:

# make
# echo $?
# make install
# echo $?

以上二个步骤都可以使用命令# echo $?来检查执行是否正确。

  • 安装完后,你可以执行了如下命令,查看httpd的目录结构以及 modules目录下面的模块文件
ls /usr/local/apache2.4/
bin build cgi-bin conf error htdocs icons include logs man manual module

 

ls /usr/local/apache2. 4/modules

执行上面的例子可以看到下面有很多绿色的so文件,这些就是提到的模块,之所以会有这么多,就是因为咱们定义了一个most参数

  • 这些模块并不会全部加载,如果你想使用哪个模块,在配置文件里配置即可。查看加载了哪些模块,使用命令:
# /usr/local/apache2. 4/bin/apachect1-M
Ah00558:httpd:Couldnotreliablydeterminetheserversfullyqualifieddomainname,using
fe80::Sbca: 4dbf:2a32:e7f. Set the " ServerName directive globally to suppress this message
Loaded modules

core module (static)
so module(static)
httpmodule(static)
mpm event module (static)
authn file module(shared)
authn core module(shared
authz host module(shared)
authz groupfile module( shared)
authz user module(shared)
authz core module(shared)
access compat module(shared)
auth basic module(shared)
reqtimeout module(shared
filter module(shared)
mime module(shared)
log config module(shared)
env module(shared)
headers module(shared)
setenvif module(shared)
version module(shared)
unix module(shared)
status module(shared)
autoindex module(shared)
dir module (shared)
alias module(shared)

前面以AH058开头的行,并不是错误,仅仅是一个警告。这些带有 shared字样的,表示该模块为动态共享模块;当然还有static字样的,它表示以静态的形式存在。动态和静态的区别在于,静态模块直接和主程序(/usr/local/apache2.4/bin/httpd)绑定在一起,我们看不到,而动态的模块都是一个个独立存在的文件( modules目录下面的.so文件即是)

 11.10/11.11/11.12 安装PHP5

php的官方下载地址是:http://www.php.net/downloads.php。

  • 1.首先还是进入到src目录下面去:
# cd /usr/local/arc

2.下载php

wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

3.解压源码包:

tar zxf php-5.6.30.tar.gz

4.进入到php目录下面去

cd php-5.6.30

5.然后配置编译参数:

 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
 make && make install

但是这个编译霍过程会很慢,因为会遇到很多错误。就是缺少相关库文件,需要我们找到然后使用yum安装他们:下面就是安装过程中遇到的错误:

configure: error: xml2-config not found. Please check your libxml2 installation.
[root@hongwei php-5.6.32]#  make && make install
make: *** 没有指明目标并且找不到 makefile。 停止。

遇到这样的错误时,我们需要使用yum list 来查找相应的包:

[root@hongwei php-5.6.32]# yum list|grep -i xml2
libxml2.x86_64                           2.9.1-6.el7_2.3               @base    
libxml2-python.x86_64                    2.9.1-6.el7_2.3               @base    
libxml2.i686                             2.9.1-6.el7_2.3               base     
libxml2-devel.i686                       2.9.1-6.el7_2.3               base     
libxml2-devel.x86_64                     2.9.1-6.el7_2.3               base     
libxml2-static.i686                      2.9.1-6.el7_2.3               base     
libxml2-static.x86_64                    2.9.1-6.el7_2.3               base     
mingw32-libxml2.noarch                   2.9.3-1.el7                   epel     
mingw32-libxml2-static.noarch            2.9.3-1.el7                   epel     
mingw64-libxml2.noarch                   2.9.3-1.el7                   epel     
mingw64-libxml2-static.noarch            2.9.3-1.el7                   epel     
python-xml2rfc.noarch                    2.5.2-2.el7                   epel     
tinyxml2.x86_64                          2.1.0-2.20140406git6ee53e7.el7
tinyxml2-devel.x86_64                    2.1.0-2.20140406git6ee53e7.el7
xml2.x86_64                              0.5-7.el7                     epel   

其实缺少的就是下面的这个包,使用yum安装: 

[root@hongwei php-5.6.32]# yum install -y libxml2-devel

安装之后再次执行./configure,接着还会遇到错误:

configure: error: Cannot find OpenSSL's <evp.h>
[root@hongwei php-5.6.32]# yum list|grep -i openssl
openssl.x86_64                           1:1.0.2k-12.el7               @base    
openssl-libs.x86_64                      1:1.0.2k-12.el7               @base    
apr-util-openssl.x86_64                  1.5.2-6.el7                   base     
globus-gsi-openssl-error.x86_64          3.8-1.el7                     epel     
globus-gsi-openssl-error-devel.x86_64    3.8-1.el7                     epel     
globus-gsi-openssl-error-doc.noarch      3.8-1.el7                     epel     
globus-openssl-module.x86_64             4.8-1.el7                     epel     
globus-openssl-module-devel.x86_64       4.8-1.el7                     epel     
globus-openssl-module-doc.noarch         4.8-1.el7                     epel     
mingw32-openssl.noarch                   1.0.2h-1.el7                  epel     
mingw32-openssl-static.noarch            1.0.2h-1.el7                  epel     
mingw64-openssl.noarch                   1.0.2h-1.el7                  epel     
mingw64-openssl-static.noarch            1.0.2h-1.el7                  epel     
openssl-devel.i686                       1:1.0.2k-12.el7               base     
openssl-devel.x86_64                     1:1.0.2k-12.el7               base     
openssl-libs.i686                        1:1.0.2k-12.el7               base     
openssl-perl.x86_64                      1:1.0.2k-12.el7               base     
openssl-pkcs11.x86_64                    0.4.7-7.el7                   epel     
openssl-static.i686                      1:1.0.2k-12.el7               base     
openssl-static.x86_64                    1:1.0.2k-12.el7               base     
openssl098e.i686                         0.9.8e-29.el7.centos.3        base     
openssl098e.x86_64                       0.9.8e-29.el7.centos.3        base     
perl-Crypt-OpenSSL-Bignum.x86_64         0.04-18.el7                   base     
perl-Crypt-OpenSSL-RSA.x86_64            0.28-7.el7                    base     
perl-Crypt-OpenSSL-Random.x86_64         0.04-21.el7                   base     
perl-Crypt-OpenSSL-X509.x86_64           1.803-4.el7                   epel     
pyOpenSSL.x86_64                         0.13.1-3.el7                  base     
pyOpenSSL-doc.noarch                     0.13.1-3.el7                  base     
rubygem-openssl_cms_2_0_0.x86_64         0.0.2-1.20140212git7fea071.el7
rubygem-openssl_cms_2_0_0-doc.noarch     0.0.2-1.20140212git7fea071.el7
xmlsec1-openssl.i686                     1.2.20-7.el7_4                base     
xmlsec1-openssl.x86_64                   1.2.20-7.el7_4                base     
xmlsec1-openssl-devel.i686               1.2.20-7.el7_4                base     
xmlsec1-openssl-devel.x86_64             1.2.20-7.el7_4                base   
yum install -y openssl-devel

下一个错误:

checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution
[root@hongwei php-5.6.32]# yum install -y bzip2-devel

下一个错误:

configure: error: jpeglib.h not found.
[root@hongwei php-5.6.32]# yum install -y libpng libpng-devel

下一个错误:

If configure fails try --with-xpm-dir=<DIR>
configure: error: freetype-config not found.
[root@hongwei php-5.6.32]# yum install -y freetype-devel

下一个错误:

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

[root@hongwei php-5.6.32]# yum install -y libmcrypt-devel

安装完以上所有需要的包之后,在执行./configure直到看到下面的这个显示才是成功安装了:

creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands

6.然后执行make make install

# make
# make install

7.最后复制配置文件

# cp php.ini-production /usr/local/php/etc/php.ini
  • 看一下libphp5.so的文件大小
[root@hongwei php-5.6.32]# du -sh /usr/local/apache2.4/modules/libphp5.so
36M    /usr/local/apache2.4/modules/libphp5.so
  • 看一下php有哪些模块
[root@hongwei php-5.6.32]# /usr/local/php/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
ereg
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

 

  11.13 安装PHP7

安装php7版本跟php5基本类似:

1.进入到src目录

cd /usr/local/src/

2.下载源码包

wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2

3.解压源码包

 tar zxf php-7.1.6.tar.bz2

4.进入到php7目录里面去

cd php-7.1.6

5.

• ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php7/etc  --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

6.

make && make install

7.

[root@hongwei src]# ls /usr/local/apache2.4/modules/libphp7.so
/usr/local/apache2.4/modules/libphp7.so

8.然后在复制配置文件

• cp php.ini-production  /usr/local/php7/etc/php.ini
  • 使用命令看一下php7加载了那些模块
[root@hongwei ~]# /usr/local/php7/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

  • 看一下 apache下 都加载了几个php
[root@hongwei php-7.1.6]# /usr/local/apache2.4/bin/apachectl -M
Loaded Modules:
 core_module (static)
 so_module (static)
 http_module (static)
 mpm_event_module (static)
 authn_file_module (shared)
 authn_core_module (shared)
 authz_host_module (shared)
 authz_groupfile_module (shared)
 authz_user_module (shared)
 authz_core_module (shared)
 access_compat_module (shared)
 auth_basic_module (shared)
 reqtimeout_module (shared)
 filter_module (shared)
 mime_module (shared)
 log_config_module (shared)
 env_module (shared)
 headers_module (shared)
 setenvif_module (shared)
 version_module (shared)
 unixd_module (shared)
 status_module (shared)
 autoindex_module (shared)
 dir_module (shared)
 alias_module (shared)
 php5_module (shared)
 php7_module (shared)
  • 当我们想要使用php5还是php7 ,不想启用 就在前面用#注释掉
[root@hongwei htdocs]# vim /usr/local/apache2.4/conf/httpd.conf

 

11.14/11.15 Apache和PHP结合

  • httpd的主配置文件为/usr/local/apache2.4conf/httpd.conf,编辑这个文件,如下所示:
[root@hongwei ~]# vim /usr/local/apache2.4/conf/httpd.conf

LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule info_module modules/mod_info.so
#LoadModule cgid_module modules/mod_cgid.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
#LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so
LoadModule php7_module        modules/libphp7.so

<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
                                                                          148,1         28%
  • 搜索ServerName,把#Servername www.example.com:80前面的井号删除。找到如下内容
#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. admin@your-domain.com
#
ServerAdmin you@example.com

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName www.example.com:80     //这一行的前面的#号去掉。
  • 把  Require all granted的内容改为这个样子,修改它的目的是,允许所有的请求,如果不设置该行,则我们访问的时候会报错403。

8bdb0a0df4b3fe4e95bd95a219efc5c7258.jpg

  • 在搜索下面这一行,在该行下面添加一行:

ae7e27c670e0dcceb4f7fbe87dc3a39567b.jpg

5af9c3fcd26d3bbb21c8546bcf6d90774e3.jpg

  • 接着找到下面这一段 :将该行添加 index.php

0142b30f54c1707616051c9262114146c84.jpg

修改完所有的配置文件之后,:wq保存。

  • 测试配置文件是否成功

启动httpd之前需要先检验配置文件是否正确,使用下面命令

[root@hongwei ~]#  /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@hongwei ~]# 
 

显示ok表明配置文件是成功的

如果配置不成功就会显示这个样子。

[root@hongwei ~]#  /usr/local/apache2.4/bin/apachectl -t
AH00526: Syntax error on line 244 of /usr/local/apache2.4/conf/httpd.conf:
Invalid command 'qqqqqqqqq', perhaps misspelled or defined by a module not included in the server configuration
  • 然后查看是否启动了httpd服务:
[root@hongwei ~]# ps aux|grep httpd
root      2538  0.0  0.0 112720   980 pts/0    R+   11:43   0:00 grep --color=auto httpd
  • 测试是否正确解析php

首先编写一个测试脚本,如下所示:

[root@hongwei htdocs]# vi /usr/local/apache2.4/htodcs/1.php

<?php
phpinfo();
?>
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
"1.php" 3L, 20C

编写完成之后:wq保存。

之后测试是否能使用浏览器直接访问ip地址就能解析php了。

[root@hongwei ~]# /usr/local/apache2.4/bin/apachectl restart
[root@hongwei ~]# /usr/local/apache2.4/bin/apachectl graceful   这一步是重新加载配置文件  必须要有  没有就可能访问不了

e127b5bab63f8cef6e20f934a6f5e88c463.jpg

 



  
 


 

 




 

 

 

 

转载于:https://my.oschina.net/u/3851487/blog/1835593

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值