安装MySQL、MariaDB、Apache、PHP,Apache与PHP结合

1 LAMP架构介绍
2 MySQL、MariaDB介绍
3 MySQL安装
4 MariaDB安装
5 Apache安装
6 安装PHP5
7 安装PHP7
8 Apache和PHP结合
扩展
mysql5.5源码编译安装 http://www.aminglinux.com/bbs/thread-1059-1-1.html
mysql5.7二进制包安装(变化较大) http://www.apelearn.com/bbs/thread-10105-1-1.html
apache dso https://yq.aliyun.com/articles/6298
apache apxs https://wizardforcel.gitbooks.io/apache-doc/content/51.html

apache工作模式 http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html
php中mysql,mysqli,mysqlnd,pdo到底是什么 http://blog.youkuaiyun.com/u013785951/article/details/60876816
查看编译参数 http://ask.apelearn.com/question/1295

1、LAMP架构介绍

linux(操作系统)、apache(web服务httpd)、mysql(数据库存储软件,存储一些数据、字符串)、php(脚本语言、和shell类似比shell复杂)

PHP网站(google、淘宝、百度、51cto博客)

三个角色可以在一台机器、也可以分开(httpd和PHP要在一起)

apache和php是一个整体,php是以一个模块的形式和apache结合在一起的,apache不能直接和mysql打交道,只能通过php的模块从mysql拿数据,拿到数据之后php把结果交给apache,最后交给用户。(动态请求)

在浏览器输入网站登录,用户请求交给apache,apache检查请求是动态还是静态

mysql存用户数据

75f15821e64d32ffb4523f56e9e195f5773.jpg

2、Mysql_MariaDB介绍

mysql是一个关系型数据库

mysql官网https://www.mysql.com

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

mariadb为mysql的一个分支,官网https://mariadb.com

mariadb5.5版本对应mysql的5.5,10.0对应mysql5.6

