设为首页 收藏本站
查看: 1230|回复: 0

linux学习之LNMP系统架构的搭建

[复制链接]

尚未签到

发表于 2015-11-16 13:22:32 | 显示全部楼层 |阅读模式
  LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。----摘自百度百科

1、nginx的安装
  下载nginx-1.4.2.tar.gz
[iyunv@lnmp ~]# tar zxf nginx-1.4.2.tar.gz
[iyunv@lnmp ~]# cd nginx-1.4.2
[iyunv@lnmp ~]# cd nginx-1.4.2/src/core/
[iyunv@lnmp core]# vim nginx.h
#define NGINX_VER          "weifang" NGINX_VERSION 自定义名称版本号
[iyunv@lnmp core]# cd ../../auto/cc/
[iyunv@lnmp cc]# vim gcc
# debug
#CFLAGS="$CFLAGS -g" 关闭调试功能
yum install -y gcc make
yum install -y pcre-devel
yum install -y openssl-devel
[iyunv@lnmp nginx-1.4.2]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module 源码编译安装,指定安装路径
[iyunv@lnmp nginx-1.4.2]# make && make install
[iyunv@lnmp ~]# cd /usr/local/lnmp/nginx/
[iyunv@lnmp nginx]# cd conf/
[iyunv@lnmp conf]# vim nginx.conf添加更改
worker_processes  2;
events {
        use epoll;
    worker_connections  1024;
}
[iyunv@lnmp conf]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/ 做软链接
[iyunv@lnmp conf]# nginx -t
[iyunv@lnmp conf]# nginx 开启nginx 可以访问IP查看发布内容,发布路径为/usr/local/lnmp/nginx/html/
[iyunv@lnmp conf]# netstat -antlp 查看状态

2、mysql的安装
  lftp i:~> get pub/docs/lamp/update/lnmp/mysql-5.5.12.tar.gz
