0507第十七次課:LAMP

LAMP(上)

1、LAMP架構介紹

  • 什麼是LAMPphp

    LAMP就是Linux+Apache(httpd)+MySQL+PHP ,簡稱LAMP。mysql

    Linux:操做系統,如centos、redhat、Ubuntu。linux

    Apache:也叫httpd,web服務軟件web

    Mysql:關係型數據庫正則表達式

    PHP:腳本語言,由 C語言 開發,一般用於作網站sql

    三個角色能夠在一臺機器上,也能夠分開,可是apache要和php在一塊兒。數據庫

  • httpd、PHP、MySQL工做原理apache

2、MySQL、MariaDB介紹

  • MySQL是一個關係型數據庫,由mysql ab公司開發,mysql在2008年被sun公司收購(10億刀),2009年sun公司被oracle公司收購(74億刀)vim

  • MySQL官網https://www.mysql.com 最新版本5.7GA/8.0DMRwindows

  • 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內部測試版本

3、Mysql安裝

  • Mysql的幾種安裝方式:rpm、源碼、二進制免編譯。若是沒有特殊要求通常使用進制免編譯安裝

  • 源碼安裝:

  1. 下載mysql5.6安裝包

    cd /usr/local/src

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

  2. 解壓安裝包

    tar -xzvf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz

    mv mysql-5.6.42-linux-glibc2.12-x86_64 /usr/local/mysq

    cd /usr/local/mysql

  3. 添加用戶

    useradd mysql

  4. 建立數據目錄

    mkdir /data/

  5. 初始化庫

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

    這一步可能缺包,若是報錯請按提示安裝如下依賴包:

    yum install perl-Data-Dumper.x86_64

    yum install libaio

    初始化完成提示:

  6. 生成並修改配置文件

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

    修改內容:

    basedir=/usr/local/mysql

    datadir=/data/mysql

    socket=/tmp/mysql.sock

    symbolic-links=0

  7. mysql啓動

    生成啓動腳本,並修改

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

    vi /etc/init.d/mysqld

    修改內容:

    basedir=/usr/local/mysql

    datadir=/data/mysql

    啓動mysql:

    /etc/init.d/mysqld start 或者:service mysqld start

    設置開機啓動:

    chkconfig --add mysqld

    ln -s /usr/local/mysql/bin/mysql /usr/bin

    使用mysql命令啓動:

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

    –defaults-file=/etc/my.cnf :指配置文件

    –user=mysql : 指定用戶

    –datadir=/data/mysql/ :指定數據存儲位置`

  8. mysql經常使用的兩種引擎

    nnodbnnodb引擎,比較大

    myisam引擎存儲空間、存儲量都比較小

  9. kill和killall區別

    mysql數據讀寫很是快,有可能有些數據還沒從內存中存到磁盤中,這時候kill掉會致使數據丟失甚至表損壞。而使用kiallall命令,則會先中止當前的讀寫操做,而後把等內存數據寫到磁盤中後才把進程殺死。

4、Mariadb

  • mariadb安裝方式基本和mysql相似
  1. 下載安裝包

    因爲外網下載地址沒法下載,這裏使用清華源進行下載

    wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.2.23/bintar-linux-glibc_214-x86_64/mariadb-10.2.23-linux-glibc_214-x86_64.tar.gz

  2. 解壓安裝包

    tar -xzvf mariadb-10.2.23-linux-glibc_214-x86_64.tar.gz

    mv mariadb-10.2.23-linux-glibc_214-x86_64 /usr/local/mariadb

    cd /usr/local/mariadb/

  3. 修改配置文件

    因爲已經安裝mysql,因此複製s配置文件到 /usr/local/mariadb/目錄下

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

    vim /usr/local/mariadb/my.cnf

    修改內容:

    datadir = /data/mariadb

  4. mariadb啓動

    設置啓動腳本

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

    修改內容:

    basedir=/usr/local/mariadb

    datadir=/data/mariadb

    添加如下內容:

    conf=/usr/local/mariadb/my.cnf

    在$bindir/mysqld_safe這一行添加如下內容:

    --defaults-file="$conf"

  5. 初始化腳本

    ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb

  6. 啓動

    service mariadb start

5、Apche安裝

  • Apache是一個基金會的名字,httpd纔是咱們要安裝的軟件包,早期它的名字就叫apache。由於httpd使用的人不少,很流行,因此當時就以基金會的名字來命名的web服務軟件 ,在早期的時候,名字就叫作Apache,而不是叫httpd,後來在http的2.0版本開始,就更名叫httpd,可是不少人仍是習慣叫作Apache。

    Apache如今主流版本是 2.4版本。

  1. 下載安裝包

    下載地址

    2.4源碼包: https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.38.tar.gz

    apr: https://mirrors.cnnic.cn/apache/apr/apr-1.6.5.tar.gz

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

    apr和apr-util是一個通用的函數庫,它讓httpd能夠不關心底層的操做系統平臺,能夠很方便地移植(從linux移植到windows)

  2. 解壓安裝包

    tar -xvf httpd-2.4.38.tar.gz

    tar -xvf apr-1.6.5.tar.gz

    tar -xvf apr-util-1.6.1.tar.gz

  3. 安裝apr

    cd apr-1.6.5/

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

    make && make install

    檢查是否成功:

    echo $?

  4. apr-util

    cd apr-util-1.6.1

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

    make && make install

    ps:若是報fatal error: expat.h: No such file or directory錯誤:

    yum install expat-devel

  5. 安裝httpd

    cd httpd-2.4.38

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

    若是出現如下錯誤:

    /usr/local/apr-util/lib/libaprutil- 1.so: undefined reference to `XML_SetElementHandler'

    collect2: error: ld returned 1 exit status

    緣由:該錯誤是由於缺乏了xml相關的庫,致使reference無效

    解決方法:

    yum install -y libxml2-devel

    刪除apr-util目錄而且從新編譯安裝

    若是報pcre錯誤:

    pcre是正則表達式的驅動庫,支持正則表達式

    yum -y install pcre-devel

    從新編譯安裝

  6. 安裝完成後查看安裝文件

    cd /usr/local/apache2.4/

    主要了解目錄:bin 、conf 、htdocs

    bin:httpd的可執行文件,如啓動命令。它是httpd的核心目錄

    conf:配置文件目錄

    htdocs:存放的是訪問頁面,httpd啓動後訪問的頁面就在這個目錄下

    man目錄:存放的是幫助文檔

    modules:擴展模塊目錄。httpd全部的模塊都存放在這個目錄下,每一個模塊都表明的一個功能。

  7. 啓動

    /usr/local/apache2.4/bin/httpd -M //查看加載的模塊 /usr/local/apache2.4/bin/apachectl start //啓動

