CentOS 6 LAMP搭建,編譯安裝



搭建準備工作:


j_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gifj_0035.gif



真佩服我們做了這麼多準備,老天不會欺負這麼勤快的孩子的


開始上主菜了


1、安裝apr、apr-util

[root@localhost httpd]# tar -xf apr-1.5.2.tar.gz  
##解壓解壓
[root@localhost httpd]# tar -xf apr-util-1.5.4.tar.gz 
##解壓解壓

cd /tmp/httpd/apr-1.5.2
./configure --prefix=/usr/local/apr1.5      
##--prefix指定安裝位置
make && make install
##編譯,安裝                       



./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr1.5
##這個是apr的工具集,它依賴於上面的那個apr, 所以加上--with來指定我們安裝apr的目錄。
make && make install
##編譯,安裝


2、安裝openssl


[root@localhost httpd]# tar xf openssl-1.0.1u.tar.gz 
[root@localhost httpd]# cd openssl-1.0.1u
[root@localhost openssl-1.0.1u]# ./config --prefix=/usr/local/openssl1u -fPIC  
##-fPIC 經過多次測試,如果不加,在裝HTTPD2.4的時候,會出現報錯
[root@localhost openssl-1.0.1u]# make && make install



##導出庫文件,新建/etc/ld.so.conf.d/openssl1u.conf文件。    https會用到新版本的庫文件。
##添加/usr/local/openssl1u/lib

ldconfig

ldconfig是一個動態鏈接庫管理命令,爲了讓動態鏈接庫爲系統所共享,還需運行動態鏈接庫的管理命令--ldconfig。 ldconfig 命令的用途,主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態 鏈接庫(格式如前介紹,lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認爲 /etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表.
往/lib和/usr/lib裏面加東西,是不用修改/etc/ld.so.conf的,但是完了之後要調一下ldconfig,不然這個library會找不到

wKioL1hg7o-Sphv1AAAV9wYyKoo835.png





三、安裝httpd2.4 j_0061.gif

[root@localhost httpd]# tar xf httpd-2.4.25.tar.gz  

[root@localhost httpd]# cd httpd-2.4.25

[root@localhost httpd-2.4.25]#./configure --prefix=/usr/local/httpd2.4 --sysconfdir=/etc/httpd2.4 --enable-so --enable-ssl --enable-rewrite --enable-cgi --with-zlib --with-pcre --with-apr=/usr/local/apr1.5/ --with-apr-util=/usr/local/apr-util/ --with-ssl=/usr/local/openssl1u/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event
make && make install

--sysconfdir 配置文件目錄   
-enable-so 開啓DSO動態裝卸shared模塊   
--enable-ssl https的功能  
--enable-rewrite 地址重寫   
--enable-cgi CGI腳本功能  
--with-zlib 壓縮功能的函數庫   
--with-pcre  perl庫    剛纔安裝的軟件的目錄   
--enable-modules=most 編譯常用的模塊  
--enable-mpms-shared=all 所有的動態模塊  後面這個默認掛載MPM模塊event.






雜項
    (1)去httpd的安裝目錄看一下結果。  一切OK的話就可以下面的了。
    (2 ) 把httpd的頭文件符號鏈接到/usr/include      #不是必須的,怕以後有軟件會用。

[root@localhost httpd-2.4.25]# ln -s /usr/local/httpd2.4/include/ /usr/include/httpd2.4



     ( 3 ) 新建/etc/profile.d/httpd2.4.sh文件,添加進PATH變量。

vim /etc/profile.d/httpd2.4.sh 
export PATH=/usr/local/httpd2.4/bin:$PATH  
#寫入文件內容,執行一個source       
執行source命令:
source /etc/profile.d/httpd2.4.sh
##文件內容

echo $PATH

wKiom1hg9rjhDZ0xAAAm9P--Jyg906.png



  ( 4 )編輯/etc/httpd2.4/httpd.conf


[root@localhost httpd2.4]# grep rex /etc/httpd2.4/httpd.conf 

ServerName www.rex.com:80

##ServerName 把原本的#ServerName www.example.com:80改成自己想要的域名並刪掉#

[root@localhost httpd2.4]# /usr/local/httpd2.4/bin/apachectl start 

[root@localhost httpd2.4]# curl 127.0.0.1

<html><body><h1>It works!</h1></body></html>


j_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gifIt works!j_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gifj_0066.gif


(5) 來個服務腳本,可以用service來啓動關閉。
爲了避免麻煩,直接把原來的httpd的服務腳本複製一下,改吧改吧。


[root@localhost httpd2.4]# cp /etc/init.d/httpd /etc/init.d/httpd24

[root@localhost httpd2.4]# vim /etc/init.d/httpd24

##表示區別,我們服務名叫httpd24


41行開始

apachectl=/usr/local/httpd2.4/bin/apachectl
httpd=${HTTPD-/usr/local/httpd2.4/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd2.4/httpd2.4.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd2.4}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}


