1. 程式人生 > 其它 >MySQL、PHP的編譯安裝、論壇的安裝

MySQL、PHP的編譯安裝、論壇的安裝

一、編譯安裝MySQL服務

//1.將安裝mysql 所需軟體包傳到/opt目錄下
mysql-5.7.17.tar.gz
boost_1_59_0.tar.gz    //支援c++的執行庫
//2.安裝環境依賴包
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
//ncurses #字元終端下圖形互動功能的動態庫
//ncurses-devel #ncurses開發包
//bison #語法分析器
//cmake #mysql需要用cmake編譯安裝
//3.配置軟體模組
tar zxvf mysql-5.7.17.tar.gz
tar zxvf boost_1_59_0.tar.gz

cd /opt
mv boost_1_59_0 /usr/local/boost    //重新命名
 
cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   //指定mysql的安裝路徑
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \      //指定mysql程序監聽套接字檔案(資料庫連線檔案)的儲存路徑
-DSYSCONFDIR=/etc \     //指定配置檔案的儲存路徑
-DSYSTEMD_PID_DIR=/usr/local/mysql \      //指定程序檔案的儲存路徑
-DDEFAULT_CHARSET=utf8 \         //指定預設使用的字符集編碼,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \         //指定預設使用的字符集校對規則
-DWITH_EXTRA_CHARSETS=all \         //指定支援其他字符集編碼
-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=/usr/local/boost \             //指定boost的路徑,若使用mysql-boost整合包安裝則-DWITH_BOOST=boost
-DWITH_SYSTEMD=1          //生成便於systemctl管理的檔案
 
//儲存引擎選項:MYISAM,MERGE,MEMORY,和CSV引擎是預設編譯到伺服器中,並不需要明確地安裝。
//靜態編譯一個儲存引擎到伺服器,使用-DWITH_engine_STORAGE_ENGINE= 1
//可用的儲存引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
//注意:如果在CMAKE的過程中有報錯,當報錯解決後,需要把原始碼目錄中的CMakeCache.txt檔案刪除,然後再重新CMAKE,否則錯誤依舊。 //4.編譯及安裝 make && make install //5.建立mysql使用者 useradd -M -s /sbin/nologin mysql //6.修改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 //設定伺服器字符集編碼格式為utf8 pid-file = /usr/local/mysql/mysqld.pid //指定pid 程序檔案路徑 socket=/usr/local/mysql/mysql.sock //指定資料庫連線檔案 bind-address = 0.0.0.0 //設定監聽地址,0.0.0.0代表允許所有,如允許多個IP需空格隔開 skip-name-resolve //禁用DNS解析 max_connections=2048 //設定mysql的最大連線數 default-storage-engine=INNODB //指定預設儲存引擎 max_allowed_packet=16M //設定資料庫接收的資料包大小的最大值 server-id = 1 //指定服務ID號 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 //sql_mode //常用值如下:NO_ENGINE_SUBSTITUTION 如果需要的儲存引擎被禁用或未編譯,那麼丟擲錯誤。
//不設定此值時,用預設的儲存引擎替代,並丟擲一個異常 //STRICT_TRANS_TABLES //在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做限制 //NO_AUTO_CREATE_USER //禁止GRANT建立密碼為空的使用者 //NO_AUTO_VALUE_ON_ZERO //mysql中的自增長列可以從0開始。預設情況下自增長列是從1開始的,如果你插入值為0的資料會報錯 //NO_ZERO_IN_DATE //不允許日期和月份為零 //NO_ZERO_DATE //mysql資料庫不允許插入零日期,插入零日期會丟擲錯誤而不是警告 //ERROR_FOR_DIVISION_BY_ZERO //在INSERT或UPDATE過程中,如果資料被零除,則產生錯誤而非警告。預設情況下資料被零除時MySQL返回NULL //PIPES_AS_CONCAT //將"||"視為字串的連線操作符而非或運算子,這和Oracle資料庫是一樣的,也和字串的拼接函式Concat相類似 //ANSI_QUOTES //啟用ANSI_QUOTES後,不能用雙引號來引用字串,因為它被解釋為識別符 //7.更改mysql安裝目錄和配置檔案的屬主屬組 chown -R mysql:mysql /usr/local/mysql/ chown mysql:mysql /etc/my.cnf //8.設定路徑環境變數 echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile source /etc/profile //9.初始化資料庫 cd /usr/local/mysql/bin/ ./mysqld \ --initialize-insecure \ //生成初始化密碼為空 --user=mysql \ //指定管理使用者 --basedir=/usr/local/mysql \ //指定資料庫的安裝目錄 --datadir=/usr/local/mysql/data //指定資料庫檔案的儲存路徑 //10.新增mysqld系統服務 cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ //用於systemctl服務管理 systemctl daemon-reload //重新整理識別 systemctl start mysqld.service //開啟服務 systemctl enable mysqld //開機自啟動 netstat -anpt | grep 3306 //檢視埠 //11.修改mysql 的登入密碼 mysqladmin -u root -p password "abc123" //給root賬號設定密碼為abc123,提示輸入的是原始密碼(為空) //12.授權遠端登入 mysql -u root -p grant all privileges on *.* to 'root'@'%' identified by 'abc123'; //授予root使用者可以在所有終端遠端登入,使用的密碼是abc123,並對所有資料庫和所有表有操作許可權 show databases; //檢視當前已有的資料庫