6、PHP5安裝

  • php介紹

    PHP官網:www.php.net

    目前主流版本爲5.6或7.1版本

    如今大部分企業都使用的是PHP5版本,PHP7是近幾年纔出的新版本,改動比較大,有些老的程序在PHP7中使用會出現問題,因此不少企業都還在使用PHP5。PHP7性能提高比較大,若果程序能夠兼容PHP7那就使用PHP7

    把PHP放在最後安裝,是由於先要安裝好Apache,安裝好以後指定apxs2,不然沒法自動安裝它的模塊

  1. 下載安裝包

    cd /usr/local/src

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

  2. 解壓編譯

    tar -xvf 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

  • 安裝可能缺乏的依賴包:

    yum install openssl openssl-devel

    yum install bzip2-devel.x86_64

    yum install libpng-devel

    yum -y install libjpeg-devel

    yum install freetype-devel

    yum install -y epel-release

    yum install -y libmcrypt-devel

    yum -y install ncurses-devel

  • 編譯完成

  • 編譯參數解釋

    --prefix=/usr/local/php :安裝目錄

    --with-apxs2=/usr/local/apache2.4/bin/apxs :指定apxs,它是apache的一個工具,它能夠自動的幫你去把擴展的模塊放到Apache中的modules目錄裏,而且在它的配置文件里加上一行load module。

    --with-config-file-path=/usr/local/php/etc :指定配置文件路徑

    --with-mysql=/usr/local/mysql :指定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 : 通用參數,沒有特殊要求就默認便可

  1. 安裝

    make && make install

  2. php模塊

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

7、PHP7安裝

  1. 下載php7

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

  2. 解壓編譯

    tar -xvf php-7.3.0.tar.gz

    cd php-7.3.0

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

  3. 安裝

make && make install

8、php和apache結合

  1. 修改apache配置文件

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

    修改內容:

    去掉ServerName註釋

  2. 啓動apache

    /usr/local/apache2.4/bin/apachectl -t 檢查配置文件

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

  3. 測試是否能夠訪問

  4. 加載php5

    修改httpd.conf

    添加「AddType application/x-httpd-php .php」

  5. 測試

    /usr/local/apache2.4/bin/apachectl graceful //重載配置文件

9、直播課

  • mysql5.7版本和以前版本初始化的不一樣: ./bin/mysqld --initialize --user=mysql --datadir=/data/mysql

  • 版本含義介紹

  • mysql5.7修改密碼:

    update user set authentication_string=password(‘xxx’) where user=‘root’;

  • mariadb官方yum源安裝

    wget -O - https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |sh

    yum list |grep MariaDB

  • 總結安裝軟件包的幾種方式:

    yum/rpm、編譯、二進制

相關文章
相關標籤/搜索