1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 源码编译安装LNMP平台(使用Linux Nginx MySQL与PHP搭建论坛)

源码编译安装LNMP平台(使用Linux Nginx MySQL与PHP搭建论坛)

时间:2019-06-12 11:11:38

相关推荐

源码编译安装LNMP平台(使用Linux  Nginx MySQL与PHP搭建论坛)

目录

编译安装NGINX

安装依赖包

新建用户 组便于管理(nginx 服务程序默认 以 nobody 身份运行,建议为其创建专门的用户账户,以便更准确的控制访问权限)

编译安装Nginx

添加 Nginx 系统服务

编译安装mysql5.7

安装配置php文件

nginx加入PHP功能

测试数据库工作是否正常

LNMP应用部署之 部署 Discuz!社区论坛 Web 应用

编译安装NGINX

安装依赖包

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

新建用户 组便于管理(nginx 服务程序默认 以 nobody 身份运行,建议为其创建专门的用户账户,以便更准确的控制访问权限)

useradd -M -s /sbin/nologin nginx #-M(不创建主目录) -s(不允许登录)

编译安装Nginx

cd /opt/ 准备好的 tar包解压 到 /opt/ 目录

tar zxvf nginx-1.120.tar.gz -C /opt #解压到/opt/ 目录cd nginx-1.12.0/ 移动到解压好的文件夹#编译./configure \--prefix=/usr/local/nginx \#安装路径--user=nginx \#指定用户名--group=nginx \#指定用户组--with-http_stub_status_module#启用此模块支持状态统计./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_stub_status_module#安装make && make install#做个软连接 #或者加入系统环境也行ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

添加 Nginx 系统服务

#添加 Nginx 系统服务方法一:vim /etc/init#!/bin/bash #chkconfig: - 99 20 #description:Nginx Service Control Script PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" case "$1" instart) $PROG ;; stop) kill -s QUIT $(cat $PIDF) ;; restart) $0 stop $0 start;; reload) kill -s HUP $(cat $PIDF) ;;*) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac exit 0#方法二#!/bin/bash#chkconfig: 35 99 20#description:Nginx Service Control Scriptcmd="/usr/local/nginx/sbin/nginx"pid="/usr/local/nginx/logs/nginx.pid"case $1 instart)$cmd;;stop)kill -3 `cat $pid`;;reload)kill -1 `cat $pid`;;restart)$0 stop$0 start;;*)echo "plaese input start,stop,reload,restart"exit 1esacexit 0#方法三vim /lib/systemd/system/nginx.service[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/bin/kill -s HUP $MAINPIDExecStop=/usr/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target##配置参数解释##[Unit]Description=nginx ####描述After=network.target ####描述服务类别[Service]Type=forking###后台运行形式PIDFile=/usr/local/nginx/logs/nginx.pid ###PID文件位置ExecStart=/usr/local/nginx/sbin/nginx ###启动服务ExecReload=/usr/bin/kill -s HUP $MAINPID ###根据PID重载配置ExecStop=/usr/bin/kill -s QUIT $MAINPID###根据PID终止进程PrivateTmp=true[Install]WantedBy=multi-user.target

[root@localhost opt]# systemctl daemon-reload ##重载服务[root@localhost opt]# systemctl start nginx.service##启动服务

编译安装mysql5.7

安装Mysql环境依赖包

[root@localhost opt]# yum -y install \ncurses \ncurses-devel \bison \cmakeyum -y install pcre-devel zlib-devel gcc gcc-c++ make#安装依赖关系

[root@localhost opt]# useradd -s /sbin/nologin mysql#创建运行用户 -s 禁止登录shell[root@localhost opt]# lsDiscuz_X3.4_SC_UTF8.zip mysql-5.7.20 mysql-boost-5.7.20.tar.gz nginx-1.12.0 nginx-1.12.0.tar(1).gz php-7.1.10.tar.bz2 rh[root@localhost opt]# cd mysql-5.7.20/#编译[root@localhost mysql-5.7.20]# cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/usr/local/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/usr/local/mysql/data \-DWITH_BOOST=boost \-DWITH_SYSTEMD=1-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \#指定mysql的安装路径-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \#指定mysql进程监听套接字文件(数据库连接文件)的存储路径-DSYSCONFDIR=/etc \#指定配置文件的存储路径-DSYSTEMD_PID_DIR=/usr/local/mysql \#指定进程文件的存储路径-DDEFAULT_CHARSET=utf8 \#指定默认使用的字符集编码,如utf8-DDEFAULT_COLLATION=utf8_general_ci \#指定默认使用的字符集校对规则-DWITH_INNOBASE_STORAGE_ENGINE=1 \#安装INNOBASE存储引擎-DWITH_ARCHIVE_STORAGE_ENGINE=1 \#安装ARCHIVE存储引擎-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \#安装BLACKHOLE存储引擎-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \#安装FEDERATED存储引擎-DMYSQL_DATADIR=/usr/local/mysql/data \#指定数据库文件的存储路径-DWITH_BOOST=boost \#指定boost的路径,-DWITH_SYSTEMD=1#生成便于systemctl管理的文件[root@localhost mysql-5.7.20]# make && make install#安装

配置MySQL

