1.Piwik 简介
Piwik 是一个 PHP 和 MySQL 的开放源代码的 web 统计软件, 它给你一些关于你的网站的实用统计报告, 比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等.
Piwik 拥有众多不同功能的插件, 你可以添加新的功能或是移除你不需要的功能, Piwik 同样可以安装在你的服务器上面, 数据就保存在你自己的服务器上面. 你可以非常容易的插入统计图表到你的博客或是网站亦或是后台的控制面板中. 安装完成后, 你只需将一小段代码放到将要统计的网页中即可.
2.Piwik 环境要求
要运行 Piwik, 你的主机需要几件事情:
Web 服务器, 如 Apache,Nginx,IIS 等
PHP 版本 5.5.9 或更高
MySQL 5.5 或更高版本, 或 MariaDB
(默认启用)PHP 扩展名 pdo 和 pdo_mysql, 或者是 mysqli 扩展
具体查看: https://piwik.org/docs/requirements/
3.PHP+nginx 环境搭建
下载
# wget http://php.net/get/php-7.0.2.tar.gz/from/a/mirror
解压安装
- # tar zxvf PHP-7.0.2.tar.gz
- # cd PHP-7.0.2
首先查看安装帮助
- # ./configure --help
- # ./configure --prefix=/usr/local/PHP \
- --with-curl \
- --with-freetype-dir \
- --with-gd \
- --with-gettext \
- --with-iconv-dir \
- --with-kerberos \
- --with-libdir=lib64 \
- --with-libxml-dir \
- --with-mysqli \
- --with-openssl \
- --with-pcre-regex \
- --with-pdo-MySQL \
- --with-pdo-SQLite \
- --with-Pear \
- --with-PNG-dir \
- --with-xmlrpc \
- --with-xsl \
- --with-zlib \
- --enable-fpm \
- --enable-bcmath \
- --enable-libxml \
- --enable-inline-optimization \
- --enable-gd-native-ttf \
- --enable-mbregex \
- --enable-mbstring \
- --enable-opcache \
- --enable-pcntl \
- --enable-shmop \
- --enable-SOAP \
- --enable-sockets \
- --enable-sysvsem \
- --enable-xml \
- --enable-zip
假设配置错误, 须要安装须要的模块, 直接 yum 一并安装依赖库
# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel MySQL pcre-devel
注意: 安装 php7beta3 的时候有几处配置只是去, 须要 yum 一下. 如今 PHP-7.0.2 已经不用这样了.
- # yum -y install curl-devel
- # yum -y install libxslt-devel
编译安装
# make && make install
配置文件
- #cp PHP.INI-development /usr/local/PHP/lib/PHP.INI
- # cp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf
- # cp /usr/local/PHP/etc/PHP-fpm.d/www.conf.default /usr/local/PHP/etc/PHP-fpm.d/www.conf
- # cp -R ./sapi/fpm/PHP-fpm /etc/init.d/PHP-fpm
须要注意的是 php7 中 www.conf 这个配置文件配置 phpfpm 的端口号等信息, 假设你改动默认的 9000 端口号需在这里改, 再改 nginx 的配置
启动
#/etc/init.d/PHP-fpm
重启
先查看 PHP-fpm 的 master 进程号
- # ps aux|grep PHP-fpm
- root 21891 0.0 0.0 112660 960 pts/3 R+ 16:18 0:00 grep --color=auto PHP-fpm
root 42891 0.0 0.1 182796 1220 ? Ss 4 月 18 0:19 PHP-fpm: master process (/usr/local/PHP/etc/PHP-fpm.conf)
nobody 42892 0.0 0.6 183000 6516 ? S 4 月 18 0:07 PHP-fpm: pool www
nobody 42893 0.0 0.6 183000 6508 ? S 4 月 18 0:17 PHP-fpm: pool www
kill 进程, 重新启动
# kill -USR2 42891
PHP 修改默认端口 9000
# cd /usr/local/PHP/etc/PHP-fpm.d
修改 www.conf
listen = 127.0.0.1:10015
nginx 配置 PHP
- server {
- listen 80;
- server_name foo.com;
- root /App/html/Piwik;
- index index.HTML index.htm index.PHP;
- location ~ \.PHP$ {
- root HTML;
- fastcgi_pass 127.0.0.1:10015;
- fastcgi_index index.PHP;
- fastcgi_param SCRIPT_FILENAME /App/HTML/Piwik$fastcgi_script_name;
- include fastcgi_params;
- }
- }
4.MySQL 环境搭建 (MySQL5.7)
1, 下载 tar 包, 这里使用 wget 从官网下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
2, 将 MySQL 安装到 / usr/local/MySQL 下
- # 解压
- tar -xvf MySQL-5.7.22-Linux-glibc2.12-x86_64.tar.gz
- # 移动
- mv MySQL-5.7.22-Linux-glibc2.12-x86_64 /usr/local/
- # 重命名
- mv /usr/local/MySQL-5.7.22-Linux-glibc2.12-x86_64 /usr/local/MySQL
3, 新建 data 目录
mkdir /usr/local/MySQL/data
4, 新建 MySQL 用户, MySQL 用户组
- # MySQL 用户组
- groupadd MySQL
- # MySQL 用户
- useradd MySQL -g MySQL
5, 将 / usr/local/MySQL 的所有者及所属组改为 MySQL
chown -R MySQL.MySQL /usr/local/MySQL
6, 配置
- /usr/local/MySQL/bin/mysql_install_db --user=MySQL --basedir=/usr/local/MySQL/ --datadir=/usr/local/MySQL/data
- # 如果出现以下错误:
- 2018-07-14 06:40:32 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
- 2018-07-14 06:40:32 [ERROR] Child process: /usr/local/MySQL/bin/mysqldterminated prematurely with errno= 32
- 2018-07-14 06:40:32 [ERROR] Failed to execute /usr/local/MySQL/bin/mysqld --Bootstrap --datadir=/usr/local/MySQL/data --lc-messages-dir=/usr/local/MySQL/share --lc-messages=en_US --basedir=/usr/local/MySQL
- -- server log begin --
- -- server log end --
- # 则使用以下命令:
- /usr/local/MySQL/bin/mysqld --user=MySQL --basedir=/usr/local/MySQL/ --datadir=/usr/local/MySQL/data --initialize
- # 如果出现以下错误:
- /usr/local/MySQL/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
- # 则执行以下命令:
- yum -y install numactl
- # 完成后继续安装:
- /usr/local/MySQL/bin/mysqld --user=MySQL --basedir=/usr/local/MySQL/ --datadir=/usr/local/MySQL/data --initialize
- # 编辑 / etc/my.cnf
- [mysqld]
- datadir=/usr/local/MySQL/data
- basedir=/usr/local/MySQL
- socket=/tmp/MySQL.sock
- user=MySQL
- port=3306
- character-set-server=utf8
- # 取消密码验证
- skip-grant-tables
- # Disabling symbolic-links is recommended to prevent assorted security risks
- symbolic-links=0
- # skip-grant-tables
- [mysqld_safe]
- log-error=/var/log/mysqld.log
- pid-file=/var/run/mysqld/mysqld.pid
7, 开启服务
- # 将 MySQL 加入服务
- cp /usr/local/MySQL/support-files/MySQL.server /etc/init.d/MySQL
- # 开机自启
- chkconfig MySQL on
- # 开启
- service MySQL start
8, 设置密码
- # 登录 (由于 / etc/my.cnf 中设置了取消密码验证, 所以此处密码任意)
- /usr/local/MySQL/bin/MySQL -u root -p
- # 操作 MySQL 数据库
- >>use MySQL;
- # 修改密码
- >>update user set authentication_string=password('你的密码') where user='root';
- >>flush privileges;
- >>exit;
9, 将 / etc/my.cnf 中的 skip-grant-tables 删除
10, 登录再次设置密码 (不知道为啥如果不再次设置密码就操作不了数据库了)
- /usr/local/MySQL/bin/MySQL -u root -p
- >>ALTER USER 'root'@'localhost' IDENTIFIED BY '修改后的密码';
- >>exit;
11, 允许远程连接
- /usr/local/MySQL/bin/MySQL -u root -p
- >>use MySQL;
- >>update user set host='%' where user = 'root';
- >>flush privileges;
- >>eixt;
12, 添加快捷方式
ln -s /usr/local/MySQL/bin/MySQL /usr/bin
5. 启动 Piwik 服务
来源: http://www.jianshu.com/p/d8ea7aa931d3