[iyunv@lnmp ~]# tar zxf mysql-5.5.12.tar.gz
[iyunv@lnmp mysql-5.5.12]# yum install -y cmake
[iyunv@lnmp mysql-5.5.12]# yum install -y ncurses-devel
[iyunv@lnmp mysql-5.5.12]# yum install -y gcc-c++
[iyunv@lnmp mysql-5.5.12]# yum install -y bison
cmake安装说明
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \#安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data \#数据库存放目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \#安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \#安装 innodb 存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \#安装 archive 存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \#安装 blackhole 存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \#安装数据库分区
-DENABLED_LOCAL_INFILE=1 \#允许从本地导入数据
-DWITH_READLINE=1 \#快捷键功能
-DWITH_SSL=yes \#支持 SSL
-DDEFAULT_CHARSET=utf8 \#使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci \#校验字符
-DEXTRA_CHARSETS=all \#安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 \#MySQL 监听端口
这里使用/usr/local/lnmp/mysql这个路径,存储引擎使用默认一个
[iyunv@lnmp mysql-5.5.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 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci-DEXTRA_CHARSETS=all
[iyunv@lnmp mysql-5.5.12]# make && make install
数据库的初始化
[iyunv@lnmp mysql-5.5.12]# cd /usr/local/lnmp/mysql/
[iyunv@lnmp mysql]# useradd -M -d /usr/local/lnmp/mysql/data/ -s /sbin/nologin mysql 创建用户,制定目录,不允许登录
[iyunv@lnmp mysql]# chown -R mysql.mysql * 暂时更改权限
[iyunv@lnmp mysql]# cd support-files/
[iyunv@lnmp support-files]# cp mysql.server /etc/init.d/mysqld 复制启动脚本
[iyunv@lnmp support-files]# cp my-medium.cnf /etc/my.cnf 复制配置文件
[iyunv@lnmp support-files]# cd ../scripts/
[iyunv@lnmp scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/lnmp/mysql/ --datadir=/usr/local/lnmp/mysql/data/ 初始化数据库
[iyunv@lnmp scripts]# cd ../bin/ 存放的是命令,给root用户的PATH加入这个路径
[iyunv@lnmp bin]# vim ~/.bash_profile 要给所有用户加的话vim /etc/profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
[iyunv@lnmp bin]# source ~/.bash_profile
[iyunv@lnmp bin]# echo $PATH 查看是否生效

[iyunv@lnmp bin]# cd ../data/
[iyunv@lnmp data]# ls 这时候就有数据了
mysql  mysql-bin.000001  mysql-bin.000002  mysql-bin.index  performance_schema  test

[iyunv@lnmp data]# cd ..
[iyunv@lnmp mysql]# chown root * -R
[iyunv@lnmp mysql]# chown mysql data/ -R 权限修改
[iyunv@lnmp mysql]# /etc/init.d/mysqld start 启动mysql
[iyunv@lnmp mysql]# mysql_secure_installation 初始设置密码等
数据库密码 mmmmmm

3、php的安装
  准备工作,安装
libiconv-1.13.1.tar.gz 加强系统对支持字符编码转换的功能
libmcrypt-2.5.8.tar.bz2 mcrypt mhash是php加密算法扩展库
mhash-0.9.9.9.tar.bz2
mcrypt-2.6.8.tar.gz
lftp i:/pub/docs/lamp/update/lnmp> get libiconv-1.13.1.tar.gz libmcrypt-2.5.8.tar.bz2 mhash-0.9.9.9.tar.bz2 mcrypt-2.6.8.tar.gz
[iyunv@lnmp ~]# tar zxf libiconv-1.13.1.tar.gz
[iyunv@lnmp ~]# cd libiconv-1.13.1
[iyunv@lnmp libiconv-1.13.1]# ./configure --prefix=/usr/local/lnmp/modules/libiconv
[iyunv@lnmp libiconv-1.13.1]# make && make install
[iyunv@lnmp ~]# tar jxf libmcrypt-2.5.8.tar.bz2
[iyunv@lnmp ~]# cd libmcrypt-2.5.8
[iyunv@lnmp libmcrypt-2.5.8]# ./configure --prefix=/usr/local/lnmp/modules/libmcrypt
[iyunv@lnmp libmcrypt-2.5.8]# make && make install
[iyunv@lnmp libmcrypt-2.5.8]# cd libltdl/ 安装扩展
[iyunv@lnmp libltdl]# ./configure --prefix=/usr/local/lnmp/modules/libmcrypt/ --enable-ltdl-install
[iyunv@lnmp libltdl]# make && make install

[iyunv@lnmp ~]# tar jxf mhash-0.9.9.9.tar.bz2
[iyunv@lnmp ~]# cd mhash-0.9.9.9
[iyunv@lnmp mhash-0.9.9.9]# ./configure --prefix=/usr/local/lnmp/modules/mhash
[iyunv@lnmp mhash-0.9.9.9]# make && make install
[iyunv@lnmp ~]# tar zxf mcrypt-2.6.8.tar.gz
[iyunv@lnmp ~]# cd mcrypt-2.6.8
[iyunv@lnmp mcrypt-2.6.8]# ln -s /usr/local/lnmp/modules/mhash/lib/* /usr/local/lib/
[iyunv@lnmp mcrypt-2.6.8]# ln -s /usr/local/lnmp/modules/mhash/include/* /usr/local/include/
[iyunv@lnmp mcrypt-2.6.8]# vim /etc/ld.so.conf 开机加载
include ld.so.conf.d/*.conf
/usr/local/lnmp/modules/libmcrypt/lib/
/usr/local/lnmp/modules/mhash/lib/
/usr/local/lib/
[iyunv@lnmp mcrypt-2.6.8]# ldconfig
[iyunv@lnmp mcrypt-2.6.8]# ./configure --prefix=/usr/local/lnmp/modules/mcrypt --with-libmcrypt-prefix=/usr/local/lnmp/modules/libmcrypt/
[iyunv@lnmp mcrypt-2.6.8]# make && make install
php的安装
lftp i:~> get pub/docs/lamp/update/lnmp/php-5.4.12.tar.bz2
[iyunv@lnmp ~]# tar jxf php-5.4.12.tar.bz2
[iyunv@lnmp ~]# cd php-5.4.12
[iyunv@lnmp php-5.4.12]# useradd -M -d /usr/local/lnmp/nginx/ -s /sbin/nologin nginx
[iyunv@lnmp php-5.4.12]# yum install -y curl-devel libxml2-devel libjpeg-devel libpng-devel freetype-devel gmp-devel net-snmp-devel
[iyunv@lnmp php-5.4.12]# ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext--with-gmp --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt=/usr/local/lnmp/modules/libmcrypt/--with-mhash=/usr/local/lnmp/modules/mhash/
避免之后与数据库的关联而重编译新模块,在这里参数再加上--with-php-config=/usr/local/lnmp/php/bin/php-config --with-mysql=/usr/local/lnmp/mysql/ --with-mysql-sock=/usr/local/lnmp/mysql/data/mysql.sock
[iyunv@lnmp php-5.4.12]# make
[iyunv@lnmp php-5.4.12]# make install

4、开启php
  [iyunv@lnmp php-5.4.12]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
[iyunv@lnmp php-5.4.12]# cd sapi/fpm/
[iyunv@lnmp fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[iyunv@lnmp fpm]# chmod +x /etc/init.d/php-fpm
[iyunv@lnmp fpm]# cd /usr/local/lnmp/php/etc/
[iyunv@lnmp etc]# vim php.ini 主配置文件加入下边两条
cgi.fix_pathinfo=0
date.timezone = Asia/Shanghai
[iyunv@lnmp etc]# cp php-fpm.conf.default php-fpm.conf
[iyunv@lnmp etc]# vim php-fpm.conf
pid = run/php-fpm.pid
[iyunv@lnmp etc]# /etc/init.d/php-fpm start

5、打开nginx的php功能
  [iyunv@lnmp etc]# cd ../../nginx/conf/
[iyunv@lnmp conf]# vim nginx.conf
user  nobody;
        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;
        }
[iyunv@lnmp conf]# nginx -s reload
编辑
[iyunv@lnmp conf]# vim ../html/index.php
<?php
phpinfo()
?>
之后浏览http://192.168.0.142/index.php,就会出现动态页面信息,以后静态自己显示,动态交给php

如果之前php安装忘记加载mysql模块
解决这个问题
[iyunv@lnmp ~]# cd php-5.4.12/ext/mysql
[iyunv@lnmp mysql]# phpize
[iyunv@lnmp mysql]# ./configure --with-php-config=/usr/local/lnmp/php/bin/php-config --with-mysql=/usr/local/lnmp/mysql/ --with-mysql-sock=/usr/local/lnmp/mysql/data/mysql.sock
[iyunv@lnmp mysql]# make && make install
然后 会在/usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20100525/有mysql.so

[iyunv@lnmp ~]# vim /usr/local/lnmp/php/etc/php.ini 添加
853 extension=mysql.so
[iyunv@lnmp ~]# /etc/init.d/php-fpm reload
之后,会在php信息的mysql中出现
MYSQL_INCLUDE no value
MYSQL_LIBS no value

6、论坛的搭建
  nginx,php的执行者不能是网站的拥有者
lftp i:~> get pub/docs/Discuz_X2.5_SC_UTF8.zip
[iyunv@lnmp ~]# yum install unzip -y
[iyunv@lnmp ~]# unzip Discuz_X2.5_SC_UTF8.zip
[iyunv@lnmp ~]# mv upload/ /usr/local/lnmp/nginx/html/bbs
[iyunv@lnmp ~]# cd /usr/local/lnmp/nginx/html/bbs/
[iyunv@lnmp bbs]# vim ../../conf/nginx.conf
        location / {
            root   html;
            index  index.php index.html index.htm;
        }
[iyunv@lnmp bbs]# nginx -s reload
然后访问192.168.0.142/bbs
[iyunv@lnmp bbs]# chmod 777 data/ -R
[iyunv@lnmp bbs]# chmod 777 uc_* -R
[iyunv@lnmp bbs]# chmod 777 config/ -R

数据库服务器 localhost
数据库名 discuz
数据库密码 mmmmmm

管理员帐号 admin
管理员密码 mmmmmm
继续安装,结束。
之后访问,解决管理员首页问题
[iyunv@lnmp bbs]# cd install/
[iyunv@lnmp install]# mv index.php /mnt/
功能就可以使用了!

为使该服务器重启可用
[iyunv@lnmp ~]# chkconfig php-fpm on
[iyunv@lnmp ~]# chkconfig mysqld on
开机后,启动nginx

         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139947-1-1.html 上篇帖子: lnmp一键包502 Bad Gateway彻底的解决方法 下篇帖子: centos下快速搭建LNMP开发环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表