Ubuntu+Nginx+Mysql+Php[2012/12/18 ]

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
头像
zhcj
帖子: 363
注册时间: 2008-09-06 5:11
来自: 石家庄
送出感谢: 1 次
接收感谢: 8 次
联系:

Ubuntu+Nginx+Mysql+Php[2012/12/18 ]

#1

帖子 zhcj » 2009-11-13 19:44

[2012/12/18]
由于最新的php集成了fpm,ubuntu12.04及以上版本安装更简单了,安装过程如下:
1、安装网站系统

代码: 全选

sudo apt-get install nginx php5-common php5-fpm php-apc php5-mysql php5-gd mysql-server
2、修改nginx配置文件

代码: 全选

sudo vi /etc/nginx/sites-enabled/default
把其中的:

代码: 全选

        location / {
                root   /var/www;
                index  index.html index.htm;
        }
改为:

代码: 全选

        location / {
                root   /var/www/nginx-default;
                index  index.php index.html index.htm;
        }
其中的:

代码: 全选

	#location ~ \.php$ {
	#	fastcgi_pass 127.0.0.1:9000;
	#	fastcgi_index index.php;
	#	include fastcgi_params;
	#}
改为:

代码: 全选

        location ~ \.php$ {
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
                include  fastcgi_params;
        }
3、重启系统、上传文件,网站建立成功!试试吧!

附:系统及部分软件管理操作
1、操作系统:

代码: 全选

sudo reboot now //重启系统
sudo halt //关闭系统
2、nginx配置修改及生效:

代码: 全选

sudo vi /etc/nginx/nginx.conf //修改配置
sudo vi /etc/nginx/sites-enabled/default //修改配置
sudo service nginx restart //重启nginx
3、php配置修改及生效:

代码: 全选

sudo vi /etc/php5/fpm/php.ini //修改配置
sudo service php5-fpm restart //重启fastcgi进程
3、网站目录:

代码: 全选

/var/www/nginx-default
以下内容为旧内容,多数已经过时,参考一下就行了。




本文pdf版下载: 更新:
[2011/03/19]
添加10.04的php5-fpm的源。
[2011/01/20]
再次添加nginx的源。
[2011/01/19]
1、将原来的php的fcgi-spawn方式改为php5-fpm方式;
2、重新编辑安装过程,大大减少了安装步骤。
[2011/01/13]
增加支持php5.3的ZendGuard。
[2010/12/29]
添加maverick(10.10)的官方源。
[2010/12/09]
删除nginx的ppa源。
[2010/11/07]
1、再次修正nginx的ppa源;
2、添加解决Discuz7.2后台启动URL静态化后提示 404 Not Found 的方法。
[2010/10/06]
1、添加nginx的ppa源(原来不是不能用了,而是地址变了)。
[2010/09/20]
1、nginx配置文件增加:include /etc/nginx/mime.types;
2、去掉nginx的ppa源,已不能用。
[2010/06/07]
1、修正nginx源的错误;
2、修改eaccelerator解压方式、eaccelerator版本更新。
[2010/05/28]
1、添加修复nginx+php重大漏洞的方法(修改php.ini文件);
2、nginx二级目录自动添加斜杠(修改nginx.conf文件)。
[2010/05/18]
添加部分系统及服务的修改及生效命令。
[2010/05/16]
1、替换zend optimizer为eaccelerator,因为前者不支持php5.3;
2、添加最新版nginx的源;
3、又稍微简化了一下安装过程[未重新安装测试];
4、附上部分配置文件、管理入口、系统和服务重启命令等。
[2010/05/10]简化phpmyadmin安装,直接在源里安装。

衷心感谢以下提出的建议和意见的朋友:
黄大少 、 2xy、Jarson 、neowing、 yuxiao、Helleon、ikcihc、skywing 、conanca、CyrixIII。

另外特别感谢:2xy
PS:这篇帖子在大家的共同探讨中不断完善和改进,楼主是否适当提及下相关人员呢。让大家共同养成良好的开源精神和习惯。
不好意思,这段时间特别忙,还有一段时间我的学生就要高考了,等高考完了我会好好学习学习这方面的东西,希望能和大家共同探讨提高,把这篇文章写的更完善、实用。

