1、LAMP架构介绍:php
Linux+ Apache(httpd)+ mysql + phphtml
操做系统+外网服务软件 + 存储软件 + 脚本语言(由C开发)java
PHP网站mysql
三个角色能够装在一台机器,也能够分开,可是httpd要和php在一块儿(php是以模块的形式和apache结合在一块儿的,apache经过php和mysql打交道,)linux
动态请求:用户经过帐号和密码登陆apache,apache经过php去mysql里比对数据,对上后apache会返回给用户登陆状态c++
静态请求:用户经过apache登陆,apache直接去linux某个目录中去拿静态的文件或图片。不与mysql打交道sql
2、mysql/mariaDB介绍shell
mysql是一个关系型数据库。由mysql ab公司开发。在2008年被sun公司收购。sun公司(java)于2009年被oracle(数据库)公司收购。mysql走上了商业路线。官网:www.mysql.com 在版本5.6开始变化比较大。5.7性能上有很大提高。数据库
mariadb为mysql一个分支。官网为www.mariadb.com,由原做者带领大部分原班人马创立。mariadb5.5对应mysql5.5,mysql5.6对应maiadb10.0。apache
Community 开源版本
enterprise 企业版
GA 通用版本,再生产环境中使用
DMR 开发里程碑版本(有重大突破的版本)
RC 发行候选版本
Beta 开发测试版本(可能存在bug)
Alpha 内部测试版本
3、Mysql安装
uname -a 查看当前版本信息
[root@lnmp ~]# uname -a
Linux lnmp 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
安装:rpm(没有办法自定义安装路径),源码,二进制免编译(能够自定义安装路径)
解压mysql的二进制免编译包
tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
将他移动并更名为
mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
ls #查看当前目录下的的文件
切换到/usr/local/mysql目录下
建立mysql用户
useradd mysql
mysql 数据库的默认储存数据文件的路径在/var/lib/mysql,可是实际中,咱们在安装时经常就须要定制安装数据库路径,建立data
mkdir /data
初始化
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 生成数据库系统,指定用户为mysql,储存数据库路径放在/data/下
可能遇到的问题
一、
解决办法:yum install -y perl-XML-Dumper #安装须要的包
问题二、
解决办法是: yum install libaio-devel
初始化成功
拷贝配置文件到/etc/my.cnf (可能已经存在my.cnf文件,多是由于以前装过,也多是别的数据库的配置)
cp support-files/my-default.cnf /etc/my.cnf
(源文件已经有时,在复制就会覆盖)
或者(不复制support-files/my-default.cnf /etc/my.cnf 时操做)vim /etc/myt.cnf
拷贝mysql启动脚本而且编辑
cp support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld #[mysqld]底下添加
basedir=/usr/local/mysql 指定了mysql程序目录
datadir=/data/mysql 指定了mysql存储数据目录
MySQL数据库默认启动脚本为mysql.server
[root@localhost mysql]# ls support-files/
设置权限为755 (有时候默认是755)
chmod 755 /etc/init.d/mysqld
若是想开机启动,把它添加到系统服务列表里
chkconfig --add mysqld 添加到系统服务列表
chkconfig --list 查看系统服务列表
service mysqld start / / etc/init.d/mysqld start 都是启动mysql服务
ps aux|grep mysql 查看进程
netstat -lntp 查看监听的端口
vi auto_install_lamp.sh、
#!/bin/bash
#2017年10月10日15:14:12
#auto install Lamp soft
#by author www.jfedu.net
#######################
#Install APACHE WEB SOFT
yum install httpd httpd-devel httpd-tools -y
#Install MYSQL DB SOFT
yum install mysql mysql-server mysql-devel -y
#Install PHP WEB SOFT
yum install php php-devel php-common php-mysql -y
#Restart LAMP service
/etc/init.d/httpd restart
/etc/init.d/mysqld restart
#Create LAMP Test Pages
cd /var/www/html/
touch index.php
echo "<?php
phpinfo();
?>">index.php
############################
#!/bin/bash
#2017年10月10日15:30:45
#auto install Lamp soft
#by author www.jfedu.net
#######################
#Install APACHE WEB SOFT
yum install gcc gcc-c++ glibc glibc-delvel -y
yum install apr apr-devel apr-util apr-util-devel wget -y
cd /usr/src
wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
tar -xzvf httpd-2.2.34.tar.gz
cd httpd-2.2.34
./configure --prefix=/usr/local/apache2/ --enable-so --enable-rewirte --enable-echo --enable-info --enable-ssl
make -j8
make -j8 install
pkill httpd
/usr/local/apache2/bin/apachectl start
ps -ef|grep httpd
#Install MYSQL DB SOFT
cd /usr/src/
wget -c http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz
tar -xzf mysql-5.5.20.tar.gz
cd mysql-5.5.20
yum install cmake ncurses-devel ncurses -y
cmake . -DCMAKE_INSTALL_PREFIX=/data/mysql/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/data/ \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
make
make install
#Install PHP WEB SOFT
cd /usr/src
wget -c http://mirrors.sohu.com/php/php-5.3.28.tar.bz2
tar jxf php-5.3.28.tar.bz2
cd php-5.3.28 ;
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql55/
make -j8
make -j8 install
#LAMP config for PHP module
cd /usr/local/apache2/conf/
echo "AddType application/x-httpd-php .php">>httpd.conf
sed -i 's/index.html/index.php index.html/g' httpd.conf
cat>/usr/local/apache2/htdocs/index.php<<EOF
<?php
phpinfo();
?>
EOF
/usr/local/apache2/bin/apachectl restart
#############################
#!/bin/bash
#2017年7月3日10:46:50
#by author jfedu.net
##################
#Install apache server
yum intall httpd httpd-devel -y
#Install mysql server
yum intall mariadb mariadb-server mariadb-devel -y
#Install php server
yum intall php php-mysql php-devel -y
#Start Httpd and Mysql server
systemctl restart httpd.service
systemctl restart mariadb.service
#create PHP test Pages
touch /var/www/html/index.php
<?php
phpinfo();
?>
常见问题:
yum install php php-mysql mysql
yum install mysql-server //这个必须安装,才会有/etc/init.d的mysqld
PS: 1. 若出现错误 Lost connection to MySQL server at 'reading initial communication packet', system error: 111
有多是mysql服务没打开,可用命令service mysqld start
2.若出现错误ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.18.9' (113)
极可能是防火墙的问题
iptables -F
iptables -L
这样就解决了
2\
另一种方法启动MySQL,&符号表示丢到后台
killall mysqld 杀死mysql进程(不要常常用kill这个命令)
mysql常见的2中引擎
innodb 比较大 和 myisam 比较小
killall 和 kill 的区别 killall很理性,会在读写完成后在结束进程