Debian安装与配置Nginx+Php+MySQL的Web环境
虽然CentOS比较适合作为服务器的系统,但是在一些无法使用CentOS的特殊情况下也可以使用Debian来代替。先讲下Debian的安全问题,Debian没有自带防火墙以及其他的安全模块,如果真的要做生产环境,请先做好安全措施。如果想在Debian做到CentOS的性能只有更换硬件了,所以需要高性能的服务器系统的话,还是选择CentOS吧。
设置源镜像:
在我大天朝请先修改Debian源镜像,其他可以无视。由于我比较喜欢使用CentOS,所以在Debian也使用了Vim编辑器。
vim /etc/apt/sources.list #修改Debian源镜像
打开源镜像的文件后先用#号注释掉其他源,然后增加以下源。
deb https://ftp.cn.debian.org/debian stable main contrib non-free
deb-src https://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 ^/(.*)$ https://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服务了
I am truly glad to glance at this website posts which contains tons
of valuable data, thanks for providing these kinds of
information.
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.