community社区版本,enterprise企业版,ga(generally available)指通用版本,在生产环境中用的,DRM(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本

3、mysql安装

mysql的几个常用安装包:rpm、源码、二进制免编译

cd /usr/local/src

查看系统是多少位的

26e99dec475d871653e5b6e23e819ce2cc9.jpg

下载mysql5.6 64位二进制免编译包

wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

016d92629df9ac205e998aff592f3654cf6.jpg

解压mysql安装包

tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

移动mysql解压文件到/usr/local/mysql

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

进入/usr/local/mysql/目录

cd /usr/local/mysql/

创建一个mysql用户

useradd mysql

创建存放mysql数据的目录

mkdir /data/

初始化mysql,生成/data/mysql目录

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

083453_eKow_3804239.png

报错少了一个模块,查看一下少了那个模块

yum list |grep perl |grep -i dumper 

yum安装perl-Data-Dumper

yum install -y perl-Data-Dumper

继续初始化mysql

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

查看是否执行成功

echo $?

查看/etc/my.cnf是从哪里来的

rpm -qf /etc/my.cnf
7b80f98b3d3d30031f63bfff49acf08fa15.jpg

拷贝mysql模板配置文件到/etc/my.cnf下

cp support-files/my-default.cnf /etc/my.cnf

编辑/etc/my.cnf配置文件

084913_uur7_3804239.png

拷贝mysql启动脚本到/etc/init.d/mysqld

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

编辑mysqld

vim /etc/init.d/mysqld

085321_LGJV_3804239.png

权限改成755

2c6ef644e1e47e9645b2879d16bfa2b151d.jpg

设置开机启动

chkconfig --add mysqld

查看是否开机启动

176319523bfe5b61245c7d28aacdee26b83.jpg

启动mysqld

service mysqld start

查看mysql进程

ps aux |grep mysql

9c2eccd83d4e0d5a469abe5f1af9796cf9e.jpg

查看监听端口

netstat -lntp

6f5cc1ace1563dd13b9546fd70745c908f2.jpg

命令行方式启动mysql

先关掉mysqld

db47493b35280329caa53bb3e333f0b4531.jpg

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &

关闭方法

killall mysqld
mysql常用引擎

innodb myisam

4、mariadb安装

4d4021df5d02bfe8930d71288a3b2d67bc3.jpg

cd /usr/local/src/

解压mariad

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

初始化mariadb

 ./scripts/mysql_install_db --user=mysql --datadir=/data/mariadb
7f4607d823918ed3cc4b3294e28d93e5ee1.jpg

拷贝配置文件

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

拷贝启动脚本

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

编辑配置文件

vim /usr/local/mariadb/my.cnf

220821_AZ2b_3804239.png

编辑启动脚本

vim /etc/init.d/mariadb

223729_txv2_3804239.png

221246_yyDm_3804239.png

启动mariadb

/etc/init.d/mariadb start

查看服务是否启动

ps aux |grep mariadb

查看端口是否监听

netstat -ltnp

还是mysql

222708_uljw_3804239.png

编辑mariadb配置文件

223025_bQxg_3804239.png

223318_7O7x_3804239.png

重启启动mariadb

224557_708s_3804239.png

 

5、apache安装

c7f1621456241908237a443c5e74921bebf.jpg

系统自带apr和yum安装的apr不匹配,需要自己手动编译

下载httpd、apr安装包

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

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

wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2

f34e52e1fb6366037476fe5addfed4a2bff.jpg

解压软件包

tar zxvf httpd-2.4.33.tar.gz

tar zxvf apr-1.6.3.tar.gz

tar jxvf apr-util-1.6.1.tar.bz2

报错:

tar (child): bzip2:无法 exec: 没有那个文件或目录
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

yum -y install bzip2

 

安装apr

cd apr-1.6.3/

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

报错:

configure: error: in `/usr/local/src/apr-1.6.3':
configure: error: no acceptable C compiler found in $PATH

yum install gcc

echo $?

120713_OsVO_3804239.png

make && make install

echo $?

安装apr-util

cd ../apr-util-1.6.1/

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

make && make install

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

解决:缺失expat-devel包

yum install expat-devel

echo $?

支持动态扩展模块

--enable-so\

安装apache2.4

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

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

yum list |grep pcre

yum install -y pcre-devel

echo $?

make && make install

echo $?

d16e05daee57bf45fe9e8e8c517efaa3999.jpg

bin 下面表示可执行文件,核心二进制文件

conf 配置文件所在目录

htdocs 默认存放访问网页页面目录

logs 日志目录,错误日志、访问日志

man 帮助文档目录

modules 扩展模块目录

da51784ef5af2e030d5ad7029f71cacfb73.jpg

查看apache加载了那些模块

/usr/local/apache2.4/bin/httpd -M(/usr/local/apache2.4/bin/apachectl -M)

8e36a6b5531b78fb0bb22caad68c1a66a47.jpg

static 表示绑定在一起

shared 表示扩展模块

启动apache

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

查看服务是否启动

ps aux |grep httpd

查看端口是否监听

netstat -lntp

6、安装PHP5

a7fb66506c462bf4ef14a6dc6aad11bbfc3.jpg

进入/usr/local/src目录

cd /usr/local/src

wget下载php5

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

解压php

tar zxf php-5.6.30.tar.gz

进入php目录

cd php-5.6.30

编辑php

--prefix=/usr/local/php,安装目录

--with-apxs2=/usr/local/apache2.4/bin/apxs,它是apache的一个工具,自动的帮你去把扩展的模块放到Apache中的modules目录里,并且在它的配置文件里加上一行load module

--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 ,指定mysql的路径

--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,指定PHP需要的模块

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

报错:

configure: error: xml2-config not found. Please check your libxml2 installation.

错误一:缺少 libxml2 库

解决办法:用yum list |grep xml2查看,并安装安装 libxml2-devel 包

yum install -y libxml2-devel

094451_sEbY_3804239.png

继续编译php

报错:

error: Cannot find OpenSSL's <evp.h>

错误二:缺少openssl-devel库

解决办法:yum安装openssl-devel

yum install -y openssl-devel

094828_AB4g_3804239.png

继续编译php

报错:error: Please reinstall the BZip2 distribution

错误三:缺少bzip2 bzip2-devel库

解决办法:yum install -y bzip2-devel

095143_jqfn_3804239.png

继续编译php

报错:error: jpeglib.h not found.

错误四:缺少libjpeg-devel包

解决办法:yum install -y libjpeg-devel

095900_VvYr_3804239.png

继续编译php

报错:error: jpeglib.h not found.

错误五:缺少libpng-devel包

解决办法:yum install -y libpng-devel

095401_W7EW_3804239.png

继续编译php

报错:error: freetype-config not found.

错误六:缺少 freetype-devel 库

解决办法:yum install -y freetype-devel

100130_Mhsa_3804239.png

继续编译php

报错:error: mcrypt.h not found. Please reinstall libmcrypt.

错误七:缺少 libmcrypt-devel 库

解决办法:先安装eprl扩展源yum install -y epel-release,再来安装 libmcrypt-devel 包

100436_g79C_3804239.png

继续编译php

查看是否编译成功 echo $?

100753_uXQq_3804239.png

make && make install

查看是否编译成功

102407_03BN_3804239.png

查看 php目录和核心文件

14ee59a9103cd11119d897f7a540e43b464.jpg

查看核心目录文件大小

ae1d2359b6dab9328346419c0194e3332ab.jpg

扩展模块

59f0562c18207c1796ae3db68c1134c5b01.jpg

查看php加载的模块有哪些

/usr/local/php/bin/php -m

21a2a620fc0740de0eae23e94ff5cf29873.jpg

查看apache加载的模块有哪些

/usr/local/apache2.4/bin/httpd -M

查看模块文件

76b6f47c91041fb05a08554003fd32a3f5b.jpg

编辑apache配置文件

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

155308_KKGj_3804239.png

查看php参数

/usr/local/php/bin/php -i |less

拷贝php参考配置文件到配置文件所在路径

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

160048_CqoN_3804239.png

查看php参数

/usr/local/php/bin/php -i |less

160144_YsVF_3804239.png

 

7、安装PHP7

进入/usr/local/src目录

cd /usr/local/src/

下载php7

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

解压php7

tar jxf php-7.1.6.tar.bz2

进入php-7.1.6目录

cd php-7.1.6

编译php参数

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

查看运行结果是否正确

echo $?

查看php7lib配置文件目录

ls /usr/local/apache2.4/modules/libphp5.so

162923_dYPu_3804239.png

查看大小

163023_SjV3_3804239.png

查看php7加载的模块

/usr/local/php7/bin/php -m

163053_hdQk_3804239.png

查看apache加载的php几

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

163244_iGsS_3804239.png

编辑apache配置文件

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

8、apache和php结合

配置httpd支持php目录概要

28b3fdfac04d38bbf655337dc2603d4562e.jpg

dc44039c2993e3ef906e8f3caee979d6f97.jpg

去掉#号

c68ac1294844509dad513c818f3a3b88253.jpg

06baca84cfa90caab9e9207e28031fd7708.jpg

将php7加#

Telnet IP+80

端口不通,需要开启iptables防火墙

3167180fea978d7b12ede5f864c2b5a614b.jpg

78fb19677bc5c5890a3dbfd31f774168554.jpg

21c84dd7e8c89b857f732274ac34d8b148f.jpg

3c3ae9d8c7642de902f8f1270378ad9d36d.jpg

更改require

34799a53ae53052d9ae01eae569236f3f85.jpg

690fbb8a10f8f814f9a3f2fe248552435e4.jpg

0f7eb68a8695e31f0b89d2c25c4932f26c2.jpg

 

更改配置后需要操作才能生效

a4aec6c7be58af9d955e2c7630c93052c6a.jpg

9c99ee11796bfbf52a109579f14a1853fec.jpg

重新加载服务

2b09a97359006aa36a9d02781e2ad81a939.jpg

增加一行php进行解析

d5baafc01e877c27bda55c092261a58b3cc.jpg

e9f94db6deaaedbacf7edda67ada6f2057c.jpg

d16e8bdc4d2d5c42b995b9fc9f59dac2b0f.jpg

ef43bdbb07ee2c2edf14bca4ca26666486d.jpg

页面显示

c5dd86daf9283ffd33424e55d6d69426937.jpg

6f80f4072c80faf837f6471a3a1b548426f.jpg

ba4048db38ba725076ca602efdbd7887629.jpg

1735b2345126dcf0e732eef95f721f08017.jpg

ee7d5fbdbe764cc0521ba060a5e821158d6.jpg

 

结果访问的是源代码

如果遇到php无法解析,需要检查相关的apache的配置文件

(1)检查apache的php

6a81326a3781b4651d3193b46306128696b.jpg

有没有加载php5

b8cb23f03c1d5636a99ef1e1ff518c89cfd.jpg

49ff30d1ec8c7f3190b6679991cd58e3933.jpg

 

查看是否有libphp5.so文件

如果有此文件,但没有加载,则查看apache的配置文件

fa9842cfdeb9b759dfd2eef3bd930a78d8f.jpg

然后检查apache的配置文件AddType

262f2de24c9e3a605ae4747ab9276093fa9.jpg

中间有空格,在/x-httpd-php  .php

5c4e892f745c1c7c00b0dd7a4b0605495ac.jpg

7747dd502809ad8ba38a94be9cadd2cc235.jpg

0bba55c64b83453583eb4a2db3c11f19d86.jpg

981098058ef7398f63d378abb85eba3636b.jpg

每次更改配置文件后,对配置文件进行加载和检查

8b576ca14bbcd7d5bba1e830ce83d91b692.jpg

98e41a46d3cae74174c6c503d1cc2862347.jpg

3ca16d21bd1eac87fdb056c49a5bd712438.jpg

转载于:https://my.oschina.net/u/3992081/blog/2966767

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值