2013-12-23

FAMP (FreeBSD + Apache + MySQL + PHP)

按照長輩的說法,
以 MySQL → Apache → PHP 的順序來安裝AMP比較不會有問題產生。


1. MySQL

# cd /usr/ports/databases/mysql56-server
# make WITH_CHARSET=utf8 WITH_XCHARSET=all \
  WITH_COLLATION=utf8_unicode_ci BUILD_OPTIMIZED=yes install clean
# echo mysql_enable=\"YES\" >> /etc/rc.conf
# cp /usr/local/share/mysql/my-default.cnf /usr/local/etc/my.cnf
# service mysql-server start
===>>> pkg-message for mysql-server-5.6.13
Remember to run mysql_upgrade the first time you start the MySQL server
after an upgrade from an earlier version.

接下來測試一下MySQL。

# mysql -u root -p
mysql> help
mysql> show databases;
mysql> quit

預設的root密碼是空密碼(按Enter就可以登入),所以記得要改root密碼。

# mysqladmin -u root password



2. Apache

# portmaster -yBD /usr/ports/www/apache24/
# echo apache24_enable=\"YES\" >> /etc/rc.conf

可以勾選SUEXEC選項,他可以讓每個虛擬主機以不同身分執行。
詳細請參考:Apache suEXEC
apr-1.4.8.1.5.2 的選項中,記得勾選 MYSQL

===>>> pkg-message for apache24-2.4.6
To run apache www server from startup, add apache24_enable="yes"
in your /etc/rc.conf. Extra options can be found in startup script.

Your hostname must be resolvable using at least 1 mechanism in
/etc/nsswitch typically DNS or /etc/hosts or apache might
have issues starting depending on the modules you are using.

安裝完後,apache的預設位置在 /usr/local/etc/apache24
主要設定檔是 httpd.conf ,其他的設定檔在 extra/*.conf
而網頁檔案的預設位置放在 /usr/local/www/apache24/data

Apache的設定檔可以參考:Apache httpd.conf。(之後有空再來寫)



3. PHP

# portmaster -yBD /usr/ports/lang/php55
# portmaster -yBD /usr/ports/lang/php55-extensions
# portmaster -yBD /usr/ports/www/mod_php55

記得勾選 APACHE 選項。
安裝完後,接著安裝PHP的擴充套件。
勾選自己需要裝的套件,記得一定要選 MYSQL、MYSQLI

(2014.04.10 update)
php5.5.10以後,
基於apache的module應該都要在www裡面的原則,
APACHE選項就不會附加在config設定裡了,
因此要另外安裝www/mod_php55

check /usr/ports/UPDATING
20140327:
    AFFECTS: users of lang/php5 and lang/php55 with Apache module
    AUTHOR: ale@FreeBSD.org

    The Apache PHP module has been separated from the main PHP port.
    If it is needed, install either www/mod_php5 or www/mod_php55.

最後要修改apache的http.conf,讓apache認得PHP,
修改完後重啟apache。

# vim /usr/local/etc/apache24/httpd.conf
LoadModule php5_module        libexec/apache24/libphp5.so
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
<IfModule mime_module>
    ...
    AddType application/x-httpd-php .php 
    AddType application/x-httpd-php-source .phps
    ...
</IfModule>
# service apache24 restart

接著可以來測試一下apache跟php有沒有安裝成功。

# cd /usr/local/www/apache24/data
# echo "<? phpinfo(); ?>" > index.php

打開瀏覽器,網址輸入: http://YOUR-IP/index.php
如果有順利跑出phpinfo的網頁,就代表安裝成功了。
(註: 預設會讀入index.html,所以網址要特別指定開啟哪個檔案。)



4. phpMyAdmin

最後可以安裝這套程式,
他可以方便我們用瀏覽器圖形化的直接管理MySQL。
一樣記得要勾選 MYSQL 選項,
取消勾選 APC
安裝時可能會出錯,而且似乎不再支援最新版的php5.5。
X11 不需要的話可以不用安裝,以加快安裝速度。

# portmaster -yBD /usr/ports/databases/phpmyadmin
phpMyAdmin-4.1.12 has been installed into:
    /usr/local/www/phpMyAdmin
Please edit config.inc.php to suit your needs.

To make phpMyAdmin available through your web site, I suggest
that you add something like the following to httpd.conf:

For Apache versions earlier than 2.4:

    Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"
    <Directory "/usr/local/www/phpMyAdmin/">
        Options none
        AllowOverride Limit        
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1 .example.com
    </Directory>

For Apache version 2.4.x or above:

    Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"
    <Directory "/usr/local/www/phpMyAdmin/">
        Options None
        AllowOverride Limit
        Require local
        Require host .example.com
    </Directory>

依照自己的需求,
去修改 config.inc.php ,以及 apache 的 httpd.conf。

一開始 config.inc.php 檔案裡是空的,
而phpMyAdmin會吃 libraries/config.default.php 裡設定的參數,
可以把要改的參數複製到 config.inc.php 裡,這個檔案裡的參數會覆寫預設的參數。
(筆者是直接把 config.sample.inc.php 裡面的內容直接拿來用。)

首次登入phpMyAdmin時,
使用root帳號登入,而預設是空密碼,直接按執行就可以登入。
但設定檔預設不能接受空密碼,因此要先改一下設定檔。

# vim config.inc.php
$cfg['Servers'][$i]['AllowNoPassword'] = true;

把這個選項改成 true 就可以用空密碼登入了。
之後設定完root密碼後,記得要再把這個選項改成false。

沒有留言:

張貼留言