更新11-14章节 11.1LAMP架构 11 .2 MySQL_MariaDB介绍113.MYSQL 11-14章节

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

 

11.6 MariaDB安装

11.7/11.8/11.9 Apache安装

扩展

apache dso  :https://yq.aliyun.com/articles/6298

apache apxs  :http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/programs/apxs.html

apache工作模式 : https://blog.csdn.net/STFPHP/article/details/52954303

 

11.6 MariaDB安装

1.下载mariaDB

[root@linux-5 ~]# cd /usr/local/src/[root@linux-5 src]# 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

2.解压

[root@linux-5 src]# tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz

3.将目录重命名

[root@linux-5 src]# mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb

[root@linux-5 src]# cd /usr/local/mariadb/

[root@linux-5 mariadb]# ls

bin data include mysql-test share

COPYING DESTINATION INSTALL-BINARY README.md sql-bench

COPYING.thirdparty docs lib README-wsrep support-files

CREDITS EXCEPTIONS-CLIENT man scripts

4.创建mysql用户

[root@linux-5 mysql]# useradd -s /sbin/nologin mysql

5.创建存放数据库的目录

[root@linux-5 mysql]# mkdir /data

6.初始化

[root@linux-5 mariadb]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb //--user=mysql定义mysql身份运行//--basedir=/usr/local/mariadb 定义mariadb的安装目录,这里如果不定义mariadb的目录有可能系统会去找之前安装的mysql的目录//--datadir=/data/mariadb定义存放数据库的目录

[root@linux-5 mariadb]# echo $? 0

7.配置文件

Mariadb的配置文件也在/user/local/mariadb/support-files/目录下,和mysql有一定区别,这个目录下有好几个配置模板

[root@linux-5 mariadb]# ls /usr/local/mariadb/support-files/

binary-configure my-innodb-heavy-4G.cnf my-small.cnf mysql.server wsrep_notify

magic my-large.cnf mysqld_multi.server policy

my-huge.cnf my-medium.cnf mysql-log-rotate wsrep.cnf

my-huge.cnf;my-large.cnf;my-medium.cnf;my-small.cnf这些配置文件的区别就在于缓存数字的大小不一样,这些值是根据内存的大小指定合适的缓存,这样会让mysql达到一个更高效的性能。我们做实验内存是1G 拷贝my-small.cnf就可以,如果你的内存有几十G,可以拷贝my-huge.cnf,再根据实际情况适当调整这些参数。

(1)拷贝配置文件

[root@linux-5 mariadb]# cp support-files/my-small.cnf /usr/local/mariadb/my.cnf //为了和之前mysql的配置文件区别,将配置文件路径修改下。

(2)修改配置文件

[root@linux-5 ~]# vim /usr/local/mariadb/my.cnf

添加basedir和datadir

[mysqld]

basedir = /usr/local/mariadb //mariadb安装目录

datadir = /data/mariadb //存放数据库目录

port = 3306

socket = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 16K

max_allowed_packet = 1M

table_open_cache = 4

sort_buffer_size = 64K

read_buffer_size = 256K

read_rnd_buffer_size = 256K

net_buffer_length = 2K

thread_stack = 240K

注:如果不添加数据库的存储目录,仅仅在在系统中存在其他数据库时(如MySQL),则mariadb数据库会使用之前数据库中的配置文件里面的数据库的存储目录

8.拷贝启动脚本

[root@linux-5 mariadb]# cp support-files/mysql.server /etc/init.d/mariadb

(1)修改启动脚本

[root@linux-5 ~]# vim /etc/init.d/mariadb

需要修改2个地方

basedir=/usr/local/mariadb //存放mariadb的目录

datadir=/data/mariadb //存放数据库的目录

conf=$basedir/my.cnf //指定配置文件的路径

并且在开始启动脚本中添加上面修改的配置文件路径

(2)启动脚本

[root@linux-5 ~]# /etc/init.d/mariadb start

Starting mariadb (via systemctl): [ 确定 ]

