Debian下安裝最新的phpMyAdmin

Debian下通過aptitude安裝的phpmyadmin版本為3.3.7,較舊,可以直接手動安裝3.5.5的最新版本。

1 安裝phpMyAdmin

如果已經通過aptitude安裝過phpmyadmin的話,通過以下命令卸載之:

sudo aptitude remove phpmyadmin

安裝:

wget http://jaist.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.5.5/phpMyAdmin-3.5.5-all-languages.tar.gz
tar zxvf phpMyAdmin-3.5.5-all-languages.tar.gz
cp -R phpMyAdmin-3.5.5-all-languages /var/www/example.com/phpmyadmin #將解壓縮後的文件包複製到網站的根目錄位置,根據實際情況更改
cd /var/www/example.com/phpmyadmin
cp libraries/config.default.php ./config.inc.php

2 激活鏈接表的附加功能

此時phpmyadmin已經可以使用的,但是登陸後會提示“鏈接表的附加功能尚未激活。要查出原因,請點擊此處”的提示,通過以下步驟修正:

2.1 新建一個名為phpmyadmin的數據庫

登陸phpmyadmin,點擊“數據庫”選項卡,看看有沒有一個名為phpmyadmin的數據庫,如果沒有,直接新建一個。也可以通過命令的方式新建:

sudo mysql -u root -p 
CREATE DATABASE `phpmyadmin`;

2.2 導入create_tables.sql

首先,從官網下載phpmyadmin的壓縮包,並解壓縮。

然後,登陸phpmyadmin,點擊“數據庫”選項卡,再點擊phpmyadmin數據庫,選擇導入,選擇壓縮包裡面examples目錄中的create_tables.sql文件,最後“執行”。

當然,也可以通過以下命令導入:

sudo mysql -u root -p 
use phpmyadmin
source /var/www/example.com/phpmyadmin/examples/create_tables.sql

2.3 編輯config.inc.php文件

vim /var/www/example.com/phpmyadmin/config.inc.php

找到這些參數

$cfg['Servers'][$i]['pmadb'] = '';
$cfg['Servers'][$i]['bookmarktable'] = '';
$cfg['Servers'][$i]['relation'] = '';
$cfg['Servers'][$i]['table_info'] = '';
$cfg['Servers'][$i]['table_coords'] = '';
$cfg['Servers'][$i]['pdf_pages'] = '';
$cfg['Servers'][$i]['column_info'] = '';
$cfg['Servers'][$i]['history'] = '';
$cfg['Servers'][$i]['designer_coords'] = '';
$cfg['Servers'][$i]['recent'] = '';
$cfg['Servers'][$i]['table_uiprefs'] = '';
$cfg['Servers'][$i]['tracking'] = '';
$cfg['Servers'][$i]['userconfig'] = '';

將其改成:

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';

以上參數非連續,不要複製粘貼,需逐條修改。

3 配置文件設置短密碼

編輯config.inc.php文件,找到$cfg[‘blowfish_secret’] = ”; 將其修改為

$cfg['blowfish_secret'] = 'abc'; # abc可以為任意值

本文參考了以下網頁:

[1] Wang Yan. Debian/Ubuntu 从源码编译安装 PHP 5. http://wangyan.org/blog/install-php-from-source.html

Debian下安裝最新版本nginx,php,mysql,phpmyadmin備忘

Linux菜鳥,服務器配置過程中遇到很多問題,參考了網上諸多教程,綜合成文,留之備忘。

服務器環境:Ramhost洛杉磯機房,debian-6.0.2.1-i386-netinst。

1 更新服務器源地址

Debian 6.0下直接通過apt-get安裝的nginx和php版本都比較舊,雖然服務器求穩不求新,但是初次配置,無歷史包袱,想直接上最新版本的軟件,通過添加Dotdeb源可以直接安裝最新的nginx 1.2.6和php 5.4。

將以下兩行添加至/etc/apt/sources.list

deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all

如果要安裝php 5.4的話還需要將以下兩行添加至源列表,可選,Debian的官方源安裝的是5.3,兩個版本在php配置過程中稍有不同,下文會詳細說明。網上有測試顯示5.4比5.3執行效率高了很多(參見:实例证明:PHP 5.4是否比PHP 5.3 快两倍)。因此決定安裝5.4,將下面兩行添加至源列表。

deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all

