阿里雲伺服器下 LAMP 環境配置 —— 基於 CentOS 6.3

 Posted on 2016年2月10日 by  學院君

1、Apache 配置

—————————————————–

vi /etc/httpd/conf/httpd.conf 編輯檔案

Options Indexes FollowSymLinks

在331行 修改為:Options Includes ExecCGI FollowSymLinks(允許伺服器執行CGI及SSI)

#AddHandler cgi-script .cgi

在796行 修改為:AddHandler cgi-script .cgi .pl (允許副檔名為.pl的CGI指令碼執行)

AllowOverride None

在338行 修改為:AllowOverride All (允許.htaccess)

AddDefaultCharset UTF-8

在759行 修改為:AddDefaultCharset GB2312 (新增GB2312為預設編碼)

Options Indexes MultiViews

找到這一行,將“Indexes”刪除 ,變為此狀態 Options MultiViews (不在瀏覽器上顯示樹狀目錄結構)

DirectoryIndex index.html index.html.var

在 402行 修改為:DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var  (設定預設首頁檔案,增加index.php)

KeepAlive Off

在76行 修改為:KeepAlive On (允許程式性聯機)

MaxKeepAliveRequests 100

在83行 修改為:MaxKeepAliveRequests 1000 (增加同時連線數)

:wq!  #儲存退出

/etc/init.d/httpd restart 重啟

DocumentRoot “/var/www/html”  修改為你的目錄   “/data0/www/xxxxxxxxx”  (這個目錄就是掛載的資料盤)

rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html    #刪除預設測試頁

Apache的日誌檔案
ErrorLog  /etc/httpd/logs/error_log   (php的錯誤日誌也輸出到這裡)
CustomLog  /etc/httpd/logs/access_log combined

2、PHP 配置

—————————————————–

vi  /etc/php.ini   #編輯

date.timezone = PRC     #在946行 把前面的分號去掉,改為date.timezone = PRC

magic_quotes_gpc = On   #在745行 開啟magic_quotes_gpc來防止SQL注入  (php5.4開始不支援magic_quotes_gpc(防SQL流入))

log_errors = On         #記錄錯誤日誌

:wq!  #儲存退出

/etc/init.d/httpd restart   #重啟Apche , php

3、掛載資料盤

—————————————————–

阿里雲伺服器的硬碟由兩塊組成,一塊是系統盤,一塊是資料盤,預設資料盤是沒有掛載的,如果要用到資料盤就需要自己手動掛載。

通過命令fdisk -l,可以看到裝置名為/dev/xvdb。

另外在掛載前要對硬碟(/dev/xvdb)分割槽和格式化。

分割槽使用命令fdisk,格式化命令為mkfs.ext3。

如何操作可以參照官方文件:Linux 系統掛載資料盤 。

資料盤最多可以掛4塊,掛在/data0,以後其它的可以掛在/data1,/data2,/data3

資料盤的作用,阿里雲伺服器控制檯提供“重置”功能,可選重置系統盤,還是資料盤,如何作業系統壞了,你可以只重置系統盤,保留網站資料在資料盤。

4、配置MySQL資料庫

設定初始密碼,建庫,建表,匯入資料

—————————————————–

請看這裡:MySQL備份與恢復,遠端訪問MySql伺服器

然後把mysql的資料檔案,移動到“資料盤”上,防止系統壞了重做系統時資料沒有了。

—————————————————–

我再移mysql的資料檔案後,使用mysql -u使用者名稱 -p  登入時,遇到了錯誤 :ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

主要是修改my.cnf檔案時有幾步與上文不一樣,這裡說明一下。操作方法如下 :

1)、停止mysql程序

2)、把/var/lib/mysql整個目錄移到/data0/db

mv /var/lib/mysql /home/data/

這樣就把MySQL的資料檔案移動到了/data0/db/mysql下

3)、修改my.cnf配置檔案

不要直接使用/etc/my.cnf配置檔案,請到/usr/share/mysql/下找到*.cnf檔案,拷貝其中一個(我是my-medium.cnf)到/etc/並改名為my.cnf)中。命令如下:

[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

4)、編輯MySQL的配置檔案/etc/my.cnf

為保證MySQL能夠正常工作,需要指明mysql.sock檔案的產生位置。

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
#socket = /var/lib/mysql/mysql.sock #註釋了
socket=/data0/db/mysql/mysql.sock #新加的內容
# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock #註釋了
datadir=/data0/db/mysql #新加的內容
socket=/data0/db/mysql/mysql.sock #新加的內容

5)、MySQL啟動指令碼/etc/rc.d/init.d/mysqld 不用做任何修改

6)、重新啟動MySQL服務

/etc/rc.d/init.d/mysqld start

如果工作正常移動就成功了,否則對照前面的7步再檢查一下。

移動完MySql之後,PHP連線不上Mysql資料庫了

—————————————————–

經過上面的的操作,把MySql的資料檔案移到其它目錄後,PHP連線不上MySql資料庫了,是因為找不mysql.sock檔案。

解決方法一:

建一個軟連線

cd /var/lib

mkdir mysql

ln -s  /data0/db/mysql/mysql.sock  /var/lib/mysql/mysql.sock

解決方案二:

修改/etc/php.ini檔案

找到  mysql.default_socket =   一行,這個值一開始是空的,php將會使用內建在mysql中的預設值。

修改為以下內容:

mysql.default_socket = /data0/db/mysql/mysql.sock

mysql.sock的檔案位置請跟據你的實際情況填寫。

還有一處mysqli.default_socket =,要不要修改視情況吧,我沒有修改。