1、LAMP架構概念php
2、LAMP結構的安裝與配置html
2-1 手工編譯安裝http服務mysql
2-2 手工編譯安裝mysql數據庫c++
2-3 手工編譯安裝PHP工具sql
3、安裝Discuz論壇(開源論壇)shell
4、小福利數據庫
LAMP是指一組一般一塊兒使用來運行動態網站或者服務器的自由軟件名稱首字母縮寫:apache
是目前最爲成熟的一-種企業網站應用模式,可提供動態Web站點應用及開發環境。vim
本次實驗所需的全部服務的源碼包均已上傳到網盤,各位可自行拷貝使用(都是開源軟件)瀏覽器
連接: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架構完成。腳本執行結束~~~~"