LAMP

红荼發表於2024-06-27

思路

在構建LAMP平臺時,各元件的安裝順序依次為Linux、Apache、MySQL、PHP。

編譯安裝Apache httpd服務 ----->編譯安裝MySQL----->編譯安裝PHP ----->搭建LAMP平臺

編譯安裝Apache httpd

安裝環境依賴包

[root@192 opt]# yum -y install gcc gcc-c++ make pcre-devel expat-devel perl pcre zlib-devel zlib

gcc \                #c語言編譯器
gcc-c++ \            #c編譯器
make \               #原始碼編譯器
pcre\                #pcre函式庫
pcre-devel \         #pcre介面開發包
expat-devel \        #用於支援網站解析HTML、XML檔案
perl                 #perl 語言編譯器

解壓軟體包

[root@192 opt]# tar xf apr-1.6.2.tar.gz
[root@192 opt]# tar xf apr-util-1.6.0.tar.gz
[root@192 opt]# tar jvxf httpd-2.4.29.tar.bz2

移動apr包 apr-util包到安裝目錄中,並切換到 httpd-2.4.29目錄中

mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

編譯安裝

[root@192 httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

./configure \                        
--prefix=/usr/local/httpd \       #指定httpd的安裝目錄
--enable-so \                     #啟用動態載入模組支援,使httpd具備進一步擴充套件功能的能力
--enable-rewrite \                #啟用網頁地址的重寫功能,用於網站最佳化、防盜鏈及目錄遷移維護   
--enable-charset-lite \           #啟用字符集支援,以便支援使用各種字符集編碼的頁面
--enable-cgi                      #啟用CGI(通用閘道器介面)指令碼程式支援,便於網站外部擴充套件應用訪問的能力

[root@192 httpd-2.4.29]# make  -j2 && make install

建立軟連線,方便補全

[root@192 httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
#將檔案拷入/etc/init.d/httpd
[root@192 httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
#建立配置檔案軟連線放入etc目錄下
[root@192 httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
#將啟動檔案放入/usr/local/bin/目錄下可以直接使用

新增httpd系統服務

[root@192 httpd-2.4.29]# vim /lib/systemd/system/httpd.service  #建立 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}
ExecStop=/bin/kill -WINCH ${MAINPID}

[Install]
WantedBy=multi-user.target

[root@192 httpd-2.4.29]# systemctl start httpd.service

編譯安裝 mysql

安裝依賴包新增mysql使用者

[root@192 ~]# yum install -y ncurses-devel autoconf cmake

yum -y install \
ncurses \ #字元終端下圖形互動功能的動態庫
ncurses-devel \ #ncurses開發包
bison \ #語法分析器
cmake #mysql需要用到的cmake編譯安裝包

新建使用者

[root@192 ~]# useradd -s /sbin/nologin  mysql

解壓軟體包並切換到編譯目錄,並編譯安裝

###上傳mysql-boost-5.7.20.tar.gz到opt目錄下###
[root@192 opt]# tar xf mysql-boost-5.7.20.tar.gz

配置軟體模組

[root@192 opt]# cd /opt/mysql-5.7.20/
[root@192 mysql-5.7.20]# 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_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=boost \
> -DWITH_SYSTEMD=1

####配置選項含義###
1、DCMAKE_INSTALL_PREFIX:指定將 mysql 資料庫程式安裝到某目錄下,
如目錄/usr/local/ mysql。
2、DMYSQL_UNIX_ADDR:指定套接字檔案的儲存路徑,資料庫連線的檔案
3、DSYSCONFDIR:指定初始化引數檔案目錄
3、DDEFAULT_CHARSET:指定預設使用的字符集編碼,如 utf8。
5、DDEFAULT_COLLATION:指定預設使用的字符集校對規則,utf8_general_ci 是適用於 UTF-8 字符集的通用規則。
6、DWITH_INNOBASE_STORAGE_ENGINE=1 :安裝INNOBASE儲存引擎
7、DWITH_ARCHIVE_STORAGE_ENGINE=1 :安裝ARCHIVE儲存引擎 
8、DWITH_BLACKHOLE_STORAGE_ENGINE=1 :安裝BLACKHOLE儲存引擎 
9、DWITH_PERFSCHEMA_STORAGE_ENGINE :安裝FEDERATED儲存引擎


指定安裝檔案的安裝路徑時常用的選項:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql         指定安裝路徑 
-DMYSQL_DATADIR=/data/mysql                     資料安裝路徑 
-DSYSCONFDIR=/etc                               配置檔案的安裝路徑

由於MySQL支援很多的儲存引擎而預設編譯的儲存引擎包括:csv、myisam、myisammrg和heap。若要安裝其它儲存引擎,可以使用類似如下編譯選項:

-DWITH_INNOBASE_STORAGE_ENGINE=1          安裝INNOBASE儲存引擎 
-DWITH_ARCHIVE_STORAGE_ENGINE=1           安裝ARCHIVE儲存引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1         安裝BLACKHOLE儲存引擎 
-DWITH_FEDERATED_STORAGE_ENGINE=1         安裝FEDERATED儲存引擎 


若要明確指定不編譯某儲存引擎,可以使用類似如下的選項:

-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1 

比如:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1        不啟用或不編譯EXAMPLE儲存引擎 
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 
 -DWITHOUT_PARTITION_STORAGE_ENGINE=1

如若要編譯進其它功能,如SSL等,則可使用類似如下選項來實現編譯時使用某庫或不使用某庫:

-DWITH_READLINE=1 
 -DWITH_SSL=system           表示使用系統上的自帶的SSL庫 
-DWITH_ZLIB=system 
 -DWITH_LIBWRAP=0

其它常用的選項:

-DMYSQL_TCP_PORT=3306                       設定預設埠的 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock           MySQL程序間通訊的套接字的位置 
-DENABLED_LOCAL_INFILE=1                    是否啟動本地的LOCAL_INFILE 
 -DEXTRA_CHARSETS=all                       支援哪些額外的字符集 
-DDEFAULT_CHARSET=utf8                      預設字符集 
-DDEFAULT_COLLATION=utf8_general_ci         預設的字符集排序規則 
-DWITH_DEBUG=0                              是否啟動DEBUG功能 
-DENABLE_PROFILING=1                        是否啟用效能分析功能

##################################################################################################

------注意:如果在CMAKE的過程中有報錯---
        當報錯解決後,需要把原始碼目錄中的CMakeCache.txt檔案刪除,然後再重新CMAKE,否則錯誤依舊
------注意:make: *** No targets specified and no makefile found. Stop.解決方法
        1wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
        2.、tar zxvf ncurses-5.6.tar.gz
        3、 ./configure -prefix=/usr/local -with-shared-without-debug
        4make
        5make install

###############################################################################################

編譯安裝


[root@192 opt]# make -j4 && make install

資料庫目錄進行許可權調整

[root@192 mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/

建立調整配置檔案

[root@192 mysql-5.7.20]# vim /etc/my.cnf
vim /etc/my.cnf #刪除原配置,新增新配置
#客戶端配置
[client] 
port = 3306
default-character-set=utf8
socket = /test/mysql/mysql.sock
#服務端配置
[mysql]
port = 3306
default-character-set=utf8
socket = /test/mysql/mysql.sock
#服務端全域性配置
[mysqld]
user = mysql
basedir = /test/mysql
datadir = /test/mysql/data
port = 3306
character_set_server=utf8
pid-file = /test/mysql/mysqld.pid
socket = /test/mysql/mysql.sock
server-id = 1sql_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

修改配置檔案許可權

[root@192 mysql-5.7.20]# chown mysql:mysql /etc/my.cnf

設定環境變數

[root@192 mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@192 mysql-5.7.20]# echo 'export PATH' >> /etc/profile
[root@192 mysql-5.7.20]# source /etc/profile

初始化 資料庫

[root@192 mysql-5.7.20]# cd /usr/local/mysql/
[root@192 mysql]# bin/mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data

準備systemctl 配置檔案

[root@192 mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@192 mysql]# systemctl enable mysqld
[root@192 mysql]# systemctl start mysqld
[root@192 mysql]# systemctl status mysqld
[root@192 mysql]# netstat -anpt | grep 3306

修改資料庫密碼

[root@192 mysql]# mysqladmin -u root -p password "abc123" //剛開始沒密碼是空的直接回車

登入資料庫

[root@192 mysql]# mysql -u root -p  #這個命令敲下,提示要輸入密碼,這個就是剛才設定的密碼abc123

編譯安裝 php

安裝依賴包

[root@192 ~]# 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

安裝GD庫和GD庫關聯程式,用來處理和生成圖片

解壓

[root@192 opt]# tar jxvf php-7.1.10.tar.bz2
[root@192 opt]# 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 \
--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壓縮格式

編譯

[root@192 php-7.1.10]# make -j4 && make install

修改配置檔案

[root@192 php-7.1.10]# cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini
#複製模版檔案作為PHP 的主配置檔案,並進行修改

[root@192 php-7.1.10]# vim /usr/local/php7/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock   --1170行--修改 1170 G,大寫的G,直接跳轉
date.timezone = Asia/Shanghai                         --939行---修改 

最佳化操作

PHP 的可執行程式檔案放入路徑環境變數的目錄中便於系統識別
ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m               檢視PHP 載入了哪些模組

修改httpd 服務的配置檔案,讓apache支援PHP

[root@192 php-7.1.10]# vim /etc/httpd.conf 
AddType application/x-httpd-php .php --393行--插入以下內容(插在下面,原行不刪)
AddType application/x-httpd-php-source .phps ##這裡的點前面空格一定要加,否則報錯

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

DirectoryIndex index.html index.php --255行--修改首頁檔名設定
LoadModule php7_module modules/libphp7.so ---156行 ---檢查支援php7的模組是否存在(可以用'/'在檔案中查詢 )

[root@192 php-7.1.10]# systemctl restart httpd  #重啟服務

驗證PHP 測試頁

[root@192 php-7.1.10]# rm -rf /usr/local/httpd/htdocs/index.html
[root@192 php-7.1.10]# vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

[root@192 php-7.1.10]# systemctl restart httpd.service

驗證是否連線成功

http://192.168.100.146/index.php

安裝論壇

新建資料庫

[root@192 php-7.1.10]# mysql  -uroot   -pabc123
mysql> CREATE DATABASE bbs;  //建立一個資料庫//
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';   //把bbs資料庫裡面所有表的許可權授予給bbsuser,並設定密碼//
mysql>flush privileges; //重新整理資料庫//

準備論壇軟體 解壓

[root@192 opt]# unzip /opt/Discuz_X3.4_SC_UTF8.zip

複製到 apache 目錄下

[root@192 opt]# cd dir_SC_UTF8/
[root@192 dir_SC_UTF8]# ls
readme  upload  utility
[root@192 dir_SC_UTF8]# cp -r upload/ /usr/local/httpd/htdocs/bbs

修改許可權

[root@192 dir_SC_UTF8]# cd /usr/local/httpd/htdocs/bbs
[root@192 bbs]# chown -R daemon ./config
[root@192 bbs]# chown -R daemon ./data
[root@192 bbs]# chown -R daemon ./uc_client
[root@192 bbs]# chown -R daemon ./uc_server/data

安裝論壇

瀏覽器中輸入http://192.168.100.146/bbs/index.php

相關文章