把原來的目錄改成我們編譯安裝後的目錄

pid待會要去創建

wKiom1hh01iSjWM4AAAphNnDWxg191.png


[root@localhost httpd2.4]# mkdir /var/run/httpd2.4

[root@localhost httpd2.4]# chmod 700 /var/run/httpd2.4

創建進程文件夾並修改權限

[root@localhost httpd2.4]# vim /etc/httpd2.4/httpd.conf
32行裏面加入: 
pidFile "/var/run/httpd2.4/httpd2.4.pid"


wKiom1hh1jTB7EzuAABwcAt3kjA233.png



圖上已經能這能正常使用service XXX start了

並且有對應的pid號


最後,我們再編譯個開機啓動


[root@localhost httpd2.4]# chkconfig --add httpd24

[root@localhost httpd2.4]# chkconfig httpd24 on

##httpd24開機自啓動

[root@localhost httpd2.4]# chkconfig --list httpd24 

httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off





Mariadb 


 wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.1.20/source/mariadb-10.1.20.tar.gz


官網下載Mariadb包,59M


yum -y install gcc gcc-c++ make cmake ncurses ncurses-devel libxml2 libxml2-devel openssl-devel bison bison-devel


yum安裝需要的包文件


不然待會安裝會報錯



wKioL1h0RzigXpvRAAAgIjwWgfI397.png

解壓,並進入目錄




然後我們執行以下指令對源碼包進行預處理:

cmake  \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql    \

-DMYSQL_DATADIR=/usr/local/mysql/data    \

-DSYSCONFDIR=/etc   \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci


配置中指定了安裝路徑、數據庫路徑、配置文件路徑等參數。等配置結束後可以使用 echo $? 查看返回值確定是否配置成功。我在編譯時便遇到了一個名爲 ncurses-devel 的依賴包沒有安裝,具體信息請閱讀錯誤提示。等我用yum源安裝好後發現無法繼續cmake了,只好刪除後重新解壓源碼包才配置成功的。好了 一切沒問題了就開始 make && make install 吧!

# make  &&  make  install



wKioL1h0Rzmyy7IGAACjOho9pVA032.png


wKioL1h0RzmCbeDFAABKCIrvjv8076.png


由於源碼包比較大,解壓後我統計了下,竟然291M,天啊這可得慢慢等待了。我花費了一個多小時才編譯完成的,也是夠慢了。

編譯安裝完成後會生成 /usr/local/mysql 這樣一個文件夾,如果選用了直接解壓二進制包,就把它解壓到 /usr/local 中。我們進入這個文件夾中看看

bin          這個目錄存放着mysql的服務器和客戶機程序,我們應該添加到環境變量

data        這個文件夾就是數據庫目錄

include        這裏存放着mysql開發用的函數頭文件,可以被其他源碼包編譯時依賴

lib        Mysql運行需要的運行庫

scripts         Mysql初始化數據庫的腳本,更改數據庫目錄後也需要進行初始化

man      Mysql是使用手冊,需要讓man命令識別這個路徑才能使用

support-files       其中存放着Mysql的配置文件模板和服務控制腳本等文件

Mysql的配置文件爲 /etc/my.cnf ,數據庫目錄爲 /usr/local/mysql/data


wKioL1h0SAbi1LaUAAAsQB5kx2o804.png



接下來就開始部署這些文件,然後讓Mysql啓動起來吧!首先建立mysql用戶和組,並不創建家目錄,不允許登陸系統

