本文章是个人在搭建discuz论坛时的一个过程,由于本人不是做php开发,则对php不太熟悉,搭建discuz期间花费了不少时间,所以记录下来,供大家参考。
搭建discuz是在Centos7系统上,采用nginx+mysql5.7+php7.1来部署discuz的,如使用apache代替nginx,则不适合阅读本文。
1、安装基本工具:
由于小编是在最小安装版的centos7上部署,则装几个常用的工具,大家酌情处理:
yum -y install wget unzip net-tools
2、安装nginx:
安装路径:/usr/local
首先进入/usr/local
下载nginx源码:wget http://nginx.org/download/nginx-1.13.7.tar.gz
解压nginx源码:tar -zxvf nginx-1.13.7.tar.gz
nginx版本使用的是1.13.7,如果大家安装其他版本,则自行更换地址即可。
安装nginx前先安装下面的几个依赖,命令如下:
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
进到nginx源码目录:/usr/local/nginx-1.13.7/
执行以下命令:
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_realip_module
上面安装的模块大家按需要来安装
上面的跑完后执行以下命令:
make && make install
这个正在编译安装,比较耗时,跑完后nginx就安装完成了。
启动nginx:/usr/local/nginx/sbin/nginx
在浏览器输入http://ip,如果出现nginx欢迎界面,则表示nginx已正确安装好了。
3、安装mysql5.7:
下载mysql源:wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
安装mysql源:yum localinstall mysql57-community-release-el7-11.noarch.rpm
安装mysql:yum install mysql-community-server
启动mysql:systemctl start mysqld
设置mysql开机启动:
systemctl enable mysqld
systemctl daemon-reload
修改mysql的root密码
先查找到root初始的默认密码:grep 'temporary password' /var/log/mysqld.log
用上一条命令找到的密码来登录mysql:mysql -uroot -p
由于mysql5.7默认有密码策略,设置的密码太短会导致失败,关闭mysql密码策略:
在/etc/my.cnf添加validate_password = off,
重启mysql:systemctl restart mysqld
修改密码:set password for 'root'@'localhost'=password(‘root’);
允许root用户远程登录mysql:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
如果使用非root,则自行添加用户即可。
到此,mysql也装好了。
4、安装php7.1:
安装php的依赖:
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
从官网下载php源码
解压php7,进入php源码根路径,执行以下命令:
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=root \
--with-fpm-group=root \
--enable-inline-optimization \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-zlib-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli \
--with-zlib-dir \
--with-pdo-sqlite \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache
再执行安装:make && make install
配置php环境变量:在/etc/profile末尾加入export PATH=$PATH:/usr/local/php/bin
source /etc/profile
配置php-fpm
cp php.ini-production /etc/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 sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 777 /etc/init.d/php-fpm
由于PHP7已经完全移除了MySQL的扩展支持,故使用mysqli与mysqlnd来代替,编辑/etc/php.ini,找到mysqli.default_socket,然后改成:
mysqli.default_socket = /var/lib/mysql/mysql.sock
用root用户启动php-fpm:
/usr/local/php/sbin/php-fpm -R
5、安装discuz:
下载discuz最新源码3.4,把discuz源码解压,把里面的upload放到/usr/local/nginx/html目录下,改名为discuz
配置nginx的配置文件,增加:
server {
listen 80;
server_name localhost;
root /usr/local/nginx/html/discuz;
index index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
重启nginx:/usr/local/nginx/sbin/nginx -s reload
浏览器访问http://ip,出现discuz的安装向导界面,根据提示安装discuz
到此,整个安装过程已完成。