1. 程式人生 > 其它 >LAMP架構的基礎和安裝

LAMP架構的基礎和安裝

LAMP架構

LAMP架構介紹

瞭解LAMP

LAMP架構是指Linux+Apache(httpd)+MySQL+PHP

ps:三個角色可以在一臺機器、也可以分開(httpd和PHP要在一起)

LAMP工作原理

Apache和PHP是一個整體,PHP以模組的形式和Apache結合在一起。Apache不直接和Mysql打交道,通過PHP模組和Mysql進行動態互動然後再傳給Apache展現給使用者。靜態檔案則是一些在Linux伺服器上的一些網址的log檔案和圖片。

Mysq/Mariadb介紹

MySQL是一個關係型資料庫,由mysql ab公司開發

MySQL官網https://www.mysql.com

Mariadb為MySQL的一個分支,官網https://mariadb.com/

安裝mysql

安裝方式:rpm、原始碼、二進位制免編譯(本隨筆使用的二進位制免編譯)

阿里雲網絡yum:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

1.使用rz將mysql5.6傳到/usr/local/src/下,並進行解壓

tar -zxvf mysql-5.6.47-linux-glibc2.12-x86_64

2.移動到/usr/local/mysql

mv mysql-5.6.47-linux-glibc2.12-x86_64 /usr/local/mysql

3.建立mysql使用者和資料目錄,並更改它的許可權

useradd -s /sbin/nologin mysql
mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql

4.執行安裝mysql的指令碼(需要支援perl環境)

yum install -y perl-Module-Install
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

5.修改mysql的配置檔案

cp support-files/my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
vim /etc/my.cnf
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
server_id = 10
socket = /tmp/mysql.sock
cp support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/data/mysql

6.設定啟動項,並開機自啟

[root@antong mysql]# chkconfig --add mysqld
[root@antong mysql]# chkconfig mysqld on

7.檢視mysql能否啟動成功(檢視程序埠)

[root@antong mysql]# service mysqld start 
Starting MySQL.Logging to '/data/mysql/antong.err'.
SUCCESS! 
[root@antong mysql]# ps -ef | grep mysqld
root      13870      1  0 07:55 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/antong.pid
mysql     14047  13870  4 07:55 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=antong.err --pid-file=/data/mysql/antong.pid --socket=/tmp/mysql.sock --port=3306
root      14073  13715  0 07:55 pts/0    00:00:00 grep --color=auto mysqld
[root@antong mysql]# netstat -ltunp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN  14047/mysqld

Apache介紹

ApacheApache軟體基金會的一個開放原始碼的網頁伺服器,可以在大多數計算機作業系統中執行,由於其多平臺和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可通過簡單的API擴充套件,將Perl/Python等直譯器編譯到伺服器中。

Apache是一個基金會的名字,httpd才是我們要安裝的軟體包,早期它的名字就叫apache

Apache官網www.apache.org

安裝Apache

1.將三個檔案上傳到/usr/local/src/Apache下

mkdir /usr/local/src/Apache
cd /usr/local/src/Apache
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.27.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-1.5.2.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.5.4.tar.gz

2.解壓三個檔案

tar -zxvf apr-1.5.1.tar.gz
tar -zxvf apr-util-1.5.4.tar.gz
tar -zxvf httpd-2.4.33.tar.gz

3.安裝apr,進入目錄進行編譯操作(需要安裝libtoolT)

yum install -y libtool*
cd /usr/local/src/Apache/apr-1.5.1
./configure --prefix=/usr/local/apr
make && make install

4.安裝apr-util(需要安裝expat-devel)

cd /usr/local/src/Apache/apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr <----執行後自動生成makefile---->
yum install -y expat-devel
make && make install

5.安裝Apache(http)

cd /usr/local/src/Apache/httpd-2.4.33
yum install -y pcre-devel
./configure \   //這裡的反斜槓是脫義字元,加上它我們可以把一行命令寫成多行
--prefix=/usr/local/apache2.4 \  //指定安裝目錄
--with-apr=/usr/local/apr \      //進行apr關聯依賴
--with-apr-util=/usr/local/apr-util \   //進行apr-util關聯依賴
--enable-so \       //支援動態擴充套件模組
--enable-mods-shared=most   //支援大多數動態的擴充套件模組
make && make install

6.檢視so檔案和載入的模組

ls /usr/local/apache2.4/modules
/usr/local/apache2.4/bin/httpd -M //檢視載入的模組

PHP介紹

PHP(PHP: Hypertext Preprocessor)即“超文字前處理器”,是在伺服器端執行的指令碼語言,尤其適用於Web開發並可嵌入HTML中。

PHP官網www.php.net

安裝PHP5

1.下載php5包並解壓

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

2.安裝php5(需要額外安裝軟體,實際中需要什麼軟體就安裝什麼軟體)

cd /usr/local/src/php-5.6.30
yum install -y libxml2-devel bzip2 bzip2-devel libpng libpng-devel openssl openssl-devel freetype freetype-devel opel-release epel-release
yum install -y libmcrypt-devel 
./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-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

3.確定php是否安裝成功(檢視Apache模組)

/usr/local/apache2.4/bin/httpd -M
ls /usr/local/apache2.4/modules/
/usr/local/php/bin/php -i | less

4.配置PHP的配置檔案

cp php.ini-production  /usr/local/php/etc/php.ini //development為開發環境production為生產環境

Apache解析PHP

1.修改httpd主配置檔案

vim /usr/local/apache2.4/conf/httpd.conf
ServerName //解除註釋
Require all granted
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php

2.測試Apache檔案並重新載入Apache服務

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl start  //先殺掉程序
/usr/local/apache2.4/bin/apachectl graceful
curl localhost

3.最終結果展示

cd /usr/local/apache2.4/htdocs
cat > test.php <<EOF
<?php
echo "PHP解析";
?>
EOF
curl localhost/test.php