LAMP

红荼發表於2024-06-27

LAMP配置與應用

配置

LAMP 架構的組成

LAM(M)P:

  • L:linux

  • A:apache (httpd)

  • M:mysql, mariadb

  • P:php, perl, python

應用 :

編譯實現LAMP

1.編譯安裝Apache http 服務

1環境準備

關閉防火牆,將安裝Apache所需軟體包傳入/opt目錄下

[root@localhost opt]# systemctl stop firewalld.service 
[root@localhost opt]# setenforce 0

2安裝環境依賴包

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

3下載解壓軟體包

下載安裝包到/opt/下:apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2
mysql-boost-5.7.20.tar.gz  php-7.1.10.tar.bz2
[root@localhost ~]# cd /opt/
[root@localhost lamp]# tar xf apr-1.6.2.tar.gz
[root@localhost lamp]# tar xf apr-util-1.6.0.tar.gz
[root@localhost lamp]# tar jvxf httpd-2.4.29.tar.bz2
[root@localhost lamp]# ls
apr-1.6.2         apr-util-1.6.0.tar.gz    httpd-2.4.29.tar.bz2
apr-1.6.2.tar.gz  Discuz_X2.5_SC_UTF8.zip  mysql-5.6.26.tar.gz
apr-util-1.6.0    httpd-2.4.29             php-5.6.11.tar.bz2

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

[root@localhost lamp]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost lamp]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@localhost lamp]# ls
apr-1.6.2.tar.gz         httpd-2.4.29          php-5.6.11.tar.bz2
apr-util-1.6.0.tar.gz    httpd-2.4.29.tar.bz2
Discuz_X2.5_SC_UTF8.zip  mysql-5.6.26.tar.gz
[root@localhost lamp]# cd httpd-2.4.29
[root@localhost】# ls


5編譯安裝

[root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
[root@localhost httpd-2.4.29]# make  -j2 && make install

6方便操作建立軟連線

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

7新增httpd系統服務

[root@localhost mysql-5.6.26]#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@localhost system]# systemctl start httpd.service 
Warning: httpd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
[root@localhost system]# systemctl daemon-reload
[root@localhost system]# systemctl start httpd.service 
[root@localhost system]# netstat -ntap |grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      121165/httpd        
   

2.編譯安裝 mysql

1.安裝依賴包新增mysql使用者

yum install -y ncurses-devel autoconf cmake

新建使用者

useradd -s /sbin/nologin  mysql

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

###上傳mysql-boost-5.7.20.tar.gz到opt目錄下###
cd /opt
tar xf mysql-boost-5.7.20.tar.gz
cd /opt/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 \					安裝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=boost \
-DWITH_SYSTEMD=1

3編譯安裝

make -j4 && make install

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

chown -R mysql:mysql /usr/local/mysql/

5 建立調整配置檔案

vi /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[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
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_QUOTES

6 修改配置檔案許可權

cd .. 		#cd到上檔案
chown mysql:mysql /etc/my.cnf

7 設定環境變數

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export 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

2.2.9 準備systemctl 配置檔案

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
netstat -anpt | grep 3306

2.2.10 修改資料庫密碼

mysqladmin -u root -p password "abc123" //剛開始沒密碼是空的直接回車,

image-20230822005700824

2.2.11 登入資料庫

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

3.編譯安裝 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


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

2前期準備 解壓

配置軟體模組
cd /opt
tar jxvf php-7.1.10.tar.bz2
cd /opt/php-7.1.10/

3 編譯安裝


./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壓縮格式

4 編譯

make -j2 && make install

5 修改配置檔案

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

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

6 最佳化操作

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

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

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的模組是否存在(可以用'/'在檔案中查詢 )

systemctl  restart  httpd

重啟服務

8驗證PHP 測試頁

rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php

<?php
phpinfo();
?>

systemctl restart httpd.service


9 驗證是否連線成功

http://192.168.91.100/index.php

4 安裝論壇

1 新建資料庫

mysql  -uroot   -pabc123
mysql> CREATE DATABASE bbs;  //建立一個資料庫//

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';   //把bbs資料庫裡面所有表的許可權授予給bbsuser,並設定密碼//


GRANT all ON blog.* TO 'bloguser'@'%' IDENTIFIED BY 'admin123';

mysql>flush privileges; //重新整理資料庫//

2準備論壇軟體 解壓

[root@localhost opt]# unzip /opt/Discuz_X2.5_SC_UTF8.zip 

3 複製到 apache 目錄下

cp -r upload/ /usr/local/httpd/htdocs/bbs

4修改許可權

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 安裝論壇

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

相關文章