这里要注意:之前安装过mysql,所以在安装mariadb的时候,要先关闭mysqld服务,在启动脚本中指定了配置文件路径conf,并将添加到启动脚本中,如果之前没有装过mysql,可以直接将配置文件拷贝到/etc/my.cnf,启动脚本中也不用指定配置文件路径。

11.7/11.8/11.9 Apache安装

1.下载apache和apr、apr-util

Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache

Apache官网www.apache.org

wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.34.tar.gz

wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.3.tar.gz

wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.5.4.tar.gz

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

aprapr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地移植(从linux移植到windows

tar zxvf httpd-2.4.27.tar.gz

tar zxvf apr-util-1.5.4.tar.gz

tar zxvf apr-1.5.2.tar.gz

cd /usr/local/src/apr-1.5.2

./configure --prefix=/usr/local/apr

make && make install

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

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

make && make install

cd /usr/local/src/httpd-2.4.27

./configure \   //这里的反斜杠是脱义字符,加上它我们可以把一行命令写成多行

--prefix=/usr/local/apache2.4 \

--with-apr=/usr/local/apr \

--with-apr-util=/usr/local/apr-util \

--enable-so \                                          #支持扩展模块 动态扩展模块

--enable-mods-shared=most              #支持绝大多数,常用的模块都加进来

make && make install

ls /usr/local/apache2.4/modules

/usr/local/apache2.4/bin/httpd -M //查看加载的模块

2.解压

[root@linux-5 src]# tar zxvf apr-1.6.3.tar.gz[root@linux-5 src]# tar jxvf apr-util-1.6.1.tar.bz2[root@linux-5 src]# tar zxvf httpd-2.4.29.tar.gz

3.安装apr

[root@linux-5 src]# cd apr-1.6.3

[root@linux-5 apr-1.6.3]# ./configure --prefix=/usr/local/apr //初始化

[root@linux-5 apr-1.6.3]# echo $? //检查初始化是否正确0

编译make

[root@linux-5 apr-1.6.3]# make

[root@linux-5 apr-1.6.3]# echo $? //检查编译是否正确0

编译安装 make install

[root@linux-5 apr-1.6.3]# make install

[root@linux-5 apr-1.6.3]# echo $? //检查编译安装是否正确0

[root@linux-5 apr-1.6.3]# ls /usr/local/apr

bin build-1 include lib

4.安装apr-util

[root@linux-5 apr-1.6.3]# cd /usr/local/src/apr-util-1.6.1/

初始化

[root@linux-5 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

[root@linux-5 apr-util-1.6.1]# echo $?0

编译make

[root@linux-5 apr-util-1.6.1]# make

xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录

#include <expat.h>

^

编译中断。

make[1]: *** [xml/apr_xml.lo] 错误 1

make[1]: 离开目录“/usr/local/src/apr-util-1.6.1

make: *** [all-recursive] 错误 1

编译报错,需要安装expat-devel包

[root@linux-5 apr-util-1.6.1]# yum install -y expat-devel

然后重新编译 make

[root@linux-5 apr-util-1.6.1]# echo $?0

编译安装 make install

[root@linux-5 apr-util-1.6.1]# make install

[root@linux-5 apr-util-1.6.1]# echo $?0

apr/ bin/ games/ lib/ libexec/ mysql/ share/

[root@linux-5 apr-util-1.6.1]# ls /usr/local/apr-util/

bin include lib

5.安装apache

(1)初始化

[root@linux-5 apr-util-1.6.1]# cd /usr/local/src/httpd-2.4.33/

[root@linux-5 httpd-2.4.33]# ./configure \ //这里的反斜杠是脱义字符,加上它我们可以把一行命令写成多行

--prefix=/usr/local/apache2.4 \ //指定安装路径

--with-apr=/usr/local/apr \ //指定apr

--with-apr-util=/usr/local/apr-util \ //指定apr-util

--enable-so \

//支持动态模块 ;表示启用DSO,意思是把某些功能以模块的形式展现出来,一个功能模块就是一个.so文件,编译完会看到这些文件。

--enable-mods-shared=most //指定模块most;most绝大多数功能模块

 

这里出现一个错误:

configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

可以用yum list来查找缺少那个包

[root@linux-5 httpd-2.4.33]# yum list |grep pcre

pcre.x86_64 8.32-15.el7_2.1 @anaconda

ghc-pcre-light.x86_64 0.4-13.el7 epel

ghc-pcre-light-devel.x86_64 0.4-13.el7 epel

mingw32-pcre.noarch 8.38-1.el7 epel

mingw32-pcre-static.noarch 8.38-1.el7 epel

mingw64-pcre.noarch 8.38-1.el7 epel

mingw64-pcre-static.noarch 8.38-1.el7 epel

pcre.i686 8.32-17.el7 base

pcre.x86_64 8.32-17.el7 base

pcre-devel.i686 8.32-17.el7 base

pcre-devel.x86_64 8.32-17.el7 base

pcre-static.i686 8.32-17.el7 base

pcre-static.x86_64 8.32-17.el7 base

pcre-tools.x86_64 8.32-17.el7 base

pcre2.i686 10.23-2.el7 base

pcre2.x86_64 10.23-2.el7 base

pcre2-devel.i686 10.23-2.el7 base

pcre2-devel.x86_64 10.23-2.el7 base

pcre2-static.i686 10.23-2.el7 base

pcre2-static.x86_64 10.23-2.el7 base

pcre2-tools.x86_64 10.23-2.el7 base

pcre2-utf16.i686 10.23-2.el7 base

pcre2-utf16.x86_64 10.23-2.el7 base

pcre2-utf32.i686 10.23-2.el7 base

pcre2-utf32.x86_64 10.23-2.el7 base

[root@linux-5 httpd-2.4.33]# yum install -y pcre-devel

(2)然后重新编译参数

[root@linux-5 httpd-2.4.33]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most

[root@linux-5 httpd-2.4.33]# echo $?0

(3)编译make&&安装make install

[root@linux-5 httpd-2.4.33]# make

此时编译出现一个错误

经查询相关资料后,将apr-util重新初始化并编译一次即可解决。

再次重新编译并安装apache

[root@linux-5 httpd-2.4.33]# make[root@linux-5 httpd-2.4.33]# make install

[root@linux-5 apr-util-1.5.2]# cd /usr/local/apache2.4/

[root@linux-5 apache2.4]# ls

bin build cgi-bin conf error htdocs icons include logs man manual modules

这里介绍一个进程用到的目录

bin :可执行文件的目录

conf:配置文件的目录

htdocs:默认访问网站的目录

logs:日志文件的目录

modules:存放动态模块的目录;也就是.so文件,每一个模块就代表这一个功能

启动/停止apache

[root@linux-5 apache2.4]# /usr/local/apache2.4/bin/apachectl start[root@linux-5 apache2.4]# /usr/local/apache2.4/bin/apachectl stop

查看apache都加载了那些模块

[root@linux-5 apache2.4]# /usr/local/apache2.4/bin/apachectl -M

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::fdb8:14ca:d41b:3dc8. Set the 'ServerName' directive globally to suppress this message

Loaded Modules: //这里不用管它

core_module (static) //static 表示静态模块

so_module (static)

http_module (static)

mpm_event_module (static)

authn_file_module (shared) //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)

动态和静态模块的区别:静态模块(static)直接和主程序(/usr/local/apache2.4/bin/httpd)绑定在一起,动态模块(shared)都是一个个独立存在的文件(moudles目录下面的.so文件)这些动态模块不会全部加载,如果想用哪个动态模块,直接在配置文件里面配置即可。

yum install expat-devel   yum -y install pcre-devel  yum install -y epel-release  yum install -y libmcrypt-devel

tar zxvf apr-1.6.3.tar.gz

./configure --prefix=/usr/local/apr

make && make install

tar zxvf apr-util-1.6.1.tar.gz 

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

make && make install

tar zxvf httpd-2.4.34.tar.gz

./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most

make && make install netstat -lntp 

/usr/local/apache2.4/bin/apachectl start   启动

ps au x |grep httpd

netstat -lntp

PHP5

tar zxvf php-5.6.30.tar.gz

./configure --prefix=/usr/local/php --with-apr-util --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

PHP7

tar jxvf php-7.1.6.tar.bz2 

./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

make && make install


核心启动文件

[root@localhost php-7.1.6]# vim /usr/local/apache2.4/conf/httpd.conf  #想选用PHP版本这里改  不想弄那个就注释掉

LoadModule php5_module        modules/libphp5.so

LoadModule php7_module        modules/libphp7.so

[root@localhost apache2.4]# ls conf/                                                   #配置文件目录

extra  httpd.conf  magic  mime.types  original

[root@localhost apache2.4]# ls htdocs/                                                #默认的网站在这个目录

index.html                 

[root@localhost apache2.4]# ls logs/                                                   #日志

[root@localhost apache2.4]# ls modules/                                            #扩展模块    

/usr/local/apache2.4/bin/httpd -M                                                       #apache 加载了那些模块 

[root@localhost apache2.4]# /usr/local/apache2.4/bin/httpd -M

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

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)

/usr/local/php/bin/php -m     #  查看PHP 5加载了那些模块

/usr/local/php7/bin/php -m       #查看PHP7 加载模块

ls -l /usr/local/apache2.4/modules/libphp5.so     #aoache模块文件

/usr/local/php/bin/php -i |less              #查看PHP 编译参数

find / -name 'php.ini*'

cd /usr/local/src/php-5.6.30

cp php.ini-production /usr/local/php/etc/php.ini

/usr/local/src/php-5.6.30/php.ini-production                             #生产环境

/usr/local/src/php-5.6.30/php.ini-development                          #开发环境

ls /usr/local/apache2.4/modules/libphp7.so                              #  查看modules7.so 

/usr/local/apache2.4/modules/libphp7.so

du -sh /usr/local/apache2.4/modules/libphp7.so                       #查看7.so大小

/usr/local/apache2.4/bin/apachectl graceful                               #重新加载配置文件

十周第一次课

11.10/11.11/11.12 安装PHP5

11.13 安装PHP7

php中mysql,mysqli,mysqlnd,pdo到底是什么   

http://blog.csdn.net/u013785951/article/details/60876816

查看编译参数  http://ask.apelearn.com/question/1295

11.10/11.11/11.12 安装PHP5

• PHP官网www.php.net

• 当前主流版本为5.6/7.1

下载PHP5.6安装包

cd /usr/local/src/

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

解压安装包

tar jxvf php-5.6.32.tar.bz2

初始化

cd /usr/local/src/php-5.6.32/

./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

//--prefix=/usr/local/php 指定安装目录//--with-apxs2=/usr/local/apache2.4/bin/apxs 自动在httpd上配置PHP模块//--with-config-file-path=/usr/local/php/etc 指定PHP配置文件所在路径(PHP配置文件后缀为.ini)// --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-

mysqli=/usr/local/mysql/bin/mysql_config 三种连接MySQL的驱动

在初始化时出现一个错误

通过报错信息判断是缺少libxml2-devel(库)类型的安装包,也可通过命令做进一步确认(安装PHP时一般都会缺少各种各样的库文件)

yum list |grep xml2

第二个错误

第三个错误(yum安装的包应为小写)

第四个错误

[root@linux-5 php-5.6.32]# yum install -y libjpeg-turbo-devel.x86_64

第五个错误

第六个错误

第七个错误(这是基于epel扩展源的包,需要先安装epel扩展源)

看到此标识,说明已经初始化成功(以防万一可用echo $?进行检查)

将PHP配置文件模板拷贝至初始化规定的配置文件路径下

cp php.ini-production(development)/usr/local/php/etc/php.ini

//production为生产环境,development为测试开发环境

第一次安装PHP时所需要的包汇总

libxml2-developenssl-develbzip2-devellibjpeg-turbo-devel.x86_64libpng-devel.x86_64freetype-devel.x86_64libmcrypt-devel.x86_64(需要先安装epel扩展源)

编译&&安装PHP5

make

make install

在LAMP架构中,Apache所需要PHP中的模块文件是/usr/local/apache2.4/modules/libphp5.so,PHP的作用是将php5_module模块安装在Apache上帮助Apache进行一些通信,因此LAMP中的PHP无需启动也可正常工作

[root@linux-5 php-5.6.32]# /usr/local/apache2.4/bin/httpd -M

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::531b:14ea:3a75:f113. Set the 'ServerName' directive globally to suppress this message

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)

