阿里雲伺服器下 LAMP 環境配置 —— 基於 CentOS 6.3
—————————————————–
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 -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 =,要不要修改視情況吧,我沒有修改。