Linux:LNMP架构的搭建

Posted Spiro-k

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux:LNMP架构的搭建相关的知识,希望对你有一定的参考价值。

LNMP架构的搭建


 

搭建前先安装一些必要的rpm和php组件(全新系统)

yum install -y wget gcc vim* libxml2 libxml2-devel openssl openssl-devel curl libcurl-devel libjpeg-turbo libjpeg-turbo-devel libpng libpng-devel freetype freetype-devel

 

mysql和lamp的MySQL安装是一样的

 

下载

cd /usr/local/src/
wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz

 

初始化tar

复制代码
 tar zxvf /usr/local/src/mysql-5.1.73-linux-i686-icc-glibc23.tar.gz //解压
 mv mysql-5.1.73-linux-i686-icc-glibc23 /usr/local/mysql //挪动位置
 useradd -s /sbin/nologin mysql //建立 mysql 用户
 cd /usr/local/mysql
 mkdir -p /data/mysql // 创建 datadir,数据库文件会放到这里面
 chown -R mysql:mysql /data/mysql //更改权限
 ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

--user 定义数据库的所属主,--datadir 定义数据库安装到哪里
复制代码

 

验证一下 echo $?

 

常见问题

(1)错误: ./bin/mysqld: error while loading shared libraries: libstdc++.so.5: cannot
      open shared object file:
    解决:
      yum install -y compat-libstdc++-33
(2)错误:./scripts/mysql_install_db: ./bin/my_print_defaults: /lib/ld-linux.so.2: bad
      ELF interpreter: No such file or directory
    这是因为,你的系统版本和 mysql 版本不一致。比如,你的系统是 32 位,结果你下载
    了一个 64 位的包。所以,解决办法是,下载合适的包。

 

配置 


  拷贝配置文件  

  cp support-files/my-large.cnf /etc/my.cnf

 
  拷贝启动脚本文件并修改其属性  

  cp support-files/mysql.server /etc/init.d/mysqld
  chmod 755 /etc/init.d/mysqld


  修改启动脚本  

  vim /etc/init.d/mysqld
  修改的地方 “datadir=/data/mysql” (前面初始化数据库时定义的目录)

 

   把启动脚本加入系统服务项,设定开机启动并启动 mysql  

  chkconfig --add mysqld
  chkconfig mysqld on
  service mysqld start

 
常见问题


 如果启动不了,请到 /data/mysql/ 下查看错误日志,这个日志通常是主机名.err。

  检查mysql 是否启动的命令为:   

   ps aux |grep mysqld

 


 

 

PHP

下载

cd /usr/local/src
wget http://au1.php.net/distributions/php-5.4.44.tar.bz2

 

 解压

tar jxf php-5.4.44.tar.bz2

 

创建用户

useradd -s /sbin/nologin php-fpm

 

配置编译

cd php-5.4.44

 

./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --enable-zend-multibyte --disable-ipv6 --with-pear --with-curl --with-openssl

 

 

错误信息

yum list |grep 组件名
#刚开始差不多都安装过了,如果还有没安装的
yum install -y 包名

 

编译和安装这个时间比较长

make && make install

 

这一步可能会有错误

yum install -y libtool-ltdl-devel

 

 修改配置文件

 cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php-fpm/etc/{php-fpm.conf.default php-fpm.conf}

 

检查配置文件是否正确

 /usr/local/php/sbin/php-fpm -t
#会出现
test is successful
#代表配置文件正确

 

启动php-fpm并加入到开机启动

#先拷贝一个文件
cp
/usr/local/src/php-5.3.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #给它更改权限为 755 chmod 755 /etc/init.d/php-fpm #启动服务 service php-fpm start #加入服务列表 chkconfig --add php-fpm #加入开机启动 chkconfig php-fpm on #检查是否开启服务 ps aux |grep php-fpm

 


 

 

Nginx

下载

cd /usr/local/src/
wget http://nginx.org/download/nginx-1.8.0.tar.gz

 

解压

tar zxvf nginx-1.8.0.tar.gz

 

配置编译

 ./configure --prefix=/usr/local/nginx --with-pcre

 

这里可能会报错缺少pcre组件

yum install -y pcre-devel

 

编译和安装

make && make install

 

启动Nginx

/usr/local/nginx/sbin/nginx

检查是否启动服务

ps aux |grep nginx

 

测试php-fpm解析

   先修改配置文件

vim /usr/local/nginx/conf/nginx.conf
#找到
location / {
            root   html;
            index  index.html index.htm index.php;
        }
#添加index.php
#找到
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;
        }
#修改成/usr/local/nginx/html

 

 重新加载

/usr/local/nginx/sbin/nginx -s reload

 

  测试

  创建一个php文件

vim /usr/local/nginx/html/1.php
#在里面写
<?php
phpinfo();
?>
#保存退出

 

  打开浏览器输入ip/1.php

  出现info信息说明解析成功

 

以上是关于Linux:LNMP架构的搭建的主要内容,如果未能解决你的问题,请参考以下文章

linux lnmp搭建及解释

linux:lnmp环境搭建

项目测试流程

Linux LNMP 环境的搭建之Nginx的安装

架构丰富的代码片段也应该用于产品列表吗?

项目实训—基于AI的智能视频剪辑器项目架构搭建