alias_module (shared)

php5_module (shared)

Apache的配置文件/usr/local/apache2.4/conf/httpd.conf

配置文件可随用随取,被注释掉的模块都不会显示,也不会加载该模块。

11.13 安装PHP7

下载PHP7.1安装包

cd /usr/local/src/

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

解压安装包

tar jxvf php-7.1.6.tar.bz2

初始化

./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

编译&&安装PHP7

make

make install

注:一个机器中可以同时安装两个PHP,但是要配置好Apache调用哪一个PHP,避免混乱,可去Apache的配置文件/usr/local/apache2.4/conf/httpd.conf中进行修改

配置httpd支持phphp

十周第二次课

11.14/11.15 Apache和PHP结合

11.16/11.17 Apache默认虚拟主机

11.14/11.15 Apache和PHP结合

httpd主配置文件/usr/local/apache2.4/conf/httpd.conf

vim /usr/local/apache2.4/conf/httpd.conf //修改以下4个地方

1 ServerName去#

2 Require all denied  改》equire all granted  #改掉就不会显

示403

3 AddType application/x-httpd-php .php

4 DirectoryIndex index.html index.php

/usr/local/apache2.4/bin/apachectl -t //测试语法

/usr/local/apache2.4/bin/apachectl graceful  //重新加载

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