二、編譯安裝PHP解析環境

//1.將安裝PHP 所需軟體包傳到/opt目錄下
php-7.1.10.tar.bz2
//2.安裝GD庫和GD庫關聯程式,用來處理和生成圖片
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
 
//3.配置軟體模組
cd /opt
tar jxvf php-7.1.10.tar.bz2
cd /opt/php-7.1.10/
./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 && make install
//5.複製模版檔案作為PHP 的主配置檔案,並進行修改
 
cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini
//在測試環境時使用php.ini-development檔案,而在生產環境時使用php.ini-production檔案
vim /usr/local/php7/php.ini
//--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
//--939行--取消註釋,修改
date.timezone = Asia/Shanghai
//6.優化把PHP 的可執行程式檔案放入路徑環境變數的目錄中便於系統識別
 
ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m     //檢視PHP 載入了哪些模組
//7.修改httpd 服務的配置檔案,讓apache支援PHP
 
vim /etc/httpd.conf
//--393行--插入以下內容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
//--255行--修改首頁檔名設定
DirectoryIndex index.html index.php
 
//---檢查支援php7的模組是否存在------
LoadModule php7_module modules/libphp7.so
//8.驗證PHP 測試頁
 
rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
 
systemctl restart httpd.service
 
//瀏覽器訪問
http://192.168.153.10

三、安裝論壇

//1.建立資料庫,並進行授權
mysql -u root -p
 
CREATE DATABASE bbs;
//建立一個數據庫
 
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
//把bbs資料庫裡面所有表的許可權授予給bbsuser,並設定密碼admin123
 
flush privileges;
//重新整理資料庫
 
show databases;     //檢視資料庫
 
//2.解壓論壇壓縮包
unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/dis
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/httpd/htdocs/bbs       //上傳站點更新包
 
//3.更改論壇目錄的屬主
ps aux      //檢視發現論壇程序的使用者名稱是daemon
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
 
 
//4.瀏覽器訪問驗證
//論壇頁面訪問
http://192.168.153.10

//資料庫伺服器:localhost ###本地架設就用localhost,如何不是在在本機上就要填寫IP地址和埠號
//資料庫名字:bbs
//資料庫使用者名稱:bbsuser
//資料庫密碼:admin123
//管理員賬號:admin
//管理員密碼:admin123

//論壇後臺管理員頁面
http://192.168.153.10/bbs/admin.php