2018.9.6日,预习笔记,LAMP架构(一)

  1.  LAMP架构介绍
  2. MySQL、MariaDB介绍
  3. MySQL安装
  4. MariaDB安装
  5. Apache安装
  6. 安装PHP5
  7. 安装PHP7
  8. Apache和PHP结合
  9. 扩展
    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.csdn.net/u013785951/article/details/60876816
    查看编译参数 http://ask.apelearn.com/question/1295

 

一.LAMP架构介绍

e3f49bbd8226da7aa7b6537702cab6a5dd2.jpg

b4e74582dc9d7f610485544f13ff39b272b.jpg

  • 现在手机用的多了,PHP用的就少了
  • Apache+MySQL+PHP这三个可以安装在一台机器上,也可以分开(Apache和PHP要在一起,因为他们是一个整体)
  • 用户发送请求 --> Apache分析是静态请求还是动态请求 --> 动态请求会交给PHP模块和MySQL处理分析,返回用户登录界面 --> 静态请求Apache自己判断,然后再静态文件里取出文件返回给用户

 

二.MySQL、MariaDB介绍

3bb81f0c2f3813944993afe0c2634df5e6c.jpg

  • 后续学习,基本基于mariadb

 

三.MySQL安装

896f41c8228cd5b5b839da6ee609441fea0.jpg

  • MySQL常用安装包:rpm,源码包,二进制免编译(相当于在发布之前,首先在Linux机器上先编译,然后把编译完成的文件放在一个目录下,然后将它打包,然后发布出来)
  • rpm包安装默认放在/usr.local/src,无法定义安装路径
  • 二进制免编译包,可以放在一个目录下,自定义安装路径
  • 二进制免编译包,不一定在你所用的Linux机器上能够达到最佳的性能,建议自己编译源码包安装一下,会有更好的效果

示例一:安装MySQL

  • #cd /usr/local/src/ 进入该路径下(rpm包默认安装路径)
  • 执行命令:#wget 
    http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz 下载5.6MySQL二进制免编译包
  • 执行命令:#tar zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz 解压MySQL包
  • 执行命令:#mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql/ 移动解压包到/usr/local/mysql/目录下
  • 执行命令:#cd /usr/local/mysql/ 进去该目录下
  • #ls 查看一下,如下则正常成功了

38e0c789701b67c6d78ff485b568baf0038.jpg

  • #useradd mysql 创建一个mysql用户
  • #mkdir /data/ 创建一个/data/目录
  • #./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 指定用户和mysql数据库,数据存放位置为/data/mysql/
  • 执行完后,出现下面提示问题

aadece0fe94e7f0767c28ec4db1e1b6c1f6.jpg

  • #yum list | grep perl |grep -i dumper 搜索一下per包

1ef3968f80a1bdb97cf2065975d72202b00.jpg

  • #yum install -y perl-Data-Dumper 安装一下这个包
  • #./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 再次执行该命令
  • #echo $? 检测一下上面命令是否正确

0a6115b579f1bc994c2b75bb013d56266bf.jpg

  • #vim /etc/my.cnf  编辑该文件,做如下更改

355bbfeadcfc51def47216a13b6f9066553.jpg

  • #cp support-files/mysql.server /etc/init.d/mysqld 将该文件拷贝到/init.d/目录下,做启动脚本
  • #vi /etc/init.d/mysqld 添加如下内容

726b1a1979394da2d00c8d8391da19dfea7.jpg

  • #chkconfig --add mysqld 启动
  • #chkconfig --list 查看一下

82f01f6843be48ff9183cd473f0b9e90a99.jpg

  • #service mysqld start 启动一下该服务

b0752340abb26528243d00179239919c870.jpg

  • #ps aux |grep mysql 查看一下是否启动进程

3b8fe7779e69dabce4f423044ce9b297699.jpg

  • #netstat -lntp 查看监听的端口

1bb36f0c6539ac4caaabcd90f8951cc69ef.jpg

  • #/etc/init.d/mysqld stop 可以关闭mysql服务

 

四.MariaDB安装

5691437cef3d300023812b90fb2c09c1ac7.jpg

  • cd /usr/local/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  
  • tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz  
  • mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb  
  • cd /usr/local/mariadb  
  • ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb  
  • cp support-files/my-small.cnf /usr/local/mariadb/my.cnf  
  • vi /usr/local/mariadb/my.cnf //定义basedir和datadir  
  • cp support-files/mysql.server /etc/init.d/mariadb  
  • vim /etc/init.d/mariadb //定义basedir、datadir、conf以及启动参数  
  • /etc/init.d/mariadb start

9650caf81c10ae748e96d9072595eae12a8.jpg

  •  

6f5139c386664c646d083b7091b531780a6.jpg

  •  

f209d19ec6823703ee351412a21635e2cc4.jpg

  •  

4c019260c9109c22cd65b31e805d248c395.jpg

  • cd /usr/local/mariadb
  • 创建MySQL用户
  • 创建/data/目录
  •  

14bad377e6e10feee36116ec1f903853c4a.jpg

  •  

fbecb6e54e4f2908088f769480884daac6c.jpg

  •  

eba8f5210ae6408e9bceeeec49072a45613.jpg

  •  

e1ac4aeadab36408099ff7c5ffadcc36d27.jpg

  •  