[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/chown -R 递归 改变属主[root@localhost ~]# vi /etc/f #调整配置文件

删除原来的配置 写入以下内容

[client]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld]user = mysqlbasedir = /usr/local/mysqldatadir = /usr/local/mysql/dataport = 3306character_set_server=utf8pid-file = /usr/local/mysql/mysqld.pidsocket = /usr/local/mysql/mysql.sockserver-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTESNO_ENGINE_SUBSTITUTION如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常STRICT_TRANS_TABLES在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制NO_AUTO_CREATE_USER禁止:GRANT创建密码为空的用户NO_AUTO_VALUE_ON_ZEROmysql中的自增长列可以从o开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错NO_ZERO_IN_DATEmysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告ERROR_FOR_DIVISION_BY_ZERO在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MysQL返回NULLIPES_AS_CONCAT将"||"视为字符串的连接操作符而非或运算符,这和oracle数据库是一样的,ANSI QUOTES启用ANSI QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

加入系统环境变量

[root@localhost ~]# chown mysql:mysql /etc/f#改属主 和属组[root@localhost ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile#加入系统环境变量[root@localhost ~]# echo 'export PATH' >> /etc/profile #声明变量[root@localhost ~]# source /etc/profile #刷新

系统环境变量的设置

环境变量的设置一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt /au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置环境变量:1.直接用export命令:#export PATH=$PATH:/opt/au1200_rm/build_tools/bin查看是否已经设好,可用命令export查看:可以看到,环境变量已经设好,PATH里面已经有了我要加的编译器的路径。2.修改profile文件:#vi /etc/profile在里面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"让环境变量立即生效需要执行如下命令:#source /etc/profile3.修改.bashrc文件:# vi /root/.bashrc在里面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:# echo $PATH看看输出里面是不是已经有了/my_new_path这个路径了。

初始化数据库

[root@localhost ~]# cd /usr/local/mysql/[root@localhost mysql]# bin/mysqld \> --initialize-insecure \> --user=mysql \> --basedir=/usr/local/mysql \> --datadir=/usr/local/mysql/datacp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

数据库开启自启、 关闭、状态

systemctl enable mysqld#开机自启systemctl start mysqld#开启数据库systemctl stop mysqld#停止数据库systemctl status mysqld#查看启动状态netstat -anpt | grep 3306#查看端口 并过滤

设置Mysql密码

设置Mysql密码mysqladmin -u root -p password登录数据库mysql -u root -p

安装配置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

编译安装

cd /opt tar xjvf php-7.1.10.tar.bz2#解压cd php-7.1.10./configure \--prefix=/usr/local/php \--with-mysql-sock=/usr/local/mysql/mysql.sock \--with-mysqli \--with-zlib \--with-curl \--with-gd \--with-jpeg-dir \--with-png-dir \--with-freetype-dir \--with-openssl \--enable-fpm \--enable-mbstring \--enable-xml \--enable-session \--enable-ftp \--enable-pdo \--enable-tokenizer \--enable-zipmake make install

php有三个配置文件php.ini 核心配置文件 php-fpm.conf 进程服务配置文件 www.conf 扩展配置文件

配置php

vim /usr/local/php/lib/php.ini#编辑配置文件在1170行加入 mysqli.default_socket = /usr/local/mysql/mysql.sock在939行加入 date.timezone = Asia/Shanghai

/usr/local/php/bin/php -m //验证安装的模块

配置及优化FPM模块

[root@localhost php-7.1.10]# cd /usr/local/php/etc/[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d/[root@localhost php-fpm.d]# cp www.conf.default www.conf

[root@localhost php-fpm.d]# cd /usr/local/php/etc/[root@localhost etc]# vi php-fpm.conf

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ininetstat -anpt | grep 9000ln -s /usr/local/php/bin/* /usr/local/bin/ps aux | grep -c "php-fpm"

nginx加入PHP功能

vi /usr/local/nginx/conf/nginx.conf //在合适的位置location ~ \.php$ {root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; ####注意目录名称include fastcgi_params;}

vi /usr/local/nginx/html/index.php<?phpphpinfo();?>

systemctl restart nginx在网页测试“http://192.168.159.101/index.php”

测试数据库工作是否正常

mysql -u root -p#输入密码 并登录CREATE DATABASE bbs;#创建一个数据库GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码// 所有访问来源/渠道GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';flush privileges;刷新数据库//

编辑网页

vi /usr/local/nginx/html/index.php<?php$link=mysqli_connect('192.168.195.128','bbsuser','admin123');if($link) echo "<h1>Success!!</h1>";else echo "Fail!!";?>

systemctl restart nginx#重启服务在网页测试 http://192.168.159.101/index.php

LNMP应用部署之 部署 Discuz!社区论坛 Web 应用

安装论坛

cd /optunzip Discuz_X3.4_SC_UTF8.zip #解压准备好的包 解压到 /opt/ 目录下cd /opt/dir_SC_UTF8/cp -r upload/ /usr/local/nginx/html/bbs/#递归复制到网页服务目录下

改属主属组 以及开放可读可写可执行权限

cd /usr/local/nginx/html/bbs/chown -R root:nginx ./config/chown -R root:nginx ./data/chown -R root:nginx ./uc_client/chown -R root:nginx ./uc_server/chmod -R 777 ./config/chmod -R 777 ./data/chmod -R 777 ./uc_client/chmod -R 777 ./uc_server/

网页设置

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。