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详细步骤

猜你喜欢

转载自blog.csdn.net/u013313909/article/details/81592694