首先解說一下源碼包和rpm包的區別,雖然不是全面的的但是是絕對正確的。
源碼包mysql的安裝rpm包與源碼包的區別
1.linux運行效率,高很多功能模塊針對linux開發,在windos上並沒有標準化得編程接口,很多功能並不能實現,
並且mysql apache php最早也是在linux上開發的發展的,第三方軟件多
2.軟件的選擇 不一定最新當時要選最穩定的
rpm與源代碼
rpm是開發人員再開發完軟件後的生成的二進制包 類似exe文件 但是有侷限性 不能定製 針對cpu平臺 linux版本
源碼包呢發行的時候是以源代碼的形式發行 對軟件足夠了解 甚至能改源碼 可以更深度定製
-----------------------------------------------
論壇搭建過程源碼包安裝
源碼安裝過程
Mysql的源碼包安裝
tar -zxvf mysql-5.1.34.tar.gz -C /usr/local/src/
cd /usr/src/mysql-5.1.34
如果不存在mysql 用戶,則建立之
useradd mysql
編譯安裝
./configure --prefix=/usr/local/mysql --with-extra-charsets=all --with-innodb --with-plugins=partition
註解:
--with-extra-charsets=all:支持所有字符集
--with-innodb:支持innodb存儲引擎
--with-plugins=partition:支持分區
make && make install
數據庫的初始化:
cd /usr/local/mysql/bin
執行
./mysql_install_db
此命令是初始化腳本,爲Mysql運行做準備:來創建MySQL許可表。
此命令執行成功時會在/usr/local/mysql目錄下生成var目錄,如果執行失敗則有可能mysql用戶沒有創建,需要手工創建:useradd mysql,
再把系統的mysql卸載:rpm -e mysql。
cd /usr/local/
chown -R mysql: mysql mysql/
cd /usr/local/mysql/bin/
把my.cnf 改名字 (因爲新數據庫沒有任何文件的這是之前的文件)
mv /etc/my.cnf /etc/my.cnf.bak
rpm的創建庫的位置
cd /var/lib/mysql/
源碼包的創建庫的位置
cd /usr/local/mysql/var/
初始化數據庫更改權限
chown -R mysql:mysql /usr/local/mysql/var/
啓動mysql服務器.執行
cd /usr/local/mysql/bin/
./mysqld_safe --user=mysql &
查看進程
ps -ef | grep mysql
套節字文件是
進程和進程的連接
爲mysql數據庫添加密碼
默認的 mysql 已經存在一個root 用戶,密碼爲空
/usr/local/mysql/bin/mysqladmin password 123 創建密碼
/usr/local/mysql/bin/mysql -u root -p123 可以進入,用exit 退出 登錄的時候用的是/bin/mysql
將源碼mysql改成 正常啓動方式啓動 (把啓動腳本放到init.d裏)
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqldd 設啓動相的時候用的是share/mysql/mysql.server
chkconfig --add mysqldd
chkconfig --list mysqldd
chkconfig --levels 35 mysqld on
service mysqldd restart
客戶端命令
修改/etc/bashrc文件
PATH=/usr/local/mysql/bin:$PATH
export PATH
重新加載一次
. /etc/bashrc 有個空格注意了, 也可以 bash /etc/bashrc 寫
可以連接數據了
------------------------------------
apache源碼包安裝
tar -jxvf httpd-2.2.11.tar.bz2 -C /usr/local/src/
cd /usr/local/src/httpd-2.2.11/
./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
make && make install
cd /usr/local/apache2/htdocs/ 網頁路徑
lsof -i:80 查看80端口是否佔用
/usr/local/apache2/bin/apachectl start 啓動服務
cp bin/apachectl /etc/init.d/http 設置啓動
配置文件 可以配置信息
vim /usr/local/apache2/conf/ httpd.conf
命令歷史
history
--------------------------------------------
編譯php
tar -jxvf php-5.2.9.tar.bz2 -C /usr/local/src/
cd /usr/local/src/php-5.2.9/
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/hanqinet/mysql51/ --with-config-file-path=/usr/local/php
註解:
--with-apxs2=/usr/local/apache2/bin/apxs:用apache的apxs工具把php編譯成apache的一個模塊
--with-mysql=/usr/local/mysql:與mysql結合
編譯安裝
make && make install
複製文件
cp /usr/local/src/php-5.2.9/php.ini-dist /usr/local/php/php.ini 自己定義的名字
如果一切順利的話,apache2/modules/ 下應該有個libphp5.so 的文件
爲apache 添加php 支持
編輯
/usr/local/apache2/conf/httpd.conf
在310行增加一行
307 AddType application/x-compress .Z
308 AddType application/x-gzip .gz .tgz
309 AddType application/x-httpd-php .php
DirectoryIndex指令的最後,
添加
165 <IfModule dir_module>
166 DirectoryIndex index.html index.php
167 </IfModule>
測試Apache及php支持
cd /usr/local/apache2/htdocs/
touch a.php
vim a.php
<? phpinfo() ?>
pkill httpd 殺掉之前的httpd
service http restart 重啓服務
訪問
http://192.168.1.113/a.php
-----------------------------------------
服務器端
unzip UCenter_1.5.0_SC_UTF8.zip
mv upload/ /usr/local/apache2/htdocs/ucenter
chown -R daemon:daemon /usr/local/apache2/htdocs/ucenter
訪問
http://192.168.1.113/ucenter
-------------
論壇
unzip Discuz_7.2_SC_UTF8.zip
mv upload/ /usr/local/apache2/htdocs/discuz
chown -R daemon:daemon /usr/local/apache2/htdocs/discuz
第一次進入安裝進入這個路徑
http://192.168.1.113/discuz/install/
------------------------------------
最後 來點mysql的介紹 ,對mysql感興趣的朋友可以看看,這個我承認不是我寫的資料(mysql的介紹)。但是爲了讓大家更瞭解mysql
還是添加上了。
mysql的介紹 其他數據庫的介紹
mysql 是開源的,免費得,體積小,併發執行的數據庫。mysql一般應用已經足夠,在異常處理等方面還有待提升,一邊用於網站設計和小型軟件的。PHP+mysql 被譽爲完美結合。
SQL server 是Microsoft 的數據,上手容易,簡單,非常適合新手。一般用於.net 程序設計
oracle 是大型的數據庫,體積打。可以支持多個實例同時運行,功能非常強大。
mysql在linux能充分發揮它的威力 (免費 跨平臺 輕 支持多併發)
mysql是目前最主流的 跨平臺的 開源的 關係型數據庫軟件 最早是由瑞典的mysqlAB公司所開發
08年被sun公司所收購,09年sun被oracle收購
由於mysql的體積小 150M oracle 900M 速度快 總體成本低 (免費 oracle20萬一個核)尤其是源代碼開放這一特點 使他成了很多中小網站爲了降低網站總體成本而選擇的數據庫
優點
1.使用c和c++編寫 保證源代碼的可移植性
2.支持多種操作系統 linx,mac os,freeBSD,windos,aix。。。
3.爲多種語言提供了api,包括(C C++ java php 。。。)
4.支持多線程,充分利用cpu資源
5.支持tcp/ip,ODBC和JDBC等多種數據的連接途徑
6.可以處理擁有上千萬條記錄的大型數據
7.支持多種存儲引擎
缺點
相對於oracle DB2 SQLserver來講
規模小,功能有限(mysql cluster的功能和效率比較差)
存儲引擎
MyISAMMysql的默認數據庫,最爲常用。擁有較高的插入,查詢速度,但不支持事務
InnoDB事務型數據庫的首選引擎,支持ACID事務,支持行級鎖定
BDB源自Berkeley DB,事務型數據庫的另一種選擇,支持COMMIT和ROLLBACK等其他事務特性
Memory所有數據置於內存的存儲引擎,擁有極高的插入,更新和查詢效率。但是會佔用和數據量成正比的內存空間。並且其內容會在Mysql重新啓動時丟失
Merge將一定數量的MyISAM表聯合而成一個整體,在超大規模數據存儲時很有用
Archive非常適合存儲大量的獨立的,作爲歷史記錄的數據。因爲它們不經常被讀取。Archive擁有高效的插入速度,但其對查詢的支持相對較差
Cluster/NDB高冗餘的存儲引擎,用多臺數據機器聯合提供服務以提高整體性能和安全性。適合數據量大,安全和性能要求高的應用
CSV邏輯上由逗號分割數據的存儲引擎BlackHole黑洞引擎,寫入的任何數據都會消失,一般用於記錄binlog做複製的中繼
EXAMPLE存儲引擎是一個不做任何事情的存根引擎。它的目的是作爲MySQL源代碼中的一個例子,用來演示如何開始編寫一個新存儲引擎。
同樣,它的主要興趣是對開發者。EXAMPLE存儲引擎不支持編索引。
將selinux 和 iptables 關閉
selinux 是linux對文件和功能管理的服務