nginx ,mysql,php的源码编译和论坛的搭建

一mysql的源码编译

tar  zxf   mysql-boost-5.7.11.tar.gz
cd mysql-5.7.11/
去官网找到cmake包下载
  yum  install -y  cmake-2.8.12.2-4.el6.x86_64.rpm


   10  cd mysql-5.7.17/
   11  ls
   12  cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all


   13  yum  install -y gcc  gcc-c++     ##解决依赖性


   14  cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all
   15  cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all  -DWITH_BOOST=boost/boost_1_59_0/
   17  yum install -y  ncurses-devel       
   18  cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all  -DWITH_BOOST=boost/boost_1_59_0/
   19  rm   -f  CMakeCache.txt  #删除缓存
   20  cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all  -DWITH_BOOST=boost/boost_1_59_0/
   21  yum install -y bison
   22  rm  -f  CMakeCache.txt
   23  cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all  -DWITH_BOOST=boost/boost_1_59_0/
   24  make  &&  make  install


cd  /usr/local
ls
cd lnmp
ls
cd mysql          ##mysql 的安装位置
ls
cd support-files    ##配置文件所在位置
ls
vim  my-default.cnf
cp  my-default.cnf  /etc/my.cnf  ##将配置文件copy到/etc/my.cnf  系统默认配置文件目录


vim  /etc/my.cnf
添加basedir=/usr/local/lnmp/mysql   ##mysql 的安装目录
datadir=/usr/local/lnmp/mysql/data     ##mysql数据存放位置
port=3306                           ##mysql服务对外端口
socket=/usr/local/lnmp/mysql/data/mysql.sock  #mysql与外界联系的套接字文件位置


ls
file  mysql.server
cp  mysql.server /etc/init.d/mysqld#将编译完成的mysql启动脚本复制到系统启动服务的默认目录中
ll  /etc/init.d/mysqld


cd ..
ls
pwd  ##此时应该在/usr/local/lnmp/mysql
cd bin/
将编译生成的mysql二进制命令放进系统的环境变量文件中,保证可以直接调用该二进制命令
vim  ~/.bash_profile
写入   PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
export  PATH
source ~/.bash_profile


cd    
mysql_install_db
对mysql服务进行限制(利用mysql用户),将mysql服务的工作空间局限在mysql用户的家目录中,创建mysql组和mysql用户
groupadd  -g  27  mysql
useradd  -g  27  -u 27  -M  -d  /usr/local/lnmp/mysql  -s /sbin/nologin  mysql


# 指定mysql用户的家目录为/usr/local/lnmp/mysql
# (-M表示不创建其家目录)。为了系统安全,MYSQL默认使用mysql用户来运行相关程序。
id  mysql
将mysql目录下的data目录的所属组修改为mysql,因为mysql服务将要往这个目录中写数据,保证其有执行权限
cd /usr/local/lnmp/mysql
ll
chown  -R  mysql.mysql .
ll


7.执行mysql的配置初始化文件
mysqld  --initialize  --user=mysql# 注意生成的初始化密码在最底下(注意不要冒号后边的空格)


/etc/init.d/mysql  start
ls
ll
cd data
ls
ll
cd ..
ls
mysql_secure_installation  ##进行设置密码,安全初始化脚本
mysql  -p      show  databases;   ##登陆数据库


/etc/init.d/mysqld  stop
ls
ll   ##此时在mysql目录下,可以看见有data目录
chown  root.mysql  -R .
ll
chown  mysql  data  -R
ll
cd  /data
ls
cd
/etc/init.d/mysqld  start
mysql  -V  ##查看某个应用的压缩包的版本  


二。php源码编译
1.得到php的源码包并解压
tar   jxf  php-5.6.35.tar.bz2
2.进入解压目录创造预编译环境
cd   php_5.6.35


./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc/  --with-mysql=mysqlnd  --with-mysqli=mysqlnd  --with-pdo-mysql=mysqlnd  --enable-mysqlnd  --with-openssl  --with-snmp  --with-gd  --with-zlib  --with-curl  --with-libxml-dir  --with-png-dir  --with-jpeg-dir  --with-freetype-dir  --with-gmp  --with-gettext  --with-pear  --enable-inline-optimization  --enable-soap  --enable-ftp  --enable-sockets   --enable-mbstring  --enable-fpm  --with-mcrypt  --with-mhash


3.解决依赖性
yum  search   一个软件名
yum   provides   */XXX.h   ##寻找那个包含有这个文件


yum  install gcc  libxml2-devel  zlib-devel openssl-devel curl-devel
libjpeg-turbo-devel libpng-devel  freetype-devel  gpm-devel  net-snmp-devel  bison
lftp  172.25.254.250  cd /pub/docs/lamp  mget  libmcrypt-*  re2c-0.13.5*
yum  install  -y  libmcrypt-devel-2.5.8-9*  libmcrypt-*
rpm  -ivh   re2c-0.13.5-1.el6.x86_64.rpm
其中有2个包要去官网下载libmcrpt-