5d99d031084d8082444df57962586677b08.jpg

  •  

07ce4885962a0f75f370cf7a6689516573f.jpg

保持默认就行,不需要改

  •  

6a408a5c77ca200bc0a495b74c7a04e279b.jpg

 

c7ca66693150be820ae5b68811d8adf5961.jpg

 

  • /start 搜索一下,添加

d95d957c3de09507c85a75f5a1878a67ebd.jpg

  •  

f9182a75cfde34ee66b246ab3c20956ccc6.jpg

  •  

fcbb810888b90c148adb03cc9bcd1eccf51.jpg

  •  

b53f62afe351157b4f965e4aa17d8e75d2f.jpg

  •  

 

 

五.Apache安装

 

4dabdc5a5366b213b19fe1e79f67f65c536.jpg

b752719cd1f76a139e326f54a1585decb62.jpg

  • Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache  Apache官网www.apache.org  
  • wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.34.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.gz  
  • apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地移植(从linux移植到windows)  
  • tar zxvf httpd-2.4.34.tar.gz  
  • tar zxvf apr-util-1.6.1.tar.gz  
  • tar zxvf apr-1.6.3.tar.gz   
  • cd httpd-2.4.34
  • cd srclib
  • mv /usr/local/src/apr-util-1.6.1 apr-util
  • mv /usr/local/src/apr-1.6.3 apr
  • cd ..
  • ./configure --prefix=/usr/local/apache2 --enable-so --enable-mpms-shared=all --with-mpm=event --enable-mods-shared=most --with-included-apr
  • yum install -y gcc
  • yum install -y pcre-devel
  • make
  • yum install -y expat-devel
  • make
  • make clean
  • make
  • cd ..
  • 删除再重新做一边
  • make install
  • cd /usr/local/apache2/modules/
  • ls /usr/local/apache2.4/modules  
  • /usr/local/apache2.4/bin/httpd -M //查看加载的模块
  • 模块存放位置

a4833860ef978582145d6c9a7cd9d6c25a7.jpg

  • 启动
  • 00a3eaea92623bed497f2714d65d89a3cab.jpg

 

六.安装PHP5

7da2ce2516883173bd17041a9a9d486f057.jpg

  • PHP官网www.php.net  当前主流版本为5.6/7.1  
  • 先安装下面这些包,避免缺少包而重复安装操作

yum install -y libxml2-devel
yum install -y libpng-devel
yum install -y openssl
yum install -y openssl-devel
yum install -y bzip2
yum install -y bzip2-devel
yum install -y libjpeg-devel
yum install -y freetype-devel
yum install -y libmcrypt.x86_64
yum install -y libmcrypt-devel.x86_64

  • cd /usr/local/src/  
  • wget http://cn2.php.net/distributions/php-5.6.30.tar.gz  
  • tar zxf php-5.6.30.tar.gz  
  • cd php-5.6.30  
  • ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/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-penssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif  
  • make && make install  
  • cp php.ini-production  /usr/local/php/etc/php.ini

同安装mysql大同小异,主要是解决编译时候出现的问题,多做几遍,网上查阅资料。

 

 

七.安装PHP7

1887713b4bb85b7da533786c82faf92881a.jpg

  • cd /usr/local/src/  
  • wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2  
  • tar jxvf php-7.1.6.tar.bz2   
  • cd php-7.1.6  
  • ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2/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  
  • ls /usr/local/apache2.4/modules/libphp7.so  
  • cp php.ini-production /usr/local/php7/etc/php.ini
  • 编辑Apache配置文件,可以更换要使用的PHP
  • vim /usr/local/apache2/conf/httpd.conf

ddefa0d5b6e0d9063b1627d53c01ac6e685.jpg

 

八.Apache和PHP结合

2c318e3f0065ffbb1621afca5394fcd26eb.jpg

  • iptables -I INPUT -p tcp --dport 80 -j ACCEPT 临时打开80端口,便于下面我们做测试
  • httpd主配置文件/usr/local/apache2/conf/httpd.conf  
  • vim /usr/local/apache2/conf/httpd.conf //修改以下4个地方
  • ServerName

48adcb1996ae418ac4d46215e10f88e4b1b.jpg

  • Require all denied

1f7ce95f286d09ad1ff6c53009863716cd2.jpg

  • AddType application/x-httpd-php .php

6563f47a62cc6674f5b8c0c23944184b52e.jpg

  • DirectoryIndex index.html index.php

10b53c42bc59c6bad698ab0f8a882fcee38.jpg

  •  /usr/local/apache2.4/bin/apachectl -t //测试语法  
  • /usr/local/apache2.4/bin/apachectl stat
  • vi /usr/local/apache2/htdocs/1.php 网址访问的是这个目录下的文件,列如1.php。

56042d2498d1a7b83c1132d3adb7bc64566.jpg

  •  
  • netstat -lntp  
  • curl localhost  
  • vim /usr/local/apache2.4/htodcs/test.php //增加如下内容
  • <?php
  • echo 123;
  • ?>  
  • curl localhost/test.php

/usr/local/apache2/bin/apachectl graceful 重新加载配置文件,

 

 

九.扩展


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.csdn.net/u013785951/article/details/60876816
查看编译参数 http://ask.apelearn.com/question/1295

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3912766/blog/1982791

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值