正在加载
请稍等

菜单

文章

Home 树莓派 树莓派-搭建nginx+mysql+php
Home 树莓派 树莓派-搭建nginx+mysql+php

树莓派-搭建nginx+mysql+php

树莓派 by

我安装的是官方2014Q1的Raspbian。

先ssh连上Pi。

替换树莓派软件源为中科大的镜像

帮助
1
sudo vi /etc/apt/sources.list
直接把官方源去掉或者前面加#号注释掉,添入以下源:

帮助
1
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
这时apt-get更新软件包时出现错误提示Unable to locate package update,发现问题出在执行sudo apt-get install之前更换了软件源,但是却忘了更新软件源,于是执行下面的命令:

帮助
1
sudo apt-get update
更新已安装的包

帮助
1
sudo apt-get upgrade
安装screen

帮助
1
sudo apt-get install screen
安装lnmp

帮助
1
sudo apt-get install nginx php5-fpm php5-cgi php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-memcache php5-gd php5-sqlite php5-cgi php5-xmlrpc mysql-server mysql-client
mysql-server mysql-client nginx php5这都没什么好说的,后面的php5插件是为了兼容现在大部分php应用而添加的,php5-cli是php命令行模式,最近玩vagex的php模式需要用到,php5-fpm作为默认Fastcgi支持已经添加进最新版php5中。
安装mysql的时候会提示输入密码,密码不要忘记就行了。

配置nginx

帮助
1
vi /etc/nginx/nginx.conf
需要做的就是限定线程数和开启gzip支持,gzip开启后将大幅降低传输html的流量占用。

帮助
1
2
3
4
5
6
7
8
9
10
worker_processes 1; #只有一个CPU,单进程即可
worker_connections 256; #一般支持100在线连接就达到raspberry pi的极限了
gzip on; #gzip开启取消前面的#让默认设置生效即可
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;
配置站点属性

帮助
1
vi /etc/nginx/sites-availiable/default

帮助
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
server {
listen 80;#Web服务端口号,大陆用户可能需要修改为81或8080等
server_name pi.chensibo.com;
root /var/www; #站点存储位置

access_log /var/log/nginx/localhost.access.log;
#error_page 404 /404.html;

if (!-e $request_filename)
{
rewrite ^(.*)$ /index.php$1 last;
}

location / {
index index.html index.htm index.php default.html default.htm default.php; #加入index.php为默认页面
}

location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 1d;
}

location ~ .*\.php(\/.*)*$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params; #开启php解析,使用php-fpm作为Fastcgi通信模块
}
}
配置mysql
默认安装mysql的配置是基于1G以上X86 CPU,512M内存给Mysql独占的,自编译版提供多种配置文档,对于rapsberry pi选择small.cnf就行了,我们对/etc/mysql/my.cnf进行一些修改也行。另外mysql 5.5开始默认使用Innodb数据库引擎,这是一种对分布式和高并发优化的格式,其实老版本的MYISAM引擎也足够用了,关闭Innodb引擎也能节省大概6-10M的内存占用。

帮助
1
vi /etc/mysql/my.cnf
帮助
1
2
3
4
5
6
7
8
9
[mysqld]
character-set-server=utf8
key_buffer = 16k
max_allowed_packet = 1M
thread_stack = 64K
thread_cache_size = 4
query_cache_limit = 1M
default-storage-engine = MYISAM
loose-skip-innodb
还需要给root用户设置外部访问权限,这样局域网就可以通过ip地址统一访问,而不是127.0.0.1

帮助
1
2
3
4
5
mysql -uroot

>use mysql;

>grant all privileges on *.* to root@’ip地址’ identified by ‘root密码’ with grant option;
设置php-fpm和php.ini,尽量闲置内存使用

帮助
1
sudo vi /etc/php5/fpm/php.ini
帮助
1
2
3
4
memory_limit=16M

sudo vi /etc/php5/fpm/php-fpm.conf
process.max=4 #以一个进程占用16M来算,4个占用64M基本够用了
这样优化后,启动完成系统后内存占用保持在100M以内,剩余300多M比我的一个vps内存都多了。

接下来是安装phpmyadmin到指定目录

修改树莓派的时区和网络对时

1.安装ntp,输入

帮助
1
sudo apt-get install ntpdate
2.修改时区,输入

帮助
1
tzselect
3.按照自己的时区选择:

帮助
1
Asia->China->east china->yes
4.配置网络对时,设为国内的ntp服务器cn.pool.ntp.org

帮助
1
sudo ntpdate cn.pool.ntp.org
5.输入“date”,时间和本地时间一样了。

或者可以用 yyyymmdd hh:mm:ss 的格式手动设置时间。

帮助
1
date -s “20140102 22:12:00”
ENJOY IT!

 

16 2015-10