NexusPHP 是由浙江大学的 Nexus 团队开发的项目, 旨在提供一个完整、重视用户信誉和知识的资源分享社区的解决方案。
这是一个比较老的 BT 开源项目, 2010 年开源的。
安装准备
服务器最低配置
- 1 核心, 1GB RAM, 需要 IPv6 (Debian 8)
所需软件
- Apache 2
- MySQL 5.5
- PHP 5.6 (推荐。PHP 7 不支持)
- Memcached
- NexusPHP
- SourceForge 原版: 下载链接
- 备份下载: nexusphp.v1.5.beta5.20120707.zip
安装 LAMP (Apache/MySQL/PHP)
安装 Apache
Apache 是一个开源软件, 它目前运行在全球超过 50% 的服务器上
首先, 对你的源进行更新
sudo apt-get install vim chkconfig
sudo apt-get update
sudo apt-get install apache2
安装完成后可以在浏览器地址栏输入 IP 地址, 安装成功会有一个 It works 页面。
获取服务器 IP 地址
sudo ifconfig eth0 | grep inet | awk '{ print $2 }'
安装 MySQL
MySQL 是用于组织和检索数据的广泛部署的数据库管理系统
sudo apt-get install mysql-server libmysqlclient-dev
在安装过程中, MySQL 要求你设置一个 root 密码, 不过你要是忘了设置, 也可以在安装之后通过 MySQL shell 设置。
# 安装完成 MySQL 后你需要进行 MySQL 的初始设置, 利用以下命令:
mysql_secure_installation
这步会要求你的 root 密码。
Enter current password for root (enter for none):
OK, successfully used password, moving on...
之后会提示你是否想修改 root 密码, 输入 N 不修改, Enter 进入下一步。
之后的步骤全部 Yes , 最后 MySQL 会重载使得设置完成, 如下
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
完成以上步骤后你就可以开始安装 PHP。
安装 PHP
PHP 是种开源的 Web 脚本语言, 并被广泛应用来制作动态网页。
添加 PPA
sudo apt-get install python-software-properties software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
安装 PHP (Debian 7 以下)
apt-get install php5 php-pear php5-suhosin php5-mysql
安装 PHP (Debian 7 or Higher)
apt-get install php5 php-pear php5-mysql php5-gd php5.6-gd php5.6-mysql php5.6-common php5.6-curl php5.6-cli php5.6-mcrypt php5.6-mbstring php5.6-dom
接下来将会有两次询问, 全部 yes 即可
配置 PHP 5.6
打开 php.ini 配置文件
vim /etc/php/5.6/fpm/php.ini
display_errors = on
完成 PHP 安装后, 重载 Apache
service apache2 restart
恭喜!你已经成功安装 LAMP!
测试 LAMP
虽然我们已经安装了 LAMP , 但我们还是需要更直观一点查看安装成功的 LAMP
首先创建一个文件
sudo vim /var/www/info.php
写入以下内容
<?php
phpinfo();
?>
:wq
保存退出
现在你可以在浏览器中输入 http://localhost/info.php 查看 PHP 版本等信息
安装 Memcached
Memcache 是一个高性能的分布式内存对象缓存系统, 用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数, 从而提高了网站访问的速度。 MemCache 是一个存储键值对的 HashMap, 在内存中对任意的数据 (比如字符串、对象等) 所使用的 key-value 存储, 数据可以来自数据库调用、API 调用, 或者页面渲染的结果。
MemCache 设计理念就是小而强大, 它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题, 而所开放的 API 使得 MemCache 能用于 Java、C/C++、C#、Perl、Python、PHP、Ruby 等大部分流行的程序语言。
安装 Memcached 服务及 PHP 扩展
apt-get install memcached php5-memcached php5-memcache
修改配置文件
vim /etc/memcached.conf
修改内存大小和监听 IP 地址
这里只需修改两个参数,
一是指定 memcached 所能使用的内存大小, 如下:
-m 256 # 默认是 64M, 请修改成实际所需要的大小 256M 即可
二是修改监听的 IP 地址, 默认时 memcached 只监听在 127.0.0.1 这个本地回环地址上, 如下修改成本地网卡接口上的实际 IP:
-l 127.0.0.1 # 不修改
然后重启服务
sudo service memcached restart
验证安装
ps aux | grep memcached
netstat -tap | grep 'memcached'
ss -tnl | grep 11211
LISTEN 0 128 172.31.11.96:11211 *:*
使用 telnet 来连接 memcache 实例, 输入 stats 验证
telnet localhost 11211
stats
导入数据库
在 NexusPHP 文件夹中找到 dbstructure.sql
数据库文件。建议使用 Adminer 导入数据库, 比 phpMyAdmin 好用。
等待导入完成
配置 NexusPHP
编辑网站目录下的 config/allconfig.php
配置文件
vim /var/www/html/config/allconfig.php
chmod -R 777 config
找到以下部分
$BASIC = array(
'SITENAME' => 'NexusPHP', # 这是站名
'BASEURL' => 'localhost', # 填写设置解析之后的域名
'announce_url' => 'localhost/announce.php', # localhost 填网站域名
'mysql_host' => 'localhost', # 数据库 IP, 填 127.0.0.1 比 localhost 好
'mysql_user' => 'root', # 填数据库用户名
'mysql_pass' => 'nexusphprocks', # 填数据库密码
'mysql_db' => 'nexusphp', # 填数据库名称
);
配置好就可以访问了
NexusPHP 常见问题
NexusPHP 不显示验证码
PHP 没有安装图片处理扩展 (GD 库), 使用下面命令即可安装
sudo apt-get install php5-gd
MySQL 内存表 The table ‘pvlogs’ is full
在 MySQL 中执行命令
set global max_heap_table_size=1048576000;
set global tmp_table_size=1048576000;
原文
在 Debian 下安装 Apache,MySQL,PHP
Linux+nginx+mysql+php实战nexusPHP
[Linux] 簡易搭建NexusPHP PT站
Debian安装memcached和php5-memcache模块
Debian 8.1(amd64)下部署Memcached
MySQL 内存表The table ‘pvlogs’ is full问题处理