PHP5+MySQL 在Linux上的安裝步驟

edited 十月 2013 in PHP新手區
※提供給想在Linux上安裝PHP的新手參考※

大家好,小弟最近剛開始學PHP,因為vi用習慣了,所以想將PHP學習環境建置在Linux上,
但是參考網路上的相關安裝步驟後,安裝過程卻遇到了一些難解的問題,差一點想放棄...
還好最後克服萬難,完成了此項目標。僅將小弟的安裝步驟記錄於下,提供各位新手參考,
若發現有錯誤的地方,請大家不吝於提出指教,謝謝各位。

OS環境: Linux(RHEL 3.7 32bits 版本) => 因為該Linux版本有點舊,因此為了避免相容性的問題,全程使用tarball安裝。

所使用的相關軟體清單:

1.apache => httpd-2.2.13.tar.gz

2.mysql => mysql-5.1.37.tar.gz

3.libxml2(for php) => libxml2-2.7.3.tar

4.libmcrypt(for php) => libmcrypt-2.5.7.tar.gz

5.php => php-5.2.10.tar

6.phpmyadmin(管理mysql用) => phpMyAdmin-3.2.1-all-languages.tar.gz


安裝步驟:

一、先安裝apache

1)先停止舊的apache(如果有啟動的話)

例:
service httpd stop (每個OS的指令可能有些不同,請依實際狀況調整,這是RHEL通用的指令)
(另外可以使用:chkconfig httpd off ,讓舊版的apache不再於每次開機時啟動,避免新版本的apache無法啟動)

2)上傳apache的tarball型態source

cd /usr/local/src
(我習慣把自行安裝的軟體source放在這,所以之後的相關指令皆會切換到此目錄來進行軟體的解壓縮動作)
之後上傳source到此目錄

3)解壓縮檔案至/usr/local

例:
tar xzf httpd-2.2.13.tar.gz -C /usr/local
(-C:設定檔案要解壓縮到哪一個目錄下,沒加此參數的話,預設為現在所在目錄)

一般自行安裝的軟體皆會安裝到此目錄下,因此之後的安裝指令皆會以此目錄為目標
(安裝於其他目錄者請自行調整之後指令的相關參數)

4)切換到已解壓縮的軟體source目錄

以上面的路徑為例:
cd /usr/local/httpd-2.2.13

5)開始安裝:(建議先vi INSTALL檔,可以得到更詳盡的安裝步驟。如果看的懂的話...)

例:
./configure --prefix=/usr/local/apache --enable-module=so
(prefix:表示我要把該軟體安裝到哪一個路徑,我使用/usr/local/apache)
make
make install

安裝完畢(正常情況下)

6)測試啟動apache

例:
/usr/local/apache/bin/apachectl start

apache安裝測試ok


二、再安裝MySQL

1)我習慣先停止apache(不過我想MySQL不會受到apache是否有啟動的影響)

例:
/usr/local/apache/bin/apachectl stop

2)上傳mysql的tarball型態source

cd /usr/local/src
之後上傳source到此目錄

3)解壓縮檔案至/usr/local

例:
tar xzf mysql-5.1.37.tar.gz -C /usr/local

4)切換到已解壓縮的軟體source目錄

以上面的路徑為例:
cd /usr/local/mysql-5.1.37

5)新增使用者、群組 (For MySQL用)

groupadd mysql
useradd -g mysql mysql

6)開始安裝:(建議先vi INSTALL檔,可以得到更詳盡的安裝步驟。如果看的懂的話...)

./configure --prefix=/usr/local/mysql
make
make install
cp support-files/my-medium.cnf /etc/my.cnf
(把該設定檔複製到 /etc/目錄下)

7)變更目錄權限

cd /usr/local/mysql
chown -R mysql . (可以不做,因為之後會再將owner變更給root)
chgrp -R mysql .
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql var

8)啟動MySQL

bin/mysqld_safe --user=mysql &
(一般會加上;--user=mysql , 表示用Linux裡的mysql帳號來啟動MySQL,沒加似乎也可以,但因我以前沒碰過MySQL,所以不知道會有什麼影響...)

備註:讓MySQL於開機時自動啟動的方法

(一):
vi /etc/rc.d/rc.local
新增一行:
/usr/local/mysql/bin/mysqld_safe --user=mysql &

(二):
cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql
vi /etc/rc.d/rc.local
新增一行:
/etc/rc.d/init.d/mysql start

(其實上述兩種方式是一樣的意思,差別只在於說有些人喜歡用Linux上的 "service xxx軟體 start" 的方式來啟動daemon,
因此第二種方式可以滿足此需求。)

9)設定MySQL DB 的管理者密碼
(我有先用passwd mysql的指令幫mysql帳號設定密碼,不過該步驟是否為必要我就不確定了,希望有前輩指點一下,謝謝^_^)

因為MySQL軟體裡面的帳號,預設的密碼是空的,因此需先設定root的密碼,才能使用root帳號登入MySQL

/usr/local/mysql/bin/mysqladmin -u root password '密碼'
(記得密碼左右要加上單引號)

備註:

網路上某些教學文章還有下一行
/usr/local/mysql/bin/mysqladmin -u root -h localhost password '密碼'
但是我發現會有錯誤訊息=>
(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)),
造成之後用root帳號登入mysql時,
無法使用密碼登入,必須使用空密碼才能登入(即使用了其他方式更改MySQL裡root帳號的登入密碼後,還是只能用空白密碼),
而且原本那一行
/usr/local/mysql/bin/mysqladmin -u root password '密碼'
也變成會出現錯誤訊息(原本不會)
我當時的解決方式是重新安裝MySQL,然後只打第一行
/usr/local/mysql/bin/mysqladmin -u root password '密碼'
之後就可以使用該密碼登入並管理MySQL了
(可能是我太菜了,不知道加上localhost那一行的差別在哪,所以造成錯誤,希望有前輩指點一下,感謝"||)

10)測試登入MySQL

/usr/local/mysql/bin/mysql -u root -p
出現密碼輸入提示:
輸入剛剛設定的root密碼 => 登入成功

MySQL安裝並測試完成


三、再安裝php

1)先停止Apache (很重要,一定要做)

例:
/usr/local/apache/bin/apachectl stop

2)上傳php的tarball型態source

cd /usr/local/src
之後上傳source到此目錄

3)解壓縮檔案至/usr/local

例:
tar xzf php-5.2.10.tar -C /usr/local

4)切換到已解壓縮的軟體source目錄

以上面的路徑為例:
cd /usr/local/php-5.2.10

5)開始安裝:(建議先vi INSTALL檔,可以得到更詳盡的安裝步驟。如果看的懂的話...)

例:
/configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs
(--with-mysql;設定MySQL軟體所在的安裝路徑
--with-apxs2:設定apxs檔案的路徑,在apache安裝路徑下)

備註:若出現錯誤訊息 => configure: error: libxml2 version 2.6.11 or greater required.

則請先安裝libxml2 2.6.11版本以上,再將指令改成

./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs
--with-libxml-dir=/usr/local/libxml2

(--with-libxml-dir:表示您剛才安裝libxml2的目錄,若非/usr/local/libxml2,請視實際位置自行調整)

make
make install
\cp -f php.ini-dist /usr/local/lib/php.ini
(複製php的設定檔到對應位置)

echo "AddType application/x-httpd-php .php .phtml" >> /usr/local/apache/conf/httpd.conf
(讓apache伺服器可以辨識.php副檔名的網頁檔)

安裝完畢(正常情況下)

6)啟動apache

/usr/local/apache/bin/apachectl start

7)測試PHP網頁是否可使用

cd /usr/local/apache/htdocs/
vi index.php

輸入:
<?php
echo 'PHP測試成功';
?>

存檔

開瀏覽器,輸入
http://主機IP/index.php

如果成功顯示"'PHP測試成功",就大功告成囉!

四、安裝phpMyAdmin (網頁介面的MySQL管理軟體,視個人需要安裝,非必要,很適合MySQL新手)

1)上傳phpMyAdmin的tarball型態source

切換到網站的文件根目錄

例:
cd /usr/local/apache/htdocs

之後上傳source到此目錄,並解壓縮該檔案

例:
tar xzf phpMyAdmin-3.2.1-all-languages.tar.gz


2)變更目錄檔名

例:
mv phpMyAdmin-3.2.1-all-languages phpmyadmin
(目錄名稱可以自行決定,以上僅是範例)

並確認phpMyAdmin目錄下有index.php檔案

3)將phpMyAdmin目錄下的config.sample.inc.php複製為config.inc.php

例:
cp config.sample.inc.php config.inc.php

4)修改config.inc.php設定檔

先搜尋" blowfish "字串,並在單引號間填入Linux主機root帳號的密碼

例:
$cfg = '密碼'

5)測試phpMyAdmin是否可正常使用

http://主機IP/phpMyAdmin/index.php
(phpMyAdmin為您安裝phpMyAdmin的目錄,如果您剛才不是將目錄名稱變更為phpMyAdmin,則請依實際情況自行變更網址)

輸入root帳號、密碼

登入成功(正常的話)


[size=large]大功告成,祝各位新手學習愉快,謝謝^_^[/size]

[size=large]補充資料:[/size]

1.
phpMyAdmin 預設的登入驗證方式為cookie,root密碼就如同上述的,記錄在config.inc.php裡,為明碼的,
因此很危險,所以上述設定方式僅供測試用的主機使用,對外開放的正式主機千萬別這樣設,會出事的...
較安全的方式請參考網路上其他文章,對於phpMyAdmin 的設定方式有較詳盡的說明。

2.
當開啟phpMyAdmin 網頁時,或是登入phpMyAdmin 介面後,可能會發現一些錯誤訊息,
常見的有兩種,解法分述如下:

一、...無法讀取mcrypt...

解法:

1)下載libmcrypt tarball檔並安裝
2)重新安裝php(記得先停止apache), ./configure時加入 --with-mcrypt=剛剛安裝的libmcrypt目錄

例:
./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-libxml-dir=/usr/local/libxml2 --with-mcrypt=/usr/local/libmcrypt

二、...mbstring...

解法:

1)重新安裝php(記得先停止apache),./configure時加入 --enable-mbstring=all

例:
./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-libxml-dir=/usr/local/libxml2 --with-mcrypt=/usr/local/libmcrypt --enable-mbstring=all

3.
新手自學的話,小的是參考"PHP5/MySQL |程式設計樂活學|",
但是因為這本主要針對Windows環境來教學,因此小的補上了Linux環境的安裝方式,
個人是強烈推薦想在Windows上學習PHP+MySQL的人看這一本,寫的真的很適合初學者。
小的能解決安裝時的某些問題,很多概念也是來自於此書,因此新手想自學的,小的很推薦這一本。

4.
提供上述各項tarball source的下載來源供參考:

1)apache

http://www.apache.org/
=>download選項理會有source網址供連結

2)MySQL

銘傳大學ftp站
ftp.isu.edu.tw
source目錄:/MySQL/Downloads/MySQL-5.0

3)libxml2

ftp://xmlsoft.org/libxml2/

4)libmcrypt

ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/

5)PHP

http://www.php.net/downloads.php

6)phpmyadmin

http://www.phpmyadmin.net/home_page/downloads.php







原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=4453
Sign In or Register to comment.