理論
一、LAMP(Linux-Apache-MySQL-PHP)
LAMP具有通用、跨平臺、高性能、低價格的優勢,因此LAMP無論是性能、質量還是價格都是企業搭建網站的首選平臺
(1)分布解釋
- L代表服務器作業系統使用Linux
- A代表網站服務使用的是Apache軟體基金會中的httpd的軟體
- M代表網站后臺使用的資料庫時MySQL資料庫
- P代表網站是使用PHP/Perl/Python等語言開發
組成產品均是開源軟體,是國際上成熟的架構框架,很多流行的商業應用都是采取這個架構,
(2)深入解釋
- 客戶端發送請求連接web服務器的80埠,由Apache相應并處理用戶的靜態請求,
- 如果客戶端請求的是動態資源,由Apache加載呼叫libphpX.so模塊(安裝php程式帶來)進行決議處理,
- 如果處理需要和后臺資料庫溝通,那么由php程式去完成,
- Php程式將處理完后的結果再回傳給Apache,由Apache回傳給客戶端,
操作
一、Apache搭建
(1)首先對防火墻進行關閉
systemctl stop firewalld
setenforce 0
(2)安裝環境依賴包
注意:yum源需要進行配置完成
yum -y install gcc
yum -y install gcc-c++ make
yum -y install pcre
yum -y install pcre-devel
yum -y install expat-devel
yum -y install perl
簡潔方法:
yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl
(3)軟體配置引數
把軟體包統一放在/opt目錄下
cd /opt/
tar zxvf apr-1.6.2.tar.gz
tar zxvf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29.tar.bz2
#解壓軟體包
mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util
#更改位置并重命名
cd /opt/httpd-2.4.29
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
##軟體模塊指向
--prefix=/usr/local/httpd #指定將 httpd 服務程式的安裝路徑
--enable-so #啟用動態加載模塊支持,使 httpd 具備進一步擴展功能的能力
--enable-rewrite #啟用網頁地址重寫功能,用于網站優化、防盜鏈及目錄遷移維護
--enable-charset-lite #啟動字符集支持,以便支持使用各種字符集編碼的頁面
--enable-cgi #啟用CGI(通用網關介面)腳本程式支持,便于網站的外部擴展應用訪問能力
完成顯示:

(4)編譯
make
#如果多核可以使用make -j 核數 指定使用幾何進行編譯
make install
#編譯
編譯完成如圖:

(5)路徑環境
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
(6)添加httpd服務
vim /lib/systemd/system/httpd.service #進入組態檔
[Unit]
Description=The Apache HTTP Server #描述
After=network.target #描述服務類別
[Service]
Type=forking #后臺運行方式
PIDFile=/usr/local/httpd/logs/httpd.pid #PID檔案位置
ExecStart=/usr/local/bin/apachectl $OPTIONS #啟動服務
ExecReload=/bin/kill -HUP $MAINPID #根據PID多載配置
[Install]
WantedBy=multi-user.target
##把以上內容寫入組態檔中
systemctl start httpd.service #開啟服務
(7)修改httpd服務組態檔
vim /etc/httpd.conf #進入組態檔
第52行更改
Listen 本機IP:80
第197行更改同時取消注釋
ServerName 域名:80
第221行設定默認首頁存放路徑
DocumentRoot "/usr/local/httpd/htdocs"
第255行默認首頁檔案名設定
DirectoryIndex index.html
httpd -t 或 apachectl -t #檢查組態檔的配置項是否有誤
systemctl restart httpd.service #確認無誤重啟服務
二、Mysql資料庫搭建
(1)安裝環境依賴
yum -y install gcc
yum -y install gcc-c++
yum -y install ncurses #字符終端下圖形互動功能的動態庫
yum -y install ncurses-devel #ncurses開發包
yum -y install bison #語法分析器
yum -y install cmake #mysql需要用cmake編譯安裝
(2)配置軟體模塊
cd /opt
tar zxvf mysql-5.7.17.tar.gz
tar zxvf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost #移動并重命名
cd /opt/mysql-5.7.17
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定mysql的安裝路徑
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock #指定mysql行程監聽套接字檔案(數據庫連接檔案)的存盤路徑
-DSYSCONFDIR=/etc #指定組態檔的存盤路徑
-DSYSTEMD_PID_DIR=/usr/local/mysql #指定行程檔案的存盤路徑
-DDEFAULT_CHARSET=utf8 #指定默認使用的字符集編碼,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci #指定默認使用的字符集校對規則
-DWITH_EXTRA_CHARSETS=all #指定支持其他字符集編碼
-DWITH_INNOBASE_STORAGE_ENGINE=1 #安裝INNOBASE存盤引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 #安裝ARCHIVE存盤引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 #安裝BLACKHOLE存盤引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 #安裝FEDERATED存盤引擎
-DMYSQL_DATADIR=/usr/local/mysql/data #指定資料庫檔案的存盤路徑
-DWITH_BOOST=/usr/local/boost #指定boost的路徑,若使用mysql-boost集成包安裝則-DWITH_BOOST=boost
-DWITH_SYSTEMD=1 #生成便于systemctl管理的檔案
完成圖:

(3)編譯及安裝
注意:如果編譯使用的內核數跟虛擬機運行記憶體不匹配容易報錯
make
#如果多核可以使用make -j 核數 指定使用幾何進行編譯
make install
完成圖:

(4)創建mysql用戶
useradd -M -s /sbin/nologin mysql
(5)mysql 組態檔
vim /etc/my.cnf
[mysqld] #服務全域設定
user = mysql #設定管理用戶
basedir=/usr/local/mysql #指定資料庫的安裝目錄
datadir=/usr/local/mysql/data #指定資料庫檔案的存盤路徑
port = 3306 #指定埠
character-set-server=utf8 #設定服務器字符集編碼格式為utf8
pid-file = /usr/local/mysql/mysqld.pid #指定pid 行程檔案路徑
socket=/usr/local/mysql/mysql.sock #指定資料庫連接檔案
bind-address = 0.0.0.0 #設定監聽地址,0.0.0.0代表允許所有,如允許多個IP需空格隔開
skip-name-resolve #禁用DNS決議
max_connections=2048 #設定mysql的最大連接數
default-storage-engine=INNODB #指定默認存盤引擎
max_allowed_packet=16M #設定資料庫接收的資料包大小的最大值
server-id = 1 #指定服務ID號
保存后命令面板輸入:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
sql_mode常用值如下:
NO_ENGINE_SUBSTITUTION
##如果需要的存盤引擎被禁用或未編譯,那么拋出錯誤,不設定此值時,用默認的存盤引擎替代,并拋出一個例外
STRICT_TRANS_TABLES
##在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做限制
NO_AUTO_CREATE_USER
##禁止GRANT創建密碼為空的用戶
NO_AUTO_VALUE_ON_ZERO
##mysql中的自增長列可以從0開始,默認情況下自增長列是從1開始的,如果你插入值為0的資料會報錯
NO_ZERO_IN_DATE
##不允許日期和月份為零
NO_ZERO_DATE
##mysql資料庫不允許插入零日期,插入零日期會拋出錯誤而不是警告
ERROR_FOR_DIVISION_BY_ZERO
##在INSERT或UPDATE程序中,如果資料被零除,則產生錯誤而非警告,默認情況下資料被零除時MySQL回傳NULL
PIPES_AS_CONCAT
##將"||"視為字串的連接運算子而非或運算子,這和Oracle資料庫是一樣的,也和字串的拼接函式Concat相類似
ANSI_QUOTES
啟用ANSI_QUOTES后,不能用雙引號來參考字串,因為它被解釋為識別符
(6)更改mysql安裝目錄和組態檔的屬主屬組
注意:如果沒有此目錄或檔案,可能是上面編譯后make install命令沒有運行
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
(7)設定路徑環境變數
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
##路徑變數
source /etc/profile
##更新檔案
(8)初始化資料庫
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
--initialize-insecure #生成初始化密碼為空
--user=mysql #指定管理用戶
--basedir=/usr/local/mysql #指定資料庫的安裝目錄
--datadir=/usr/local/mysql/data #指定資料庫檔案的存盤路徑
(9)添加mysqld系統服務
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#用于systemctl服務管理
systemctl daemon-reload #重繪識別
systemctl start mysqld.service #開啟服務
systemctl enable mysqld #開機自啟動
netstat -anpt | grep 3306 #查看埠
(10)修改mysql的登錄密碼
mysqladmin -u root -p password "密碼"
#給root賬號設定密碼
(11)授權遠程登錄
mysql -u root -p
mysql
grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';
#授予root用戶可以在所有終端遠程登錄,使用的密碼是xxxxxx,并對所有資料庫和所有表有操作權限
show databases; #查看當前已有的資料庫
完成圖:

三、PHP搭建
(1)安裝環境依賴
yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
(2)配置軟體模塊
cd /opt
tar jxvf php-7.1.10.tar.bz2
cd /opt/php-7.1.10
./configure
--prefix=/usr/local/php7 #指定將 PHP 程式的安裝路徑
--with-apxs2=/usr/local/httpd/bin/apxs #指定Apache httpd服務提供的apxs 模塊支持程式的檔案位置
--with-mysql-sock=/usr/local/mysql/mysql.sock #指定mysql 資料庫連接檔案的存盤路徑
--with-config-file-path=/usr/local/php7 #設定 PHP 的組態檔 php.ini 將要存放的位置
--with-mysqli \ #添加 MySQL 擴展支持 #mysqli擴展技術不僅可以呼叫MySQL的存盤程序、處理MySQL事務,而且還可以使訪問資料庫作業變得更加穩定
--with-zlib \ #支持zlib功能,提供資料壓縮
--with-curl \ #開啟curl擴展功能,實作HTTP的Get下載和Post請求的方法
--with-gd \ #激活gd 庫的支持
--with-jpeg-dir \ #激活jpeg 的支持
--with-png-dir \ #激活png 的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \ #啟用多位元組字串功能,以便支持中文等代碼
--enable-xml \ #開啟擴展性標記語言模塊
--enable-session \ #會話
--enable-ftp \ #文本傳輸協議
--enable-pdo \ #函式庫
--enable-tokenizer \ #令牌解釋器
--enable-zip #ZIP壓縮格式
完成圖:

(3)編譯及安裝
make
#如果多核可以使用make -j 核數 指定使用幾何進行編譯
make install

(4)復制模版檔案作為PHP的主組態檔,并進行修改
cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini
#在測驗環境時使用php.ini-development檔案,而在生產環境時使用php.ini-production檔案
vim /usr/local/php7/php.ini
第1170行更改
mysqli.default_socket = /usr/local/mysql/mysql.sock
第939行更改并取消注釋
date.timezone = Asia/Shanghai
(5)把PHP可執行程式檔案放入路徑環境變數的目錄中便于系統識別
ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m #查看PHP 加載了哪些模塊
(6)修改httpd 服務的組態檔,讓apache支持PHP
vim /etc/httpd.conf
第393行更改插入以下內容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
第255行更改修改首頁檔案名設定
DirectoryIndex index.html index.php
到目前LAMP架構已經基本搭建完成
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/246155.html
標籤:其他
下一篇:nginx筆記—安裝配置