4.编译和安装
ll  Makefile
make   &&  make  install


5.将配置文件拷贝到相应的位置
cd  /usr/local/lnmp/php/etc
cp   php-fpm.conf.default   php-fpm.conf
cp   /root/php-5.6.35/php.ini-production   /usr/local/lnmp/php/etc/php.ini


6.做php服务的简单配置(配置pid和时区)
cd   /usr/local/lnmp/php/etc/
vim  php.ini    data.timezone = Asia/Shanghai
vim  php-fpm.conf   ##打开pid,pid=run/php-fpm.pid


7.将php启动的脚本复制到系统启动脚本的默认目录下,并测试php是否可以启动
cd   /root/php-5.6.35/sapi/fpm
file  init.d.php-fpm  ##这是一个shell脚本文件
cp   init.d.php-fpm  /etc/init.d/php-fpm   
chmod   +x  /etc/init.d/php-fpm  ##给脚步本加上可执行权限
/etc/init.d/php-fpm  start  ##打开php服务
/etc/init.d/php-fpm  reload   ##重新加载php
netstat  -antlp    ##查看php服务的监听端口


三.nginx的源码编译
1.得到nginx的源码包并解压
yum  install unzip
tar   zxf    nginx-1.14.0.tar.gz
unzip   nginx-goodies-nginx-sticky-module-ng-08.zip  ##带有sticky模块的nginx包


2.去掉nginx的版本号
cd   nginx-1.14.0/src/core
vim   nginx.h


3.注释debug
cd   nginx-1.14.1/auto/cc
vim  gcc


4.创造预编译环境
cd nginx-1.14.1
./configure  --prefix=/usr/local/lnmp/nginx  --with-http_ssl_module  --with-http_stub_status_module  --with-threads  --with-file-aio  --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42


5.解决源码编译中的依赖性问题
yum  install   pcre-devel   ##一般后面都加devel后缀
6.编译汇编
make   &&  make  install


7.配置nginx服务
useradd  nginx
id  nginx


cd   /usr/local/lnmp/nginx/conf
vim    nginx.conf
第一行加上运行用户,第13行加上最大文件数
第65-71行,去掉注释  ##将nginx和php结合起来
 location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
location  / {
      root  html;
      index  index.php  index.html  index.htm;
  }


8.对nginx用户做限制和添加nginx的用户
id  nginx
vim  /etc/security/limits.conf
nginx  -  nofile   65535


ln  -s   /usr/local/lnmp/nginx/sbin/nginx  /usr/local/sbin
10.检测nginx服务是否可用并打开nginx服务
nginx  -t   ##检查配置文件是否有错
nginx     ##打开nginx服务


11.访问测试
cd /usr/local/lnmp/nginx/html
vim index.php
<?php
phpinfo()
?>


在浏览器处输入nginx和php所在主机ip地址:172.25.254.1/index.php
12.修改php的默认访问(将php后缀文件作为默认发布文件):
cd   /usr/local/lnmp/nginx/conf
vim  nginx.conf
location / {
            root   html;
            index  index.php(放在第一个) index.html index.htm;
        }
在浏览器输入172.25.254.1就可以访问了,不需要在加入index.php了
cd  /usr/local/lnmp/php/etc/
ls
vim  php-fpm.conf将user和group的nobody改为nginx
user=nginx
group=nginx


/etc/init.d/php-fpm  reload
在真机测试: http://172.25.254.1

LNMP架构的简单部署
1.下载论坛php代码(在这儿我就直接用别人写好的php论坛代码)
解压代码,并将其放在nginx的默认发布目录/usr/local/lnmp/nginx/html/下
yum install unzip   # 安装解压工具unzip
unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/


2.对页面上传部分的php代码改名,方便浏览(可选)
cd /usr/local/lnmp/nginx/html/   
mv upload/ bbs(可选操作)


3.权限不够,改权限


cd /usr/local/lnmp/nginx/html/bbs
ls
chmod  -R  777  config/  data/  uc_client/ uc_server/


4.mysql和php没有链接


ll  /usr/local/lnmp/mysql/data/mysql.sock
cd  /usr/local/lnmp/php/etc/
vim php-ini##一共改三处
这几处后面添加1219-1222   1011-1014   1159-1162  /usr/local/lnmp/mysql/data/mysql.sock
/etc/init.d/php-fpm  reload  #重启服务


5.mysql的权限不够
ll  -d /usr/local/lnmp/mysql/data
chmod  755  /usr/local/lnmp/mysql/data


在真机安装;http://172.25.254.1/bbs

最后防止重复安装,根据要求删除东西
cd  /usr/local/lnmp/nginx/html/bbs/install
ls
rm  -fr   index.php


 

    

猜你喜欢

转载自blog.csdn.net/weixin_42709236/article/details/83064491
今日推荐