2015年9月26日 星期六

解決 Nginx 下 phpMyAdmin 登入沒反應的問題


為了更有效地開發服務器端的程式,特別是經常在外沒有連線能力的地方也能繼續,於是在 MacBook Pro 上安裝《VirtualBox》,建立 CentOS 6 + Nginx + MySQL + PHP + phpMyAdmin 的環境。

安裝方法很簡單,網上也有很多的教學。我選的是「CentOS-6.7-x86_64-minimal.iso」版本來安裝。完成 CentOS 6 安裝後,輸入以下指令:
  • ifup eth0
  • yum update
  • yum upgrade
    yum install nginx
  • yum -y install epel-release
  • vi /etc/sysconfig/iptables
    在 iptables 開通 Port 80 及 22:
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -m comment --comment "SFTP port" -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -m comment --comment "Apache WEB server port" -j ACCEPT
  • service iptables restart
  • yum -y install nginx
  • yum -y install mysql mysql-server
  • yum -y install phpmyadmin
  • yum -y install php php-fpm php-mysql php-cli php-gd php-mbstring php-mcrypt php-php-gettext apr-util-ldap mailcap
  • chkconfig --levels 235 mysqld on
  • chkconfig --levels 235 nginx on
  • chkconfig --levels 235 php-fpm on
  • vi /etc/phpMyAdmin/config.inc.php
    把「$cfg['Servers'][$i]['auth_type'] = 'cookie';」中的「cookie」改為「http」
  • service php-fpm start
  • service mysqld start
  • service nginx start

    最後發現登入不了 phpMyAdmin,原來是因為 /var/lib/php/session 的權限還是「apache」:
    [root@centos6 phpMyAdmin]# cd /var/lib/php
    [root@centos6 /]# cd /var/lib/php
    [root@centos6 php]# ls -al
    total 12
    drwxr-xr-x.  3 root root   4096 Sep 26 16:40 .
    drwxr-xr-x. 20 root root   4096 Sep 26 17:06 ..
    drwxrwx---.  2 root apache 4096 Jul 10 01:43 session
    [root@centos6 php]# chown nginx session/
    [root@centos6 php]# ls -al
    total 12
    drwxr-xr-x.  3 root  root   4096 Sep 26 16:40 .
    drwxr-xr-x. 20 root  root   4096 Sep 26 17:06 ..
    drwxrwx---.  2 nginx apache 4096 Sep 26 19:20 session
    [root@centos6 php]# 
    由於建立這個虛擬機的目的是在沒連網的情況下使用,因此網路卡必須設定為「Host-only Adapter」。
  • 沒有留言: