LAMP搭建小结

1.Apache    PHP   MySQL三者如何工作

518d8121b09611da824f00d35957d2cfb44.jpg

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内部测试版本

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

mysql二进制安装包基本操作流程:

cd /usr/local/src  #把包下到指定目录下
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz  
tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz   #解压
mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql  #把解压的文件移动到我们指定目录并更名
cd /usr/local/mysql  
useradd mysql   #创建用户
mkdir /data/    #创建mysql数据文件存放目录
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql   #初始化
cp support-files/my-default.cnf  /etc/my.cnf   #拷贝Mysql默认配置文件
cp support-files/mysql.server /etc/init.d/mysqld   #拷贝mysql启动文件
vi /etc/init.d/mysqld  #定义basedir和datadir  
/etc/init.d/mysqld start   #启动

MariaDB安装

它的安装和mysql类似:

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

 

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

acd753f633ae180338544eb83a0e11202f1.jpg

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

42bd4e3c94b981f1f6b03c572d00e783553.jpg

MySQL源码安装

首先安装必要的库

yum -y install gcc*

###### 安装 MYSQL ######
首先安装camke 
1.支持YUM,则

  1. yum install -y cmake

2.也可以源码安装

  1. cd /usr/local/src
  2. #下载cmake
  3. wget http://www.cmake.org/files/v2.8/cmake-2.8.7.tar.gz
  4. tar zxvf cmake-2.8.7.tar.gz
  5. cd cmake-2.8.7
  6. #安装cmake
  7. ./configure
  8. make
  9. make install

安装 MYSQL
官网下载 MYSQL5.5版本 linux下源码包
http://dev.mysql.com/downloads/
安装

  1. groupadd mysql
  2. useradd -g mysql mysql
  3. tar zxvf mysql-5.2.25.tar.gz
  4. cd mysql-5.2.25
  1. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/data -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
  2. make && make install
  3. cd /usr/local/mysql
  4. chown -R mysql:mysql  /usr/local/mysql
  5. ./scripts/mysql_install_db --user=mysql  -datadir=/mysql/data
  6. #此处如不指定datadir,到启动时会报错
  7. chown -R root .
  8. chown -R mysql data
  9. cp support-files/my-medium.cnf /etc/my.cnf
  10. bin/mysqld_safe --user=mysql &
  11. # Next command is optional
  12. cp support-files/mysql.server /etc/init.d/mysqld
  13. chmod +x /etc/init.d/mysqld
  14. /etc/init.d/mysqld start

到此安装完成

3.安装Apache

apr安装:

cd /usr/local/src/apr-1.6.3
./configure --prefix=/usr/local/apr
make && make install

apr-util安装:

cd /usr/local/src/apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

安装httpd:

这里有个包需要提前安装:

yum install -y prce-devel   注意看自己错误提示!

cd /usr/local/src/httpd-2.4.29
 ./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 #查看加载的模块

4.PHP5安装

环境配置:

rpm -ivh 'http://www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm'
yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libjpeg libjpeg-devel libpng libpng-devel freetype-devel libmcrypt-devel

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.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
cp php.ini-production  /usr/local/php/etc/php.ini

PHP7安装

cd /usr/local/src/ 
wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
tar zxf php-7.1.6.tar.bz2
cd php-7.1.6
./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
ls /usr/local/apache2.4/modules/libphp7.so
cp php.ini-production  /usr/local/php7/etc/php.ini

apache与php结合

流程:

httpd主配置文件/usr/local/apache2.4/conf/httpd.conf
 vim /usr/local/apache2.4/conf/httpd.conf //修改以下4个地方
ServerName  去掉前面的#号
Require all denied  修改为granted
AddType application/x-httpd-php .php  增加
DirectoryIndex index.html index.php   增加
 /usr/local/apache2.4/bin/apachectl -t //测试语法
 /usr/local/apache2.4/bin/apachectl start //启动服务
 netstat -lntp 
 curl localhost
 vim /usr/local/apache2.4/htodcs/1.php //增加如下内容
<?php
phpinfo();
?>
 curl localhost/1.php

Apache Dos原理

Apache HTTP服务器是一个模块化的软件,使管理者可以选择核心中包含的模块以裁剪功能。可以在编译时选择被静态包含进httpd二进制映象的模块,也可以编译成独立于主httpd二进制映象的动态共享对象DSO,DSO模块可以在编译服务器之后编译,也可以用Apache扩展工具(apxs)编译并增加

DSO是Dynamic Shared Objects(动态共享目标)的缩写,它是现代Unix派生出来的操作系统都存在着的一种动态连接机制。它提供了一种在运行时将特殊格式的代码,在程序运行需要时,将需要的部分从外存调入内存执行的方法。Apache在1.3以后的版本后开始支持它。因为Apache早就使用一个模块概念来扩展它的功能并且在内部使用一个基于调度的列表来链接扩展模块到Apache核心模块.所以,Apache早就注定要使用DSO来在运行时加载它的模块

不管是Worker模式或是Prefork 模式,Apache总是试图保持一些备用的(spare)或者是空闲的子进程(空闲的服务线程池)用于迎接即将到来的请求。这样客户端就不需要在得到服务前等候子进程的产生

转载于:https://my.oschina.net/u/4000361/blog/2967628

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值