Debian安装与配置Nginx+Php+MySQL的Web环境

虽然CentOS比较适合作为服务器的系统,但是在一些无法使用CentOS的特殊情况下也可以使用Debian来代替。先讲下Debian的安全问题,Debian没有自带防火墙以及其他的安全模块,如果真的要做生产环境,请先做好安全措施。如果想在Debian做到CentOS的性能只有更换硬件了,所以需要高性能的服务器系统的话,还是选择CentOS吧。

设置源镜像:

在我大天朝请先修改Debian源镜像,其他可以无视。由于我比较喜欢使用CentOS,所以在Debian也使用了Vim编辑器。

vim /etc/apt/sources.list   #修改Debian源镜像

打开源镜像的文件后先用#号注释掉其他源,然后增加以下源。

deb http://ftp.cn.debian.org/debian stable main contrib non-free
deb-src http://ftp.cn.debian.org/debian stable main contrib non-free

修改好源镜像后执行下面的命令进行Web环境的安装,建议按顺序一个个来安装,因为有时候源镜像会抽风。

apt-get update
apt-get install nginx
apt-get install php5-fpm
apt-get install php5-cli
apt-get install php5-curl
apt-get install php5-gd
apt-get install php5-mcrypt
apt-get install php5-mysql
apt-get install php5-cgi
apt-get install mysql-server    #安装MySQL数据库时会提示输入密码,这个密码就是root帐号的密码。

配置Nginx

vim /etc/nginx/nginx.conf   #打开并修改nginx.conf
worker_processes 8; #Nginx的进程数量,一般为CPU核数的倍数
worker_connections 1024;    #生产环境一般会大于8000。最大连接数 = worker_processes * worker_connections / 4

取消以下代码前的#号。

gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

然后在 http {} 块之间添加以下参数以增大上传文件大小。

client_max_body_size 24m;   #若为24GB可以写成24G

然后添加一个站点。

vim /etc/nginx/sites-available/default  #修改default前请先备份一份,以后创建虚拟主机会用到。

在 server {} 块中修改或添加以下参数。

#下面的这些是修改的:
listen 80;  #可以不去掉注释,默认是用80端口的

root /home/www/host; #修改为网站目录路径。需要先创建好目录后重启Nginx,若重启Nginx后一直打不开站点,可以尝试重启服务器,这不是文件夹的权限问题!
index index.php index.html; #修改成需要的默认页

server_name test.com; #去掉注释修改为网站的域名或localhost

#下面的这些是添加的:
if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php$1 last;
}

location ~ .*.php(/.*)*$ {
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

[如何将域名绑定到站点]

vim /etc/nginx/sites-available/default  #修改default文件,若为虚拟主机,则修改虚拟主机配置文件

server_name test.com;    #添加下面的参数并将test.com修改为网站的域名,如果不需要域名可以不设置。
if ($host != 'test.com' ) {
        rewrite ^/(.*)$  http://test.com/$1 permanent;
}

配置MySQL:

vim /etc/mysql/my.cnf   #修改MySQL的配置文件

[mysqld]
key_buffer = 128M   #一般为128M就够用了,生产环境要大很多。
max_allowed_packet = 16M    #设置得太小会写入数据库失败
thread_stack = 8M

[MySQL数据库出现1436错误]

请将MySQL数据库配置文件中的“thread_stack”参数调大,再修改以下参数。

thread_cache_size = 4
query_cache_limit = 16M

然后在配置文件中额外添加以下参数。

default-storage-engine = MyISAM #MyISAM引擎对频繁查询有优势
bind-address = 127.0.0.1    #如果需要使用外网连接MySQL数据库,需要注释该条参数

PHP配置:

vim /etc/php5/fpm/php.ini
memory_limit = 128M #生产环境请按需求来设置

vim /etc/php5/fpm/php-fpm.conf
process.max = 10

服务已经配置好了,现在需要重启服务。

service nginx reload    #重启Nginx
service php5-fpm reload #重启Php5
service mysql reload    #重启MySQL

[如何更换Nginx端口]

service nginx stop #先停止Nginx的服务
vim /etc/nginx/sites-available/default  #打开并编辑站点配置文件,虚拟主机的话请将“default”替换成虚拟主机名称。
找到“listen   80”参数,把前面的“#”去掉,将80修改为需要的端口,然后保存退出即可。
service nginx start #开启服务

[如何创建虚拟主机]

service nginx stop #先停止Nginx的服务

将之前备份的“default”配置文件改名成虚拟主机名称,然后在配置文件里面修改站点的路径与主机名,保存退出即可。

修改好配置文件后执行下面的命令建立软连接,这样就不需要移来移去了。

ln -s /etc/nginx/sites-available/test   /etc/nginx/sites-enabled/test   #这里的“test”为虚拟主机的名称,当然也可以自定义。
配置好配置文件后使用以下命令。

service nginx configtest #检查配置文件是否正确
service nginx start #检查无错误后就可以重新开启Nginx服务了

标签:安装, php, mysql, debian, 配置, nginx, web, 环境

该文章由 Shiqi Qiu 原创并发布在 被遗忘的曙光 技术博客

转载请标明来源:http://blog.fdawn.com/Linux/16.html

已有 2 条评论

  1. grow

    Hi, Neat post. There's a problem together with your web site in web explorer,
    would check this? IE still is the market leader and a large element of other people will omit your great writing because of this problem.

  2. cialis

    I am truly glad to glance at this website posts which contains tons
    of valuable data, thanks for providing these kinds of
    information.

添加新评论