文章目錄
- 前言
- 一、什么是LAMP架構
- 二、各組件的作用
- 1.Apache(前臺)
- 2.MYSQL(后臺)
- 3.PHP/Perl/Python
- 4.linux
- 三、LAMP架構安裝
- 1.Apache編譯安裝
- 2.MYSQL編譯安裝
- 3.PHP編譯安裝
- 四、搭建一個小型論壇
前言
本次LAMP架構搭建實驗所需安裝包:
鏈接:https://pan.baidu.com/s/1SlveRWBTil1nM5jy2euJlQ
提取碼:3mpt
一、什么是LAMP架構
LAMP架構是目前成熟的企業網站應用模式之一,指的是協同工作的一整套系統和相關軟件,能夠提供動態Web站點服務及其應用開發環境。
LAMP是一個縮寫詞,具體包括Linux操作系統、Apache網站服務器、MYSQL數據庫服務器、PHP(Perl、python)網頁編程語言。
在構建LAMP架構時,各組件的安裝順序以此為Linux、Apache、MYSQL、PHP。其中Apache和MYSQL的安裝順序并沒有嚴格的順序,PHP環境的安裝一般是放到最后安裝,負責溝通Web服務器和數據庫系統進行協同工作。
二、各組件的作用
1.Apache(前臺)
作為LAMP架構的前端,是一款功能強大、穩定性好的Web服務器程序,該服務器直接面向用戶提供網站訪問,發送網頁、圖片等文件內容。
2.MYSQL(后臺)
作為LAMP架構的后端,是一款流行的開源的數據庫系統,在企業網站、業務系統等應用中,各種賬戶信息、產品信息、客戶資料、業務數據等都可以存儲到MYSQL數據庫中,其他程序可以通過SQL語句來查詢、更改這些信息。
3.PHP/Perl/Python
作為三種開發動態網頁的編程語言,負責解釋動態網頁文件,負責溝通Web服務器和數據庫系統進行協同工作,并提供Web應用程序的開發和運行環境。其中,PHP是一種被廣泛應用的開放源代碼的多用途腳本語言,它可以嵌入到HTML中,尤其適合于Web應用開發。
4.linux
提供了LAMP架構的平臺
三、LAMP架構安裝
1.Apache編譯安裝
執行 yum install -y gcc gcc-c++ make pcre pcre-devel expat-devel perl 依賴 - gcc:C語言的編譯器
- gcc-c++:C++的編譯器
- make:源代碼編譯器(源代碼轉換二進制文件)
- pcre:pcre是一個perl函數庫,包括perl兼容的正則表達式庫
- pcre-devel:perl的接口開發包
- expat-devel:用于支持網站解析HTML、XML文件
- perl:perl語言編譯器
上傳apache.rar中的apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz、httpd-2.4.29.tar.bz2三個壓縮包至/opt目錄下,使用 tar 進行解壓。
將apr-1.6.2目錄和apr-util-1.6.0移動到/opt/httpd-2.4.29/srclib目錄下
進入/opt/httpd-2.4.29目錄,執行以下命令
./config命令可以自定義安裝的位置以及所需要的組件,這一點是yum不能提供的./configure
\
--prefix
=/usr/local/httpd
\
--enable-so
\
--enable-rewrite
\
--enable-charset-lite
\
--enable-cgi 上述命令執行完畢后,執行以下命令進行編譯安裝
make -j
2 && make install
我們可以做軟鏈接將httpd服務的可執行程序文件放入環境變量的目錄中,便于系統識別,優化配置文件路徑。
添加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
ExecStart=/usr/local/bin/apachectl
$OPTIONS
ExecReload=/bin/kill -HUP
$MAINPID
[Install
]
WantedBy=multi-user.target
:wq保存退出systemctl daemon-reload systemctl start httpd.service
開啟http服務
systemctl
enable httpd.service
修改httpd 服務配置文件
vim /etc/httpd.conf
- 修改第52行Listen參數,默認為80,意味著監聽所有主機的80端口,我們這里改成http服務器的IP:80。
- 修改第197行,將ServerName參數注釋刪除,并添加域名
- 使用httpd -t 命令進行配置文件的檢查
首先重啟httpd服務,再使用netstat -anpt | grep 80 命令過濾 80 端口,查看服務是否開啟
將IP與域名的映射關系寫入/etc/hosts文件,進行訪問
2.MYSQL編譯安裝
將mysql-5.7.17.tar.gz和boost_1_59_0.tar.gz上傳到/opt目錄
yum安裝依賴包
yum -y
install \
gcc
\
gcc-c++
\
ncurses
\
ncurses-devel
\
bison
\
cmake
將兩個包使用 tar xvf 進行解壓將解壓出來的boost_1_59_0 目錄移動到/usr/local/boost目錄
命令:mv boost_1_59_0 /usr/local/boost
進入/opt/mysql-5.7.17目錄下進行cmake自定義安裝
cd /opt/mysql-5.7.17/
cmake
\
-DCMAKE_INSTALL_PREFIX
=/usr/local/mysql
\
-DMYSQL_UNIX_ADDR
=/usr/local/mysql/mysql.sock
\
-DSYSCONFDIR
=/etc
\
-DSYSTEMD_PID_DIR
=/usr/local/mysql
\
-DDEFAULT_CHARSET
=utf8
\
-DDEFAULT_COLLATION
=utf8_general_ci
\
-DWITH_EXTRA_CHARSETS
=all
\
-DWITH_INNOBASE_STORAGE_ENGINE
=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE
=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE
=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE
=1 \
-DMYSQL_DATADIR
=/usr/local/mysql/data
\
-DWITH_BOOST
=/usr/local/boost
\
-DWITH_SYSTEMD
=1
存儲引擎選項:
1.MYISAM,MERGE,MEMORY,和CSV引擎是默認編譯到服務器中,并不需要明確地安裝。
2.靜態編譯一個存儲引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1
3.可用的存儲引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
!!!注:如果在CMAKE的過程中有報錯,當報錯解決后,需要把源碼目錄中的CMakeCache.txt文件刪除,然后再重新CMAKE,否則錯誤依舊!!!
make -j 2 && make install
創建mysql用戶
useradd -M -s /sbin/nologin mysql
修改mysql 配置文件
vim /etc/my.cnf
[client
]
port
= 3306
socket
= /usr/local/mysql/mysql.sock
[mysql
]
port
= 3306
socket
= /usr/local/mysql/mysql.sock
auto-rehash
[mysqld
]
user
= mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port
= 3306
character-set-server
=utf8
pid-file
= /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address
= 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine
=INNODB
max_allowed_packet=16M
server-id
= 1 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_QUOTESsql_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
更改mysql安裝目錄和配置文件的屬主屬組
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
.設置路徑環境變量
初始化數據庫
cd /usr/local/mysql/bin/./mysqld
\
--initialize-insecure
\
--user
=mysql
\
--basedir
=/usr/local/mysql
\
--datadir
=/usr/local/mysql/data
添加mysqld系統服務
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl
enable mysqld
netstat -anpt
| grep 3306
修改mysql 的登錄密碼
mysqladmin -u root -p password “XXX”
授權遠程登錄
查看數據庫
3.PHP編譯安裝
上傳php-7.1.10.tar.bz2到/opt目錄下
yum安裝依賴包
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
配置軟件模塊
cd /opt
tar jxvf php-7.1.10.tar.bz2
cd /opt/php-7.1.10/
./configure
\
--prefix
=/usr/local/php7
\
--with-apxs2
=/usr/local/httpd/bin/apxs
\
--with-mysql-sock
=/usr/local/mysql/mysql.sock
\
--with-config-file-path
=/usr/local/php7
--with-mysqli
\
--with-zlib
\
--with-curl
\
--with-gd
\
--with-jpeg-dir
\
--with-png-dir
\
--with-freetype-dir
\
--with-openssl
\
--enable-mbstring
\
--enable-xml
\
--enable-session
\
--enable-ftp
\
--enable-pdo
\
--enable-tokenizer
\
--enable-zip 等待./configure完成
make -j
2 && make install
復制模版文件作為PHP 的主配置文件,并進行修改
cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini
注:php目錄中會有兩個文件,一個是developmen結尾的文件,適用于測試環境;另一個是production結尾的文件,適用于生產環境,這里我們使用development文件就行。
vim /usr/local/php7/php.ini
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
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.html index.php
7.測試
四、搭建一個小型論壇
首先登錄數據庫,并創建一個名為bbs的庫
授權,刷新
傳Discuz_X3.4_SC_UTF8.zip壓縮包到/opt目錄,并進行解壓,因為是.zip,所以使用unzip進行解壓
unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/dis
執行 cp -r /opt/dis/dir_SC_UTF8/upload/ /usr/local/httpd/htdocs/bbs 命令將站點上傳
更改論壇目錄的屬主
cd /usr/local/httpd/htdocs/bbs
chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data
5.訪問驗證
這樣,一個簡易的論壇就搭好了
總結
以上是生活随笔為你收集整理的Linux之LAMP架构的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。