CentOS6.7原始碼搭建LAMP平臺

科技小能手發表於2017-11-12

 

LAMPLinux+ Apache+ MySQL+PHP的簡稱。使用原始碼安裝,由於php需要依賴apachemysql,所以php是最後安裝,而mysqlapache誰先安裝都可以。

 

安裝平臺:CentOS6.7 X86_64

MySql版本:mysql-5.6.27

MySql安裝目錄:/usr/local/mysql

MySql資料庫存放目錄:/data/mysql

MySql的使用者和組:mysql:mysql

MySql原始碼存放目錄:/usr/local/src

 

安裝前的準備:

1)、關閉selinux

         vim/etc/selinux/config

         SELINUX=enforcing     ###註釋

         SELINUX=disabled             ##增加

 :wq         #儲存退出,然後重啟系統,如果不重啟,可臨時關閉使用命令:setenforce 0

 

2)、新增好防火牆規則到/etc/sysconfig/iptables

[root@balichvm ~]# vim /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m tcp -p tcp–dport 3306 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 80 -j ACCEPT

 

:wq儲存退出,新增好規則後的防火牆規則如下:

# Firewall configuration written bysystem-config-firewall

# Manual customization of this file is notrecommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state –stateESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 22 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 3306 -j ACCEPT             #新增

-A INPUT -m state –state NEW -m tcp -p tcp–dport 80 -j ACCEPT              #新增

-A INPUT -j REJECT –reject-withicmp-host-prohibited

-A FORWARD -j REJECT –reject-withicmp-host-prohibited

COMMIT

 

1、安裝mysql

 

1)、下載mysql,這裡使用的是免編譯的安裝包,下載地址:

ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

這是mysql官網提供的一個映象站點。

 

首先進入/usr/local/src目錄,使用wget命令下載

[root@balichvm src]#

wget ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

 

2)、解壓下載的mysql安裝包,然後把解壓的檔案移動到/usr/local/mysql(移動重新命名)

[root@balichvm src]# tar zxvfmysql-5.6.27-linux-glibc2.5-x86_64.tar.gz         ##解壓

[root@balichvm src]# mvmysql-5.6.27-linux-glibc2.5-x86_64 /usr/local/mysql  ##移動並重新命名

 

3)、建立使用者mysql資料庫的使用者和使用者組mysql,並且這個使用者是無需登入系統。

[root@balichvm src]# groupadd mysql                    ##建立mysql

[root@balichvm src]# useradd -s/sbin/nologin -g mysql mysql ##建立mysql使用者,不允許登入

 

4)、建立用於存放mysql資料庫的目錄,並且把所有者和所屬組設定為mysql

[root@balichvm src]# mkdir -p /data/mysql               ##建立存放mysql資料庫的目錄

[root@balichvm src]# chown -R mysql:mysql/data/mysql/      ##修改屬主和陣列

 

5)、初始化資料庫,在mysql的安裝目錄下/usr/local/mysql

[root@balichvm src]# cd /usr/local/mysql/                  ##進入mysql安裝目錄

[root@balichvm mysql]#./scripts/mysql_install_db –user=mysql –datadir=/data/mysql/ ##初始化資料庫

 

–user=mysql              ##指定資料庫的所屬主

–datadir=/data/mysql/        ##指定資料庫的資料庫檔案的存放目錄

 

安裝過程中的錯誤:

Installing MySQL systemtables…./bin/mysqld: error while loading shared libraries: libaio.so.1:cannot open shared object file: No such file or directory

 

提示缺少了shared libraries: libaio.so,那就安裝不上,如下:

[root@balichvm mysql]# yum install libaio

然後繼續執行上面的安裝命令。

 

如果看到了兩個ok ,則表明mysql已經安裝成功了。

6)、拷貝配置檔案my.cnf

[root@balichvm mysql]# pwd

/usr/local/mysql

[root@balichvm mysql]# cpsupport-files/my-default.cnf /etc/my.cnf  ##拷貝配置檔案

cp:是否覆蓋“/etc/my.cnf” y

[root@balichvm mysql]#

 

 

7)、拷貝啟動指令碼並修改其屬主和陣列。

[root@balichvm mysql]# cpsupport-files/mysql.server /etc/init.d/mysqld     ##拷貝啟動檔案

[root@balichvm mysql]# chmod 755/etc/init.d/mysqld      ##修改許可權,增加執行許可權

 

8)、修改啟動指令碼/etc/init.d/mysqld,並把啟動指令碼加入到系統服務,設定開機啟動。

[root@balichvm mysql]# vim/etc/init.d/mysqld

找到:

basedir=

datadir=

修改為:

basedir=/usr/local/mysql                      ##mysql資料庫的安裝目錄

datadir=/data/mysql                          ##mysql資料庫的存放目錄

 

[root@balichvm mysql]# chkconfig –addmysqld         ##mysqld新增到系統服務

[root@balichvm mysql]# chkconfig mysqld on          ##設定為開機啟動

 

9)、啟動mysql資料庫

