您好,登錄后才能下訂單哦!
一、LAMP架構概念
二、LAMP結構的安裝與配置
2-1 手工編譯安裝http服務
2-2 手工編譯安裝mysql數據庫
2-3 手工編譯安裝PHP工具
三、安裝Discuz論壇(開源論壇)
四、小福利
LAMP是指一組通常一起使用來運行動態網站或者服務器的自由軟件名稱首字母縮寫:
是目前最為成熟的一-種企業網站應用模式,可提供動態Web站點應用及開發環境。
本次實驗所需的所有服務的源碼包均已上傳到網盤,各位可自行拷貝使用(都是開源軟件)
鏈接:https://pan.baidu.com/s/1H_k-1lXH4Pjkrsl2EN4CNA 提取碼:r0pi
使用mount.cifs
將整個軟件目錄掛載到Linux中或者直接將整個目錄拷貝進Linux均可。(本次實驗掛載點為/mnt/目錄)
安裝Apache服務
解壓Apache服務所需的三個軟件包
[root@localhost ~]#cd /mnt
[root@localhost mnt]# tar xf apr-1.6.2.tar.gz -C /opt //將壓縮包解壓到opt目錄下
[root@localhost mnt]# tar xf apr-util-1.6.0.tar.gz -C /opt
[root@localhost mnt]# tar xf httpd-2.4.29.tar.gz -C /opt
將apr、apr-util兩個插件移入httpd的指定位置
[root@localhost mnt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost mnt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
全部進行移動后,開始安裝所需的環境包(\為換行顯示)
[root@localhost mnt]# yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
其中,
gcc、gcc-c++:c語言和c++的編譯器
make:編譯工具
pcre、pcre-devel:pcre語言的開發、編譯器
expat-devel:使新建的網站能夠解析xml格式的文件
安裝結束后,移動到http軟件包內,對“configure”文件進行手工編譯(一定要進軟件包內!!)
[root@localhost mnt]# cd httpd-2.4.29
[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 && make install //編譯并進行安裝(需要等待一定時間)
其中:
--prefix:后面為自定義安裝的路徑
--enable-so :開啟核心模塊
--enable-rewrite :開啟重寫功能
--enable-charset-lite :開啟字符集支持
--enable-cgi:開啟通用網關接口(cgj為一種編碼格式)
完成后,開始添加啟動腳本,方便系統能夠更好的控制服務的開啟與關閉,并順手將httpd加入到SERVICE管理器中。
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
//添加啟動腳本
[root@localhost httpd-2.4.29]# chkconfig --add httpd //將httpd加入到SERVICE管理器
接著進入Apache服務的配置文件中,按照下圖進行修改
最后為便于管理我們可以將配置文件與啟動相關文件做軟鏈接(可以不加),關閉防火墻,并啟動Apache服務
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
[root@localhost httpd-2.4.29]# systemctl stop firewalld.service
[root@localhost httpd-2.4.29]# setenforce 0
[root@localhost httpd-2.4.29]# service httpd start
安裝Mysql數據庫
[root@localhost ~]# yum install -y ncurses-devel autoconf cmake //安轉環境包以及cmake編譯器
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# tar xzvf mysql-5.6.26.tar.gz -C /opt //對mysql源碼包進行解壓
對源碼包進行編譯(\為換行)
[root@localhost mnt]# cd /opt/mysql-5.6.26
[root@localhost mysql-5.6.26]# cmake \ //對源碼包進行編譯
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
[root@localhost mysql-5.6.26]# make && make install //編譯安裝
其中,
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql :指定數據庫安裝目錄
-DDEFAULT_CHARSET=utf8 :指定字符集
-DDEFAULT_COLLATION=utf8_general_ci :指定默認字符集
-DEXTRA_CHARSETS=all :指定擴展字符集
-DSYSCONFIDIR=/etc :指定配置文件目錄
-DMYSQL_DATADIR=/home/mysql/ :指定數據庫中數據文件存放位置
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock:定義sock文件
配置MySQL
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.6.26]# chmod 755 /etc/init.d/mysqld //授予執行權限
[root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld //將數據庫服務添加到管理器中
[root@localhost mysql-5.6.26]# chkconfig mysqld --level 35 on //開啟數據庫的3,5運行級別
[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile //啟用數據庫命令到系統環境變量
[root@localhost mysql-5.6.26]# source /etc/profile //啟用系統環境變量
[root@localhost mysql-5.6.26]# echo $PATH //查看系統環境變量
[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql //創建mysql程序用戶,禁止用于登錄
[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/ //給/usr/local/mysql/目錄下所有用戶提權
[root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql //初始化數據庫,并指定用戶數據信息到指定目錄
[root@localhost mysql-5.6.26]# vim /etc/init.d/mysqld //編輯數據庫配置文件
basedir=/usr/local/mysql //指定數據庫自身安裝路徑
datadir=/home/mysql //指定指定數據庫存放位置
開啟數據庫,并設置登錄密碼
[root@localhost mysql-5.6.26]# service mysqld start
[root@localhost mysql-5.6.26]# mysqladmin -u root -p password "123123" //給root賬號設置密碼
安裝環境包,并解壓源碼包
[root@localhost mysql-5.6.26]# cd /mnt/
[root@localhost mnt]# yum -y install \
gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel
[root@localhost mnt]# tar xjvf php-5.6.11.tar.bz2 -C /opt
其中,
gd :圖像化處理工具
libxml2-devel :支持解析,標簽性語言
libjpeg-devel:支持jpg圖片格式
編譯并安裝PHP工具
[root@localhost mnt]# cd /opt/php-5.6.11
[root@localhost php-5.6.11]# ./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring
[root@localhost php-5.6.11]# make && make install
[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini //對初始化文件進行覆蓋,注意路徑
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/ //建立PHP命令軟鏈接
[root@localhost php-5.6.11]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/
其中,
--prefix=/usr/local/php5 :指定PHP工具安裝路徑
--with-gd :gd庫,用于圖形化處理
--with-zlib :函數庫
--with-apxs2=/usr/local/httpd/bin/apxs :用于給apache提供功能性模塊
--with-mysql=/usr/local/mysql :關聯已安裝的數據庫
--with-config-file-path=/usr/local/php5 :關聯PHP配置
--enable-mbstring:將功能性模塊進行加載
修改apache配置文件,并建立PHP主頁
[root@localhost php-5.6.11]# vim /etc/httpd.conf
按G定位末行,添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
搜索DirectoryIndex,更改為
DirectoryIndex index.php index.html
wq保存退出
[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.php //PHP主頁
按i進行添加
<?php
phpinfo();
?>
wq保存退出
[root@localhost php-5.6.11]# service httpd restart //重啟httpd服務
驗證PHP網頁
在瀏覽器中輸入192.168.116.131/index.php
,能夠出現下面的網頁即視為成功
將論壇源碼解壓并放置到http站點中
[root@localhost php-5.6.11]# cd /mnt
[root@localhost mnt]# unzip Discuz_X2.5_SC_UTF8.zip -d /opt/Discuz
[root@localhost mnt]# cp -r /opt/Discuz/upload/ /usr/local/httpd/htdocs/bbs //放置于http站點中
建立bbs相關的數據庫,并進行管理員密碼的設置
[root@localhost mnt]# mysql -u root -p //進入MySQL數據庫,密碼為之前設定的
mysql> create database bbs; //在數據庫中創建名為bbs的子數據庫
mysql> GRANT all ON bbs.* TO 'zhy'@'%' IDENTIFIED BY '123123'; //對zhy用戶進行提權,并設定密碼為123123
mysql> flush privileges; //刷新數據庫
mysql> quit
[root@localhost mnt]# cd /usr/local/httpd/htdocs/bbs/ //進入bbs目錄
[root@localhost bbs]# chown -R daemon ./config/
[root@localhost bbs]# chown -R daemon ./data/
[root@localhost bbs]# chown -R daemon ./uc_client/data/cache/
[root@localhost bbs]# chown -R daemon ./uc_server/data/
//為各程序用戶提升權限
完成論壇的安裝
在瀏覽器中輸入192.168.116.131/bbs
,即可進入安裝流程
然后即可完成安裝。
能看到這里,有沒有覺得很煩?有沒有能一鍵進行全自動、免交互的安裝過程?
答案當然是有的!
#!/bin/bash
#一鍵自動構建LAMP架構(請使用source執行或者使用.命令執行)
#數據庫默認密碼為123123
#遠程掛載
df -hT | grep -o "cifs"
if [ $? -ne 0 ];then
echo "Start mount"
yum install expect -y
read -p "請輸入提供硬盤主機IP:" gongip
/usr/bin/expect <<-EOF
spawn mount.cifs //$gongip/LAMP-C7 /mnt/
expect {
"Password*"
{send "\r"}
}
expect eof
EOF
fi
#安裝apache服務
cd /mnt/
tar zxf apr-1.6.2.tar.gz -C /opt
tar zxf apr-util-1.6.0.tar.gz -C /opt/
tar jxf httpd-2.4.29.tar.bz2 -C /opt/
cd /opt/
mv apr-1.6.2/ httpd-2.4.29/srclib/apr
mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
yum -y install gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
cd /opt/httpd-2.4.29/
./configure --prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
make && make install
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
sed -i -e '2a# chkconfig: 35 85 21\n# description: Apache is a World Wide Web server' /etc/init.d/httpd
chkconfig --add httpd
sed -i -e '197d' -e '196aServerName www.kgc.com:80' /usr/local/httpd/conf/httpd.conf
ip=`ifconfig ens33 | awk 'NR==2{print $2}'`
sed -i -e '52s/^/#/' -e '51d' -e "50aListen $ip:80" /usr/local/httpd/conf/httpd.conf
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
systemctl stop firewalld.service
setenforce 0
service httpd start
netstat -ntuap | grep httpd
if [ $? -eq 0 ];then
echo Apache服務啟動
else
echo 啟動失敗
exit 1
fi
#安裝mysql服務
echo "================================="
echo "安裝mysql數據庫,請稍后。。。"
sleep 3
yum install -y ncurses-devel autoconf cmake
cd /mnt/
tar zxf mysql-5.6.26.tar.gz -C /opt/
cd /opt/mysql-5.6.26
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
echo "進行編譯安裝,要很久,請稍后。。。"
make && make install
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld
chkconfig --level 235 mysqld on
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
echo $PATH | grep -o "mysql"
if [ $? -eq 0 ];then
echo "添加成功"
else
echo "失敗"
exit 1
fi
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
sed -i -e '47d' -e '46d' -e '45abasedir=/usr/local/mysql\ndatadir=/home/mysql' /etc/init.d/mysqld
service mysqld start
netstat -ntuap | grep mysqld
if [ $? -eq 0 ];then
echo Mysql數據庫啟動
else
echo 啟動失敗
exit 1
fi
/usr/bin/expect <<EOF
spawn mysqladmin -u root -p password 123123
expect {
"Enter*"
{send "\r"}
}
expect eof
EOF
#安裝PHP工具
yum install -y gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel
cd ~
tar jxf /mnt/php-5.6.11.tar.bz2 -C /opt/
cd /opt/php-5.6.11
./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring
make && make install
cp -p php.ini-development /usr/local/php5/php.ini
ln -s /usr/local/php5/bin/* /usr/local/bin/
sed -i '393a AddType application/x-httpd-php .php\n AddType application/x-httpd-php-source .phps' /usr/local/httpd/conf/httpd.conf
sed -i -e '256d' -e '255aDirectoryIndex index.html index.php' /usr/local/httpd/conf/httpd.conf
cat > /usr/local/httpd/htdocs/index.php <<-EOF
<?php
phpinfo();
?>
EOF
service httpd stop
service httpd start
rm -rf /opt/*
umount /mnt
echo "LAMP架構完成。腳本執行結束~~~~"
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。