Ubuntu 配置Nginx+MySQL+PHP+phpMyAdmin詳細步驟

我在上篇配置了nginx以後,實現了html頁面的訪問,但是php頁面的訪問沒那麼簡單,還需要進行較多配置,折騰了一天,所以記錄下來,以備下次使用。

本篇默認已經配置好Nginx,沒有配置的,請看我這一篇博客進行學習:

https://blog.csdn.net/ypeij/article/details/81562663

一、修改nginx路徑

默認的nginx目錄是/usr/share/nginx/html,我們將其修改爲/var/www,可以根據個人習慣靈活更改。修改/etc/nginx/sites-available/default文件

root /usr/share/nginx/html;

更改爲

root /var/www

再將

index index.html index.htm;

更改爲

index index.html index.php index.htm;

重啓nginx

sudo service nginx restart

二、安裝PHP以及相關擴展

sudo apt-get install php5 php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-sqlite php5-xsl

執行上述指令安裝php及相關擴展,之前的版本比較低,現在可能源裏已經沒有那麼低的版本了,我去掉版本號列出所需安裝的擴展:

php php-cgi php-mysql php-curl php-gd php-idn php-pear php-imagick php-imap php-mcrypt php-memcache php-mhash php-ming php-pspell php-recode php-snmp php-tidy php-xmlrpc php-sqlite php-xsl

以上擴展安裝時需要結合當時版本號補全名字。

此時有的小夥伴想要測試運行PHP文件了,然而很悲劇地告訴你是不可以的,因爲你還沒有配置fastcgi,繼續往下看。

三、安裝mysql、phpmyadmi

執行如下命令,安裝MySQL服務端和客戶端。

sudo apt-get install mysql-server mysql-client

在安裝時可能提示你輸入root用戶的密碼,設置即可。

執行如下命令,安裝phpMyAdmin。

sudo apt-get install phpmyadmin

創建軟連接

sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin

上面我們創建了一個根目錄爲/var/www,鏈接名爲phpmyadmin的文件,指向/usr/share/phpmyadmin

三、安裝配置fastcgi

sudo apt-get install spawn-fcgi

修改 /etc/nginx/fastcgi_params文件,增加下面一行

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

修改/etc/php5/cgi/php.ini文件,將下面一行取消註釋

cgi.fix_pathinfo=1;

修改/etc/nginx/sites-available/default文件,我們之前修改的目錄地址是/var/www,這樣php-cgi方能正常使用SCRIPT_FILENAME這個變量

#location ~ \.php$ {
    #    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #    # With php5-cgi alone:
    #    fastcgi_pass 127.0.0.1:9000;
    #    # With php5-fpm:
    #    fastcgi_pass unix:/var/run/php5-fpm.sock;
    #    fastcgi_index index.php;
    #    include fastcgi_params;
    #}

修改爲

 

location ~ \.php$ {
    #    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #    # With php5-cgi alone:
        fastcgi_pass 127.0.0.1:9000;
    #    # With php5-fpm:
    #    fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
        include fastcgi_params;
    }

然後啓動fastcgi

sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid

參數含義如下:

* -f 指定調用FastCGI的進程的執行程序位置,根據系統上所裝的PHP的情況具體設置參數含義如下
* -a 綁定到地址addr
* -p 綁定到端口port
* -s 綁定到unix socket的路徑path
* -C 指定產生的FastCGI的進程數,默認爲5(僅用於PHP)
* -P指定產生的進程的PID文件路徑
* -u和-g FastCGI使用什麼身份(-u 用戶 -g 用戶組)運行,Ubuntu下可以使用www-data,其他的根據情況配置,如nobody、apache等現在可以在web根目錄下放個探針或php文件測試一下了
 

運行結果類似如下

spawn-fcgi: child spawned successfully: PID: 11775

設置fastcgi開機啓動,修改/etc/rc.local文件,添加下面一行

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

修改完之後,重啓nginx

sudo service nginx restart

四、測試運行

我們可以在/var/www目錄下新建index.php文件測試運行,發現已經可以運行PHP文件了。

index.php文件內容如下:

<?php phpinfo(); ?>

所有配置已經完畢,現在我們輸入服務器IP和服務器IP/phpmyadmin便可以輕鬆加愉快地訪問了。

轉載自:靜覓 » Ubuntu Linux配置Nginx+MySQL+PHP+phpMyAdmin詳細步驟

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章