[root@balichvm mysql]# /etc/init.d/mysqldstart            ##啟動mysql資料庫

StartingMySQL……………………………………… SUCCESS!

 

為了驗證,我們可以使用psnetstat檢視啟動的程式和開啟的埠號。

[root@balichvm src]# ps aux |grepmysql|grep -v grep

root     3541  0.0  0.1 106192 1524 pts/2    S    12:38  0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe –datadir=/data/mysql–pid-file=/data/mysql/balichvm.org.pid

mysql    3656 19.1 44.7 1011064 452936 pts/2 Sl   12:38   0:45 /usr/local/mysql/bin/mysqld–basedir=/usr/local/mysql –datadir=/data/mysql–plugin-dir=/usr/local/mysql/lib/plugin –user=mysql–log-error=/data/mysql/balichvm.org.err–pid-file=/data/mysql/balichvm.org.pid

 

[root@balichvm src]# netstat -lnp |grepmysql|grep -v grep

tcp       0      0 :::3306                     :::*                        LISTEN      3656/mysqld        

unix 2      [ ACC ]     STREAM    LISTENING     32648  3656/mysqld         /tmp/mysql.sock

 

10)、將mysql的安裝目錄加入到環境變數,這是為了方便使用(如果不加,要登入mysql需要寫全路徑)

 

[root@balichvm mysql]# vim /etc/profile            #編輯環境變數配置檔案

export PATH=$PATH:/usr/local/mysql/bin               #在最後面新增

 

[root@balichvm mysql]# source /etc/profile        ##重新整理一次環境變數

 

11)、登入mysql、修改mysql密碼

登入mysql的方法可以使通過ip/埠或者是socket的方式登入。

ip/埠的方式:mysql –Hhostname–Pport –uuser –ppasswd

socket的方式:mysql –S socketdir–uuser –ppasswd

 

修改mysql的密碼:

[root@balichvm mysql]# mysqladmin -urootpassword `fgjh123.`    ##設定密碼為fgjh123.

 

mysql的完成安裝。

 

 

2、安裝Apache

 

Apache的版本:httpd-2.2.31

Apache的安裝目錄:/usr/local/apache22

 

1)、下載Apache軟體包,下載存放的目錄:/usr/local/src  然後解壓

[root@balichvm src]# wgethttp://www.us.apache.org/dist//httpd/httpd-2.2.31.tar.gz  ##下載

[root@balichvm src]# tar zxvfhttpd-2.2.31.tar.gz                 ##解壓

 

2)、建立Apache的安裝目錄/usr/local/apache22,並且配置編譯引數:

[root@balichvm httpd-2.2.31]# mkdir/usr/local/apache22

[root@balichvm src]# cd httpd-2.2.31

[root@balichvm httpd-2.2.31]# ./configure–prefix=/usr/local/apache22 –with-included-apr –enable-so–enable-deflate=shared –enable-expires=shared –enable-rewrite=shared–with-pcre

配置完成後,使用echo $? 檢查上一條命令是否有錯誤,沒有會返回0.  

[root@balichvm httpd-2.2.31]# echo $?           #這是檢視上一條命令是否有錯誤的。

1

這裡有錯誤提示:checking whether to enable mod_deflate… configure: error:mod_deflate has been requested but can not be built due to prerequisitefailures

那就重新安裝[root@balichvm httpd-2.2.31]# yum install zlib-devel

然後再次配置。

 

3)、編譯(make)和安裝(makeinstall

[root@balichvm httpd-2.2.31]# make &make install       ##編譯和安裝

 

4)、Apache服務的啟動、關閉、重啟。

Apache的啟動、關閉,重啟。Apache的服務控制指令碼存放在安裝目錄下:/usr/local/apache22/bin/apachectl 

要啟動Apache服務:/usr/local/apache22/bin/apachectl -k start

要停止Apache服務:/usr/local/apache22/bin/apachectl -k stop

要重啟Apache服務:/usr/local/apache22/bin/apachectl -k restart

 

5)、檢視Apache服務是否啟動,首頁是否正常開啟

[root@balichvm httpd-2.2.31]# netstat -lnp|grep -v grep|grep httpd

tcp       0      0 :::80                       :::*                        LISTEN      64605/httpd        

[root@balichvm httpd-2.2.31]# curl -Ilocalhost       ##使用curl命令測試開啟

HTTP/1.1 200 OK

Date: Thu, 29 Oct 2015 07:16:34 GMT

Server: Apache/2.2.31 (Unix)

Last-Modified: Sat, 20 Nov 2004 20:16:24GMT

ETag: “c481c-2c-3e9564c23b600”

Accept-Ranges: bytes

Content-Length: 44

Content-Type: text/html

[root@balichvm httpd-2.2.31]#

 

Apache安裝完成。

 

 

3、安裝PHP

php版本:php-5.4.45

php安裝目錄:/usr/local/php

 

1)、下載和解壓,如果是從php官網下載,速度很慢,可以從國內的映象站點,如搜狐:mirrors.sohu.com

[root@balichvm src]# wget http://mirrors.sohu.com/php/php-5.4.45.tar.bz2    ##下載php

[root@balichvm src]# tar jxvfphp-5.4.45.tar.bz2         ##解壓

 

2)、建立php安裝目錄:/usr/local/php;配置編譯引數:

[root@balichvm src]# mkdir /usr/local/php                    ##建立php安裝目錄

[root@balichvm src]# cd php-5.4.45

[root@balichvm php-5.4.45]# ./configure

–prefix=/usr/local/php

–with-apxs2=/usr/local/apache22/bin/apxs

–with-config-file-path=/usr/local/php/etc

–with-mysql=/usr/local/mysql

–with-libxml-dir

–with-gd

–with-jpeg-dir

–with-freetype-dir

–with-iconv-dir

–with-zlib-dir

–with-bz2

–with-openssl

–enable-soap

–enable-gd-native-ttf

–enable-mbstring

–enable-sockets

–enable-exif

–with-curl

–enable-json

–disable-ipv6

 

使用$?檢查是否有錯誤,如果沒有就執行編譯和安裝。如有錯誤,基本都是確實了相關的開發庫支援,只需要安裝提示的錯誤補上即可。

 

最後有:Thank you for using PHP. 的提示。

 

3)、編譯(make)和安裝(makeinstall

 

[root@balichvm php-5.4.45]# make &&make install              ##編譯和安裝

 

4)、拷貝php.ini配置檔案到/usr/local/php/etc/目錄下

[root@balichvm php-5.4.45]# cpphp.ini-production /usr/local/php/etc/php.ini ##拷貝配置檔案

 

使用/usr/local/php/bin/php -i |head 的相關資訊,其實這是phpinfo函式檢視的一樣的。

[root@balichvm php-5.4.45]#/usr/local/php/bin/php -i |head

phpinfo()

PHP Version => 5.4.45

 

System => Linux balichvm.org2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64

Build Date => Oct 29 2015 17:42:38

Configure Command =>  `./configure` `–prefix=/usr/local/php` `–with-apxs2=/usr/local/apache22/bin/apxs“–with-config-file-path=/usr/local/php/etc` `–with-mysql=/usr/local/mysql“–with-libxml-dir` `–with-gd` `–with-jpeg-dir` `–with-freetype-dir“–with-iconv-dir` `–with-zlib-dir` `–with-bz2` `–with-openssl“–enable-soap` `–enable-gd-native-ttf` `–enable-mbstring` `–enable-sockets“–enable-exif` `–disable-ipv6` `–with-curl` `–enable-json`

Server API => Command Line Interface

Virtual Directory Support => disabled

Configuration File (php.ini) Path =>/usr/local/php/etc

Loaded Configuration File => (none)

 

mysqlapachephp、都安裝了,需要將他們結合起來共同工作。

 

4、配置ApachePHP組合

Mysqld 的主配置檔案:/etc/my.cnf

Apache的主配置檔案:/usr/local/apache22/conf/httpd.conf

Apache的預設網站根目錄:/usr/local/apache22/htdocs/

php的主配置檔案:/usr/local/php/etc/php.ini   

 

1)、修改Apache的主配置檔案

[root@balichvm ~]# vim/usr/local/apache22/conf/httpd.conf

 

找到:AddType application/x-gzip .gz .tgz

 

在下一行增加內容:AddType application/x-httpd-php .php

 

找到:

<IfModule dir_module>

   DirectoryIndex index.html

</IfModule>

 

修改為:

<IfModule dir_module>

   DirectoryIndex index.html index.htm index.php

</IfModule>

 

:wq 儲存退出。

 

2)、編寫用於測試php的程式,比如phpinfo(),這檔案放在Apache的預設網站的根目錄下。

[root@balichvm ~]# vim/usr/local/apache22/htdocs/info.php

 

<?php

       phpinfo();

?>

:wq 儲存,退出。

 

3)、檢查Apache的配置檔案是否有錯,然後重啟Apache服務。

[root@balichvm ~]#/usr/local/apache22/bin/apachectl –t    ##檢查配置檔案是否正確

httpd: Could not reliably determine theserver`s fully qualified domain name, using balichvm.org for ServerName

Syntax OK                          ##配置檔案沒有問題。

[root@balichvm ~]#

 

這裡有一個警告,如果不想它出現,可以修改Apache的主配置檔案裡面的ServerName

找到:

#ServerName www.example.com:80

 

這裡有#號,預設是註釋,那就在下面新增如下:

ServerName localhost:80

 

:wq,儲存退出。

在此檢查,就會正常了。

[root@balichvm ~]# /usr/local/apache22/bin/apachectl-t

Syntax OK

[root@balichvm ~]#/usr/local/apache22/bin/apachectl restart        ##重啟Apache服務

 

在瀏覽器上輸入http://serverip/info.php serverip是伺服器的ip地址)可以看到php的配置資訊。



本文轉自 巴利奇 51CTO部落格,原文連結:http://blog.51cto.com/balich/1707864


相關文章