- LAMP架构介绍
- MySQL、MariaDB介绍
- MySQL安装
- MariaDB安装
- Apache安装
- 安装PHP5
- 安装PHP7
- 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.csdn.net/u013785951/article/details/60876816
查看编译参数 http://ask.apelearn.com/question/1295
一.LAMP架构介绍
- 现在手机用的多了,PHP用的就少了
- Apache+MySQL+PHP这三个可以安装在一台机器上,也可以分开(Apache和PHP要在一起,因为他们是一个整体)
- 用户发送请求 --> Apache分析是静态请求还是动态请求 --> 动态请求会交给PHP模块和MySQL处理分析,返回用户登录界面 --> 静态请求Apache自己判断,然后再静态文件里取出文件返回给用户
二.MySQL、MariaDB介绍
- 后续学习,基本基于mariadb
三.MySQL安装
- 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 查看一下,如下则正常成功了
- #useradd mysql 创建一个mysql用户
- #mkdir /data/ 创建一个/data/目录
- #./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 指定用户和mysql数据库,数据存放位置为/data/mysql/
- 执行完后,出现下面提示问题
- #yum list | grep perl |grep -i dumper 搜索一下per包
- #yum install -y perl-Data-Dumper 安装一下这个包
- #./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 再次执行该命令
- #echo $? 检测一下上面命令是否正确
- #vim /etc/my.cnf 编辑该文件,做如下更改
- #cp support-files/mysql.server /etc/init.d/mysqld 将该文件拷贝到/init.d/目录下,做启动脚本
- #vi /etc/init.d/mysqld 添加如下内容
- #chkconfig --add mysqld 启动
- #chkconfig --list 查看一下
- #service mysqld start 启动一下该服务
- #ps aux |grep mysql 查看一下是否启动进程
- #netstat -lntp 查看监听的端口
- #/etc/init.d/mysqld stop 可以关闭mysql服务
四.MariaDB安装
- 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
- cd /usr/local/mariadb
- 创建MySQL用户
- 创建/data/目录
保持默认就行,不需要改
- /start 搜索一下,添加
五.Apache安装
- 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 //查看加载的模块
- 模块存放位置
- 启动
六.安装PHP5
- 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
- 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
八.Apache和PHP结合
- 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
- Require all denied
- AddType application/x-httpd-php .php
- DirectoryIndex index.html index.php
- /usr/local/apache2.4/bin/apachectl -t //测试语法
- /usr/local/apache2.4/bin/apachectl stat
- vi /usr/local/apache2/htdocs/1.php 网址访问的是这个目录下的文件,列如1.php。
- 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