/usr/local/apache2.4/bin/apachectl start //启动服务

netstat -lntp

curl localhost

vi /usr/local/apache2.4/htdocs/1.php //增加如下内容

<?php

phpinfo();

?>

•curl localhost/1.php

修改Apache(httpd)主配置文件

定义ServerName以消除Apache启动时所产生的警告

未修改前

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl start

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::531b:14ea:3a75:f113. Set the 'ServerName' directive globally to suppress this message

httpd (pid 5756) already running

定义ServerName

完成修改后

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl restart[root@linux-5 ~]#

打开服务器的80端口

[root@linux-5 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

测试连接Apache服务器

修改配置文件以防止打开虚拟主机配置文件时拒绝访问(访问时提示403)

<Directory />

AllowOverride none

Require all granted //将denied改为granted

</Directory>

...

DocumentRoot "/usr/local/apache2.4/htdocs"

<Directory "/usr/local/apache2.4/htdocs">

...

Require all granted //将denied改为granted

</Directory>

检查配置文件语法

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

重新加载配置文件

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl graceful

修改配置文件以用于解析PHP文件

增加PHP的索引页

增加索引页可以直接输入域名或IP,后自动跳转至索引页,无需单独输入

编写PHP测试脚本

[root@linux-5 ~]# vim /usr/local/apache2.4/htdocs/test.php

<?php

phpinfo();

?>

//该脚本用于打印PHP版本信息

注:增加PHP文件无需重启服务

测试PHP解析效果

上图为成功解析PHP脚本文件的效果,如果不支持解析,则会产生如下结果

Tips:使用ctrl+r可以快速查找并使用历史命令

11.16/11.17 Apache默认虚拟主机

定义

不同的主机名解析到不同的IP地址,提供虚拟主机服务的机器上同时设置有这些IP地址。服务器根据用户请求的目的IP地址来判定用户请求的是哪个虚拟主机的服务,从而进一步的处理。(默认虚拟主机只能定义单一域名,且为使用该服务器IP所跳转的唯一Apache站点,所有域名均会跳转至唯一定义的DocumentRoot下的网站根目录,一个配置文件只能定义一个Severname)

一台服务器可以访问多个网站,每个网站都是一个虚拟主机

任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机

修改Windows系统上的hosts

路径C:\Windows\System32\drivers\etc\hosts

由于默认虚拟主机只能使所有域名指向同一网站根目录,不易于管理,因此可以打开虚拟主机配置文件,使得不同域名可以跳转至不同网站。

打开虚拟主机配置文件

编辑虚拟主机配置文件

[root@linux-5 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

# Virtual Hosts

...

<VirtualHost *:80> //可定义多个虚拟主机(当前第一个)

ServerAdmin [email protected]//管理员邮箱,可不填写

DocumentRoot "/data/wwwroot/abc.com" //网站的根目录

ServerName abc.com//网站(服务器)名称,唯一

ServerAlias www.abc.com www.123.com //网站(服务器)别名,可多个

ErrorLog "logs/abc.com-error_log" //错误日志

CustomLog "logs/abc.com-access_log" common //访问日志

</VirtualHost>

<VirtualHost *:80> //可定义多个虚拟主机(当前第二个)

ServerAdmin [email protected]//管理员邮箱,可不填写

DocumentRoot "/data/wwwroot/def.com" //网站的根目录

ServerName def.com//网站(服务器)名称,唯一

ServerAlias www.def.com www.456.com //网站(服务器)别名,可多个

ErrorLog "logs/def.com-error_log" //错误日志

CustomLog "logs/def.com-access_log" common //访问日志

</VirtualHost>

注:一旦虚拟主机配置文件生效,则默认主机配置的文件定义的内容会失效

重新加载服务

/usr/local/apache2.4/bin/apachectl -t

/usr/local/apache2.4/bin/apachectl graceful

在虚拟主机配置文件中不能在代码后添加注释,否则会引起报错

创建相应的网站目录

[root@linux-5 ~]# mkdir /data/wwwroot/[root@linux-5 ~]# mkdir /data/wwwroot/abc.com[root@linux-5 ~]# mkdir /data/wwwroot/def.com

创建相应目录下的网站文件

[root@linux-5 ~]# vim /data/wwwroot/abc.com/index.php<?phpecho "abc.com";

[root@linux-5 ~]# vim /data/wwwroot/def.com/index.php<?phpecho "def.com";

测试网站效果

curl -x //发送网络请求,-x选项为网络请求增加代理,相当于hosts的作用

[root@linux-5 ~]# curl -x 192.168.88.5:80 abc.comabc.com[root@linux-5 ~]#

[root@linux-5 ~]# curl -x 192.168.88.5:80 def.comdef.com[root@linux-5 ~]#

在测试过程中使用的是两个虚拟主机,则第一个虚拟主机则是Apache服务的默认虚拟主机,无论访问哪个域名(其他虚拟主机定义的域名除外),只要指向了服务器的IP地址,都会跳转至默认虚拟主机。我们实验所使用的Linux虚拟机,在其上安装的Apache服务的主配置文件,相当于实体主机,也是默认主机,只能指定一个域名,访问单一目录下的文件。

vim /usr/local/apache2.4/conf/httpd.conf

PHP7 加#

153 LoadModule php5_module        modules/libphp5.so

154 #LoadModule php7_module        modules/libphp7.so

windows  安装 telnet

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Require all granted

PHP没解析 检查

1 /usr/local/apache2.4/bin/apachectl -M

ls /usr/local/apache2.4/modules/libphp5.so  差看有没有这个文件

3检查 

4检查

5 检查

/usr/local/apache2.4/bin/apachectl -t

/usr/local/apache2.4/bin/apachectl graceful

                                              

Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本

猜你喜欢

转载自blog.csdn.net/weixin_42213920/article/details/82595366
11