添加源後直接apt-get update會報錯,還需要匹配GnuPG key。執行以下兩條命令:

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | sudo apt-key add -

2 安裝nginx,php和mysql軟件包

添加完源之后,运行以下命令更新源并安装nginx,php和mysql软件包:

sudo aptitude update
sudo aptitude install nginx
sudo aptitude install php5 php5-fpm php5-mysql php5-gd php5-curl php5-mcrypt
sudo aptitude install mysql-server

安裝完軟件包之後就可以配置自己的網站服務了:

sudo mkdir -p /var/www/example.com/
cd /var/www/example.com/
echo "
<?php phpinfo(); ?>
" > ./index.php
sudo chown -R www-data:www-data /var/www

第4、5條命令是建立一個簡單的php網頁測試php是否配置成功,第6條命令很重要,將/var/www目錄的所有者和組添加到nginx的默認所有者和組www-data下,如果不這麼做運行wordpress之類的程序的時候會遇到不能自動更新、安裝插件之類的問題。當然,將example.com改成自己的,同時將域名的A紀錄指向服務器ip,並等待生效。

3 配置

創建一個Nginx的配置文件:

sudo touch /etc/nginx/sites-available/example.com

在編輯剛才創建的文件,插入以下代碼

server {
server_name example.com;
include /etc/nginx/php.conf;
root /var/www/example.com/;
location / {
root /var/www/example.com/;
access_log on;
} 
}

創建一個上面配置中的/etc/nginx/php.conf文件

sudo touch /etc/nginx/php.conf

這個文件是連接nginx和php-fpm的設置,也可以直接寫在剛才的網站配置文件中,如果需要配置多個網站的話,將其獨立出來比較方便,不用每個網站配置文件都去修改一下。將以下代碼加入剛才創建的php.conf文件中:

index index.php index.html index.htm;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO       $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_connect_timeout        60;
fastcgi_send_timeout          180;
fastcgi_read_timeout          180;
fastcgi_buffer_size          128k;
fastcgi_buffers            4 256k;
fastcgi_busy_buffers_size    256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors    on;
fastcgi_ignore_client_abort off;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}

這裡要說明一下,上面的配置是通過TCP SOCKETS連接nginx和php-fpm的,這在php 5.3下沒有問題,但是如果安裝了5.4,nginx會報502錯誤。如有,需要將其改成UNIX SOCKETS連接,將第18行替換為以下代碼實現UNIX SOCKETS連接。

fastcgi_pass unix:/var/run/php5-fpm.sock;

到這裡,服務器已經配置得差不多,激活配置文件並重啓相關服務:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo /etc/init.d/mysql restart
sudo /etc/init.d/php5-fpm restart
sudo /etc/init.d/nginx restart

如果DNS的A紀錄已經生效的話,那麼在瀏覽器中輸入http://example.com应该可以看到php的信息页面了。

4 安裝phpmyadmin

接下來安裝phpmyadmin:

sudo aptitude install phpmyadmin

安裝過程中會選擇apache還是lighttpd服務器,這裡用的是nginx,因此按esc取消,然後會要求輸入mysql數據庫的root密碼,輸入後確定,安裝成功後將phpmyadmin連接至剛才的網站目錄下:

sudo ln -s /usr/share/phpmyadmin/ /var/www/example.com

至此,nginx、php、mysql和phpmyadmin都安裝成功。

5 幾個小問題

5.1 安裝phpmyadmin第二步輸入root密碼的地方可能會報錯,不管,直接忽略,也不影響phpmyadmin的運行。

5.2 安裝phpmyadmin的過程中會安裝一些apache的依賴包,在服務器重啓後會發現nginx啟動失敗,原因是apache占用了80端口,運行以下命令可以取消apache的自動運行,這樣80口就不會被占用了。

sudo update-rc.d -f apache2 remove

文章綜合參考了以下網頁:

[1] Dotdeb.org. Instructions. http://www.dotdeb.org/instructions/
[2] Kevin Deldycke. Nginx + PHP-FPM + MySQL on a Debian Squeeze server. http://kevin.deldycke.com/2011/06/nginx-php-fpm-mysql-debian-squeeze-server/
[3] http://oliverdahlberg.se/nginx-php-5-4-502-bad-gateway/
[4] Cssor.com. ubuntu禁止apache开机自启动. http://cssor.com/ubuntu-disable-apache2-from-running-on-startup.html