把我架设lnmp网站的过程写出来,希望对想架设网站的朋友有所帮助,如有更好的办法请提出来。
之所以用nginx没用apache,是因为nginx的效率更高一些,尤其是对一些低配置的服务器,比如我在单位256M内存的旧机器上架设的服务器。
1、安装ubuntu server 10.04或10.10,其中安装语言选的en,时区shanghai,服务只安装ssh,其他全部用默认就行。
提示:以上安装过程完成后,建议用其他计算机登录服务器,windows系统可以用putty,linux系统直接在终端用命令就可以:

代码: 全选

ssh 登录名@服务器ip
因为以下过程得输入大量命令和代码,在客户机上直接粘贴即可(在windows下的putty中单击右键即可把剪贴板中的内容粘贴到终端)。
2、添加源:

代码: 全选

sudo vi /etc/apt/sources.list
lucid(10.04)的源添加如下:

代码: 全选

deb http://archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ lucid-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ lucid-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
deb http://ppa.launchpad.net/nginx/stable/ubuntu lucid main
deb http://ppa.launchpad.net/brianmercer/php/ubuntu lucid main
maverick(10.10)的源:

代码: 全选

deb http://archive.ubuntu.com/ubuntu/ maverick main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ maverick-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ maverick-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ maverick main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ maverick-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ maverick-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse
deb http://ppa.launchpad.net/nginx/stable/ubuntu maverick main
最后一行为nginx的ppa源,需要添加key,在终端运行:

代码: 全选

sudo apt-key adv --keyserver keyserver.Ubuntu.com --recv-keys C300EE8C
3、更新

代码: 全选

sudo apt-get update
4、安装网站系统

代码: 全选

sudo apt-get install nginx php5-common php5-dev php5-cgi php5-fpm php-apc php5-mysql php5-curl php5-gd php5-idn php-pear php5-mcrypt php5-memcache php5-ming php5-recode php5-tidy php5-xmlrpc php5-xsl mysql-server
上面为必选安装,以下php组件为可选安装,一般网站程序可能用不着:

代码: 全选

sudo apt-get install php5-imagick php5-imap php5-recode php5-snmp php5-sqlite php5-xmlrpc php5-suhosin php5-odbc php5-ladp
5、修改nginx配置文件

代码: 全选

sudo vi /etc/nginx/sites-enabled/default
把其中的:

代码: 全选

        location / {
                root   /var/www;
                index  index.html index.htm;
        }
改为:

代码: 全选

        location / {
                root   /var/www/nginx-default;
                index  index.php index.html index.htm;
        }
其中的:

代码: 全选

	#location ~ \.php$ {
	#	fastcgi_pass 127.0.0.1:9000;
	#	fastcgi_index index.php;
	#	include fastcgi_params;
	#}
改为:

代码: 全选

        location ~ \.php$ {
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
                include  fastcgi_params;
        }
6、更改网站目录权属:

代码: 全选

sudo chown -R ubuntu nginx-default/
注:其中的ubuntu为系统登录用户名。
7、安装ZendGuardLoader及eaccelerator:

代码: 全选

sudo mkdir /usr/zend
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator
wget http://phpcj.googlecode.com/files/ZendGuardLoader.so
sudo mv ZendGuardLoader.so /usr/zend/ZendGuardLoader.so
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
tar xvjf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
cp control.php /var/www/nginx-default/control.php //复制控制程序到网站目录,通过http://网站名/control.php访问,默认帐号为admin,密码为eAccelertor,可编辑此文件修改。
phpize 
sudo ./configure --enable-eaccelerator=shared
sudo make 
sudo make install
sudo vi /etc/php5/fpm/php.ini
在配置文件最后加上:

代码: 全选

zend_extension=/usr/zend/ZendGuardLoader.so
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="/usr/lib/php5/20090626+lfs/eaccelerator.so" 
eaccelerator.shm_size="16" 
eaccelerator.cache_dir="/tmp/eaccelerator" 
eaccelerator.enable="1" 
eaccelerator.optimizer="1" 
eaccelerator.check_mtime="1" 
eaccelerator.debug="0" 
eaccelerator.filter="" 
eaccelerator.shm_max="0" 
eaccelerator.shm_ttl="0" 
eaccelerator.shm_prune_period="0" 
eaccelerator.shm_only="0" 
eaccelerator.compress="1" 
eaccelerator.compress_level="9" 
eaccelerator.allowed_admin_path="/var/www/nginx-default/control.php"
8、(可选步骤)安装phpmyadmin:

代码: 全选

wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.9/phpMyAdmin-3.3.9-all-languages.tar.bz2
tar xvjf phpMyAdmin-3.3.9-all-languages.tar.bz2
mv phpMyAdmin-3.3.9-all-languages /var/www/nginx-default/phpmyadmin
cd /var/www/nginx-default/phpmyadmin
cp config.sample.inc.php config.inc.php
vi config.inc.php
将其中的:

代码: 全选

$cfg['blowfish_secret'] = '';
改为:

代码: 全选

$cfg['blowfish_secret'] = 'web';
下面的:

代码: 全选

// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
// $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]['tracking'] = 'pma_tracking';
// $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
将//全部删除,然后将其中的:

代码: 全选

$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
pma和pmapass改为你的mysql用户名和密码,最后登录phpmyadmin,将phpmyadmin/scripts目录中的creat_tables.sql文件导入mysql。
9、重启系统、上传文件,网站建立成功!试试吧!
文件上传建议用filezilla(http://filezilla-project.org/),免费的开源ftp软件,windows和linux都可以用,支持ssh的22端口。

附:系统及部分软件管理操作
1、操作系统:

代码: 全选

sudo reboot now //重启系统
sudo halt //关闭系统
2、nginx配置修改及生效:

代码: 全选

sudo vi /etc/nginx/nginx.conf //修改配置
sudo vi /etc/nginx/sites-enabled/default //修改配置
sudo service nginx restart //重启nginx
3、php配置修改及生效:

代码: 全选

sudo vi /etc/php5/fpm/php.ini //修改配置
sudo service php5-fpm restart //重启fastcgi进程
3、网站目录:

代码: 全选

/var/www/nginx-default
4、eaccelerator管理:

代码: 全选

http://你的网站/control.php
5、修复nginx+php出现的重大漏洞、修改上传文件大小(可以看你自己的情况)

代码: 全选

sudo vi /etc/php5/fpm/php.ini
cgi.fix_pathinfo = 0 //修复漏洞
upload_max_filesize = 2M改为5M //修改上传文件大小
6、设定防火墙

代码: 全选

sudo ufw enable
sudo ufw default deny
sudo ufw allow 80
sudo ufw allow 22
7、启动php5-fpm时,出现:

代码: 全选

PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/fpm/conf.d/ming.ini on line 1 in Unknown on line 0
[WARNING] [pool www] pm.start_servers is not set. It's been set to 20.
的提示,第一行的原因是在配置文件中已用;代替#来进行注释。修改以下文件:

代码: 全选

vi /etc/php5/fpm/conf.d/ming.ini
将#改为;即可。
第二行原因是/etc/php5/fpm/pool.d/www.conf配置文件中的

代码: 全选

;pm.start_servers = 20
去掉前面的;即可。
8、Discuz后台启动 URL静态化,会提示 404 Not Found的解决办法:
在niginx中开启Rewrite,在服务器配置文件nignx.conf中写入以下内容,然后重启nginx。

代码: 全选

rewrite ^/archiver/((fid|tid)-[w-]+.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+).html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
rewrite ^/space-(username|uid)-(.+).html$ /space.php?$1=$2 last;
rewrite ^/tag-(.+).html$ /tag.php?name=$1 last;
break;
以下内容来自:http://www.vpsee.com/2011/04/some-nginx ... rectories/,未测试。
Discuz! 7.2 安装在子目录 /bbs 下:

代码: 全选

    rewrite ^/bbs/archiver/((fid|tid)-[\w\-]+\.html)$ /bbs/archiver/index.php?$1 last;
    rewrite ^/bbs/forum-([0-9]+)-([0-9]+)\.html$ /bbs/forumdisplay.php?fid=$1&page=$2 last;
    rewrite ^/bbs/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /bbs/viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    rewrite ^/bbs/space-(username|uid)-(.+)\.html$ /bbs/space.php?$1=$2 last;
    rewrite ^/bbs/tag-(.+)\.html$ /bbs/tag.php?name=$1 last;
Discuz! X1.5 安装在子目录 /bbs 下:

代码: 全选

    rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
    rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
    rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
    rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
    rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
    rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
    rewrite ^([^\.]*)/([a-z]+)-(.+)\.html$ $1/$2.php?rewrite=$3 last;
    if (!-e $request_filename) {
        return 404;
    }
上次由 zhcj 在 2012-12-21 15:02,总共编辑 57 次。
这些用户感谢了作者 zhcj 于这个帖子 (主题 2):
fengjie (2013-04-15 11:19) • seabee (2013-05-29 16:31)
评价: 7.41%
http://phpcj.org/
河北Linux用户组QQ群:249872047
Gentoo中文社区QQ群:160294591
黄大少
帖子: 4
注册时间: 2009-10-05 2:04
送出感谢: 0
接收感谢: 0

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#2

帖子 黄大少 » 2009-11-16 5:17

可以编辑的好看点吗?
头像
zhcj
帖子: 363
注册时间: 2008-09-06 5:11
来自: 石家庄
送出感谢: 1 次
接收感谢: 8 次
联系:

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#3

帖子 zhcj » 2009-11-16 9:39

谢谢ls提醒 :em06
leonwei
帖子: 30
注册时间: 2008-03-15 17:42
送出感谢: 1 次
接收感谢: 0

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#4

帖子 leonwei » 2009-11-16 16:27

非常好的一片文章,强烈推荐!!!
curexubing
帖子: 140
注册时间: 2008-10-18 22:50
送出感谢: 0
接收感谢: 0

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#5

帖子 curexubing » 2009-11-17 12:22

MARK :em02
lhtel
帖子: 6
注册时间: 2008-01-29 17:28
送出感谢: 0
接收感谢: 0

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#6

帖子 lhtel » 2009-11-17 23:27

我需要配置个Web服务器 支持php jsp

服务软件采用nginx+mysql+php+resin

支持 ftp,ftp使用vsftp,mysql虚拟用户用户登陆

看了好几天了 还是不是很明白
lyerx
帖子: 17
注册时间: 2008-10-09 23:44
送出感谢: 0
接收感谢: 0

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#7

帖子 lyerx » 2009-11-25 13:38

支持原创
rhjxxdjh
帖子: 1
注册时间: 2009-12-15 14:44
送出感谢: 0
接收感谢: 0

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#8

帖子 rhjxxdjh » 2010-01-07 14:47

学习了,一定要试一试!
feng8899
帖子: 713
注册时间: 2008-10-31 3:18
送出感谢: 8 次
接收感谢: 3 次
联系:

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#9

帖子 feng8899 » 2010-01-20 21:09

mark...
Ubuntu 桌面培训
Duo T6400 GeForce 9300MGS 4G win10 Lubuntu18.04 64bit双系统奔跑中
P3 667 512M GeForce MX200 Lbuntu10.04
从零开始学游泳 萨顶顶
hc_xg
帖子: 1
注册时间: 2010-01-11 20:27
送出感谢: 0
接收感谢: 0

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#10

帖子 hc_xg » 2010-01-23 20:19

:em11
头像
lsstx
帖子: 78
注册时间: 2009-01-09 14:13
送出感谢: 1 次
接收感谢: 0

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#11

帖子 lsstx » 2010-03-02 15:44

好东西 。先记录下来。。。 :em01
头像
JarodLee
帖子: 180
注册时间: 2007-09-02 18:54
来自: ghtxx.cn
送出感谢: 1 次
接收感谢: 0
联系:

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#12

帖子 JarodLee » 2010-03-10 16:14

支持一下,看来apache有了个强大的对手了!
Life is a gift.
一起到我们的Linux学习MSN群中来吧:加linux@ghtxx.cn为好友讨论。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵
送出感谢: 1 次
接收感谢: 6 次

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#13

帖子 wangdu2002 » 2010-03-10 16:17

很详细。。。楼主辛苦了,路过学习并标记之,没准哪天会学着玩玩。 :em11
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
2xy
帖子: 42
注册时间: 2010-02-09 9:58
送出感谢: 0
接收感谢: 0

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#14

帖子 2xy » 2010-03-15 12:29

请教下,不知道如果不修改php.ini在其中添加也是可以的呢。
我在php.ini中找到了如下说明:
Default is 1. You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

显示默认情况下就是1的啊
头像
zhcj
帖子: 363
注册时间: 2008-09-06 5:11
来自: 石家庄
送出感谢: 1 次
接收感谢: 8 次
联系:

Re: ubuntu server 9.10+nginx+mysql+php网站架设

#15

帖子 zhcj » 2010-03-16 9:57

2xy 写了:请教下,不知道如果不修改php.ini在其中添加也是可以的呢。
我在php.ini中找到了如下说明:
Default is 1. You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

显示默认情况下就是1的啊
不太清楚,回头我试试,上面过程中的一些步骤我是从网上搜来的,有的我也不太清楚。 :em06
http://phpcj.org/
河北Linux用户组QQ群:249872047
Gentoo中文社区QQ群:160294591
回复

回到 “服务器基础应用”