# useradd  -M  -s  /sbin/nologin  mysql

-M不創建家目錄

-s 知道使用shell

設置mysql安裝目錄的屬主和屬組 

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

給數據庫目錄可讀可寫的權限

# chmod  777  -R  /usr/local/mysql/data/

複製配置文件和服務控制腳本到相應位置

# cp /usr/local/mysql/support-files/my-huge.cnf   /etc/my.cnf

# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld


wKioL1h0Sqny9a38AAA4bMGibJs457.png

編輯配置文件/etc/my.cnf,添加:

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

wKioL1h0Stzhv0JDAABrTJcBIFo316.png

指定安裝目錄和數據庫目錄就可以了,其他參數先不用管。


接下來就可以初始化數據庫了

# cd  /usr/local/mysql

# scripts/mysql_install_db --user=mysql

所示就代表成功了,可以用 echo $? 查看返回值


wKiom1h0S4CTHbYvAACY1zbLaU4976.png

wKioL1h0S4DC5JIXAABUOaBDmDM478.png


現在就可以啓動Mysql數據庫服務了 它的啓動命令是 mysqld

# service  mysqld  start

然後出現大寫的 " SUCCESS "就代表啓動成功了,然後用netstat看看它監聽的端口吧!

# netstat  -anpt  |  grep  mysqld

我們發現它默認監聽在 TCP 的" 3306 "端口


環境變量配置下

# echo 'export PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysql.sh

# source  /etc/profile.d/mysql.sh

配置好後,可以在任意目錄下使用mysql命令,直接進到mysql shell界面


接下來就分析一下my.cnf這個配置文件的各參數意義

basedir             mysql的安裝目錄

datadir             數據庫目錄

port                 指定服務端口,默認3306 端口

server_id          pid文件路徑

socket              套接字

skip-locking                   可避免mysql的外部鎖定,降低系統出錯機率

skip-name-resolve         禁止mysql對外部連接進行DNS解析,可節約時間 

key_buffer_size              設置索引緩存區大小,合理調節這個數值可以獲得更好的索引處理性能,過度調大反而降低性能。參數沒有可以自己添加

sort_buffer_size              設置排序緩存區的大小 (每個連接獨佔)

read_buffer_size             設置查詢操作緩存區的大小 (每個連接獨佔)

join_buffer_size              設置聯合查詢操作緩存區的大小 (每個連接獨佔)

max_connections           設置服務器最大連接進程數


wKioL1h0TtKB3aNvAACJ5KBLr3k370.png



mysql的root用戶沒有密碼是非常不安全的,接下來我們爲它配置一個密碼。注意 要給root用戶添加密碼是需要啓動服務的,請確保你的Mysqld服務處於運行狀態

# mysqladmin  -u  root  password  "rex111"


這個mysqladmin是Mysql服務器的管理程序,可用於執行檢察配置文件、檢查服務狀態、關閉服務器、創建數據庫以及刪除數據庫等的系統管理操作。其格式如下:

mysqladmin    選項       參數  . . .

                       create     db_name           創建一個名爲db_name的新數據庫

                       debug                               將debug信息寫入錯誤日誌

                       drop       db_name           刪除一個名爲db_name的數據庫

                       extended-status              顯示服務器狀態變量和他們的值

                       flush-hosts                       刷新緩存中的所有信息

                       flush-logs                         刷新所有日誌信息

                       flush-privileges                重新載入授權表

                       flush-status                      清除狀態變量

                       flush-tables                      刷新所有的表

                       flush-threads                   刷新線程的緩存

                       ping                                  顯示服務器運行狀態

                       processlist                       正在運行服務器線程的列表

                       password   new_password     更改密碼

                       shutdown                         關閉服務器

                       start-slave                        在從服務器上啓動同步

                       stop-slave                        在從服務器上關閉同步

                        -u                 root             指定用戶

                        -h                 localhost     指定連接的主機

                        -p                                     指定需要輸入密碼




編譯安裝mariadb已經完成

剩下php覺得重新開一稿,不然大家看到都配置不下去了。


我們的辛苦獲得了回報。

給自己一個like~~j_0069.gifj_0069.gifj_0069.gifj_0069.gifj_0069.gifj_0069.gif



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章